A Streamlit web app to fix missing or wrong CRS in GeoTIFF rasters, preview them on an interactive Folium map, and export a reprojected GeoTIFF.
- Upload GeoTIFF (
.tif/.tiff) - Read and display raster metadata (bands, size, bounds, dtype, detected CRS/EPSG)
- Choose Source CRS (assume CRS when CRS is missing or incorrect)
- Choose Target CRS (export CRS)
- Interactive Folium preview (preview is displayed in EPSG:4326 for web map compatibility)
- One-click reprojection and download
- Auto-resampling during export:
- Colormap or integer dtype -> Nearest (categorical)
- Otherwise -> Bilinear (continuous)
- Safer bounds transformation (fallback when densify-based transforms fail)
.
├── src/
│ └── app.py
├── requirements.txt
├── .gitignore
└── README.md
## Setup (recommended: Conda)
Step 1: Create environment
conda create -n rasterdash python=3.11.14 -y
## Step 2: Activate environment
conda activate rasterdash
## Step 3: Install dependencies
pip install -r requirements.txt
## Step 4: Run the app
streamlit run src/app.py
Alternative setup (venv also works)
If you prefer venv, the same project will work.
Step 1: Create venv
python -m venv .venv
Step 2: Activate venv
Windows:
.venv\Scripts\activate
macOS/Linux:
source .venv/bin/activate
Step 3: Install dependencies
pip install -r requirements.txt
Step 4: Run the app
streamlit run src/app.py
How to use (step-by-step)
Open the app in your browser (Streamlit will show the local URL in the terminal).
Upload a GeoTIFF from the sidebar.
Check Raster info to see if CRS is detected or missing.
In the sidebar CRS section:
If CRS is missing/wrong, select the correct Source CRS.
Select the Target CRS for export.
Optionally enable “Show full EPSG list” if you need a CRS not in the common list.
Review the map preview:
If the raster appears in the wrong place, the Source CRS assumption is likely incorrect.
Click Reproject and Save.
Download the GeoTIFF (saved with the same file name as the uploaded file).
CRS notes
Folium uses latitude/longitude, so the preview is rendered in EPSG:4326 even if your export CRS is different.
If a raster appears in the wrong country or location:
The most common reason is an incorrect Source CRS selection.
Common CRS choices included:
EPSG:4326 (WGS84 lat/lon)
EPSG:3857 (Web Mercator)
EPSG:25833 (Germany ETRS89 / UTM 33N)
EPSG:32633 (WGS84 / UTM 33N)
EPSG:25832 / EPSG:32632 (UTM 32N)
EPSG:3035 (LAEA Europe)
EPSG:6933 (EASE-Grid 2.0 Global)
Troubleshooting
Raster shows wrong location on the map
Choose a different Source CRS. The preview depends on the assumed source CRS when the file CRS is missing.
Reprojection fails with “Bounds cannot be transformed...”
The selected Source CRS is likely incorrect for that file.
Try common alternatives based on the data source (UTM, 3857, LAEA, EASE-Grid, etc.).
The CRS dropdown is too large
Keep “Show full EPSG list” disabled and use the common CRS list for faster selection.