https://github.com/neuralcortex/srtm_viewer
SRTM3 and SRTM1-Tile Viewer
https://github.com/neuralcortex/srtm_viewer
java javafx javafx-application javafx-desktop-apps srtm-files srtm3
Last synced: about 2 months ago
JSON representation
SRTM3 and SRTM1-Tile Viewer
- Host: GitHub
- URL: https://github.com/neuralcortex/srtm_viewer
- Owner: NeuralCortex
- License: lgpl-2.1
- Created: 2023-07-02T09:24:59.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-02-09T13:09:45.000Z (about 2 years ago)
- Last Synced: 2025-03-14T05:41:41.157Z (about 1 year ago)
- Topics: java, javafx, javafx-application, javafx-desktop-apps, srtm-files, srtm3
- Language: Java
- Homepage:
- Size: 2.94 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# NASA STS-99 SRTM Tile Viewer
## Overview
SRTM-Viewer is a JavaFX application designed to visualize and analyze topographical data from NASA's Shuttle Radar Topography Mission (SRTM) [STS-99](https://en.wikipedia.org/wiki/STS-99). Users can graphically select and evaluate SRTM tiles, save them as PNG files, and analyze elevation data. The application supports both SRTM3 (3 arc-second resolution) and SRTM1 (1 arc-second resolution) files.
## Core Features
| Feature | Description |
|-------------------------------|-----------------------------------------------------------------------------|
| SRTM3 & SRTM1 Support | Loads both 3 arc-second (~90m) and 1 arc-second (~30m) .hgt files |
| **Worldwide Tile Grid Overlay** | Interactive map with full 1°×1° SRTM tile grid clearly displayed and color-coded by availability |
| Heightmap PNG Export | 16-bit grayscale or colored heightmaps (with customizable color ramps) |
| **Wavefront OBJ Export** | **Blender-ready** high-quality triangulated mesh |
| **POV-Ray Scene Export** | Generates ready-to-render `.pov` + `.png` files with height_field terrain, camera, lighting, and atmospheric effects |
## Screenshots


## Requirements
- A stable internet connection is required to run the application.
- Java Runtime Environment (JRE) or Java Development Kit (JDK) version 24 is required.
- JavaFX SDK is necessary for GUI functionality ([JavaFX](https://gluonhq.com/products/javafx/)).
## File Structure
SRTM files (`.hgt`) contain 16-bit signed integer values representing elevation data, with no header or trailer. File names follow the format `N50E010.hgt`.
### SRTM3 Tile (1x1 degree)
```
North X=0,Y=1200 ********************* X=1200,Y=1200
*********************
*********************
*********************
South X=0,Y=0 ********************* X=1200,Y=0
West East
```
### SRTM1 Tile (1x1 degree)
```
North X=0,Y=3600 ********************* X=3600,Y=3600
*********************
*********************
*********************
South X=0,Y=0 ********************* X=3600,Y=0
West East
```
## Usage Instructions
### Tab 1: Tile Selection
- Move the mouse over the map to select an SRTM tile (e.g., for a specific city).
- Displays tile boundaries, file name, northern/southern longitude, and elevation.
- Accounts for Earth's curvature in calculations.
- Calculates the tile's area in square kilometers.
### Tab 2: Grid View
- Visualize `.hgt` files from a local directory as a grid on OpenStreetMap.
- File names appear at a certain zoom level.
- Two tables on the right allow showing or hiding individual tiles or entire regions.
- Grid view uses only file names, not file contents.
- Store files in a single folder without subdirectories (e.g., `Europe`, `Asia`, `North America`, `Japan`).
### Tab 3: Graphical Analysis
- Import an SRTM3 or SRTM1 tile for color-coded visualization based on a configurable color table.
- Edit the color table to adjust tile coloring; changes are saved to the configuration file.
- At higher zoom levels, hover to display elevation in meters above sea level.
- Enable the alpha channel for semi-transparency to view underlying map features (e.g., cities or highways).
- Right-click to place a marker; copy/paste longitude and latitude from Google Maps using `CTRL+V` to update coordinates.
- Save options:
- Export the tile as a black-and-white elevation profile or colored PNG (with or without a marker).
- Preview is provided before saving; markers outside the tile are ignored.
- 3D visualization via POV export:
- Generates a black-and-white elevation profile and a POV file for the [POV-Ray](http://www.povray.org/) ray tracer.
- Set POV-Ray image size to at least Full HD (1920x1080 pixels).
- 3D visualization via Blender export:
- Generates a clean, high-quality Wavefront `.obj` (opens perfectly in Blender without any fixes).
- Triangulated mesh
- Ready for immediate rendering, texturing (satellite imagery, procedural materials), animation, or 3D printing.
- Recommended import settings in Blender: just drag & drop or File → Import → Wavefront (.obj) — no rotation or scale fixes needed.
## Technologies Used
- **IDE**: Apache NetBeans 27 ([NetBeans 27](https://netbeans.apache.org/))
- **Java SDK**: Java 24 ([JDK 24](https://www.oracle.com/java/technologies/downloads/#jdk24-windows))
- **GUI Development**: Gluon Scene Builder ([Scene Builder](https://gluonhq.com/products/scene-builder/))
- **Framework**: JavaFX ([JavaFX](https://gluonhq.com/products/javafx/))