How to Find the Projection of a GeoTIFF File
GeoTIFF is the standard format for georeferenced raster data—satellite imagery, DEMs, scanned maps, drone orthophotos. But what happens when you load a GeoTIFF and your GIS software says "Unknown CRS" or the image appears in the wrong location?
This guide shows you how to read, verify, and fix projection information in GeoTIFF files.
Table of Contents
Quick Solution: Use Projection Finder
Projection Finder reads GeoTIFF files directly in your browser:
- Extracts GeoKeys — Reads embedded CRS metadata from TIFF tags
- Shows EPSG code — Identifies the coordinate reference system
- Previews extent on map — Verify the raster appears in the correct location
- Handles missing CRS — Analyzes extent coordinates to suggest likely projections
No software installation required. Your files stay on your computer.
Check Your GeoTIFF Projection
Drop your GeoTIFF and see the CRS info instantly. Free, browser-based.
Open Projection FinderHow GeoTIFF Stores CRS Information
Unlike Shapefiles (which use a separate .prj file), GeoTIFF embeds projection information directly in the TIFF file using GeoKeys.
Key GeoTIFF Tags
| Tag ID | Name | Purpose |
|---|---|---|
| 34735 | GeoKeyDirectoryTag | Directory of all GeoKeys |
| 34736 | GeoDoubleParamsTag | Double-precision parameters |
| 34737 | GeoAsciiParamsTag | ASCII strings (CRS names, citations) |
| 33550 | ModelPixelScaleTag | Pixel size in CRS units |
| 33922 | ModelTiepointTag | Raster-to-world coordinate mapping |
Important GeoKeys
| GeoKey | Name | What It Tells You |
|---|---|---|
| 1024 | GTModelTypeGeoKey | 1 = Projected, 2 = Geographic, 3 = Geocentric |
| 2048 | GeographicTypeGeoKey | EPSG code for geographic CRS (e.g., 4326 = WGS84) |
| 3072 | ProjectedCSTypeGeoKey | EPSG code for projected CRS (e.g., 32610 = UTM 10N) |
Key insight: If ProjectedCSTypeGeoKey (3072) contains a valid EPSG code, that's your CRS. If it's 32767, the CRS is user-defined and you'll need to read additional GeoKeys.
Methods to Read GeoTIFF Projection
Method 1: Projection Finder (Browser)
Fastest method—no installation:
- Go to projectionfinder.com
- Drag and drop your GeoTIFF
- View the extracted CRS and EPSG code
- Check the map preview to verify location
Method 2: gdalinfo (Command Line)
gdalinfo yourfile.tif
Look for the "Coordinate System is:" section in the output:
Coordinate System is:
PROJCRS["WGS 84 / UTM zone 10N",
BASEGEOGCRS["WGS 84",
DATUM["World Geodetic System 1984",
ELLIPSOID["WGS 84",6378137,298.257223563]],
...
ID["EPSG",32610]]
Method 3: QGIS
- Drag GeoTIFF into QGIS
- Right-click layer → Properties → Information
- Find "CRS" in the layer information
Method 4: Python with rasterio
import rasterio
with rasterio.open('yourfile.tif') as src:
print(f"CRS: {src.crs}")
print(f"EPSG: {src.crs.to_epsg()}")
print(f"Bounds: {src.bounds}")
What If CRS Is Missing?
Some GeoTIFFs have no projection information because:
- Created with basic image software (Photoshop, GIMP)
- Exported from CAD without georeferencing
- GeoKeys stripped during format conversion
- Very old files predating GeoTIFF standard
How to Identify the CRS
If your GeoTIFF has extent coordinates but no CRS:
- Check the extent values — Are they degrees (-180 to 180) or large numbers (meters)?
- Consider the source — Satellite imagery is usually UTM or WGS84; scanned maps use local projections
- Use Projection Finder — Upload the file and test different projections visually
| Extent Range | Likely CRS |
|---|---|
| X: -180 to 180, Y: -90 to 90 | Geographic (WGS84, EPSG:4326) |
| X: 100K-900K, Y: 0-10M | UTM (various zones) |
| X: -20M to 20M, Y: -20M to 20M | Web Mercator (EPSG:3857) |
How to Assign CRS to a GeoTIFF
Once you've identified the correct CRS, you can assign it:
Using gdal_edit.py
# Assign WGS84
gdal_edit.py -a_srs EPSG:4326 yourfile.tif
# Assign UTM Zone 10N
gdal_edit.py -a_srs EPSG:32610 yourfile.tif
Using QGIS
- Right-click the layer → Set CRS → Set Layer CRS
- Search for the EPSG code
- Click OK
Using Python
import rasterio
from rasterio.crs import CRS
# Read, modify CRS, write new file
with rasterio.open('input.tif') as src:
profile = src.profile
profile['crs'] = CRS.from_epsg(4326)
with rasterio.open('output.tif', 'w', **profile) as dst:
dst.write(src.read())
Frequently Asked Questions
Use gdalinfo, QGIS, or Projection Finder to read the embedded GeoKeys. The ProjectedCSTypeGeoKey (3072) or GeographicTypeGeoKey (2048) contains the EPSG code. If missing, analyze the extent coordinates to identify the CRS.
GeoKeys are metadata tags embedded in TIFF files that define the coordinate reference system. They're stored in TIFF tags 34735-34737 and include information about the projection type, datum, and EPSG code.
GeoTIFFs lack CRS info when created with basic image software, exported from CAD without georeferencing, or when GeoKeys were stripped during conversion. Use Projection Finder to identify the CRS from extent coordinates.
Run gdalinfo yourfile.tif in the command line. Look for "Coordinate System is:" in the output. If it shows "LOCAL_CS" or no CRS, the projection information is missing.
Yes. Use gdal_edit.py -a_srs EPSG:4326 yourfile.tif to assign a CRS without modifying pixel values. First verify the correct CRS using Projection Finder by checking if the extent appears in the expected location.
Read Your GeoTIFF CRS Instantly
Projection Finder extracts GeoKeys and shows the EPSG code in seconds. No installation needed.
Try Projection Finder FreeSummary
- GeoTIFF stores CRS in GeoKeys — Embedded in TIFF tags, not separate files
- Use gdalinfo or Projection Finder — To read the EPSG code
- Check extent coordinates — If CRS is missing, the extent values reveal geographic vs. projected
- Assign CRS with gdal_edit.py — Once you know the correct projection
Related Guides
- How to Find the Projection of a Shapefile
- How to Find the Projection of a GeoJSON File
- How to Convert WKT to EPSG Code
Related Resources
- EPSG.io — Search and lookup EPSG codes
- spatialreference.org — CRS definitions in multiple formats
- I Hate Coordinate Systems — Troubleshooting guide for projection problems