
TL;DR
- Every map needs a system for saying where things are, like an address system for the whole Earth. Old maps print its name as words in the margin, such as “UTM N83 Zone 15”, but mapping software needs a short ID number instead, called a UTM zone EPSG code: here, EPSG:26915.
- Our open-source map tool turns the words into the number automatically, so an AI assistant reading the map does not have to.
Key Takeaways
- Finding the code is simple addition. UTM splits the world into 60 strips called zones, and each grid version has a starting number: for “UTM N83 Zone 15”, 26900 + 15 = 26915.
- “N83” names the datum, and it changes the answer. A datum is the starting point measurements are taken from, like a tape measure laid from a slightly different spot, so a place can shift 1 to 2 metres, or tens of metres on very old maps.
- When the map does not say, the tool guesses. With no datum named, or one it does not know, the tool assumes WGS84, the one GPS uses.
- Other kinds of map grid are refused, not guessed. For grids that are not UTM, a wrong guess would put everything in the wrong place while still looking right.
A scanned geological map states its coordinate reference system (CRS), the grid it uses for positions, in words such as “UTM N83 Zone 15” or “WGS 84 / UTM zone 15S”. Software that converts map positions to latitude and longitude, such as pyproj, needs a code instead: for UTM grids, the UTM zone EPSG code.
Stratigraphic Amenity, our open-source MCP server for scanned geological maps, makes this conversion in one short function, resolve_crs, before it georeferences the map (pins it to real-world coordinates).
What Is a UTM Zone EPSG Code?
A UTM zone EPSG code is the registry number for one Universal Transverse Mercator zone on one datum and hemisphere, written as EPSG:<number>. EPSG:26915, for example, is NAD83 / UTM zone 15N. GIS (mapping) software and projection libraries use the number, not the name, to convert map coordinates to latitude and longitude.
UTM itself divides the globe into 60 zones, each 6 degrees of longitude wide, and measures positions in metres east and north within a zone.
The numbers come from the EPSG Geodetic Parameter Dataset, a public registry of coordinate systems maintained by the International Association of Oil & Gas Producers (IOGP).
How to Work Out a UTM Zone EPSG Code
EPSG gives each datum (the reference the grid is measured from) and each hemisphere a block of codes, so the code is the block’s base plus the zone number:
| Datum | Hemisphere | Code | Zone 15 | Zone 17 |
|---|---|---|---|---|
| NAD83 | North | 26900 + zone | EPSG:26915 | EPSG:26917 |
| NAD27 | North | 26700 + zone | EPSG:26715 | EPSG:26717 |
| WGS84 | North | 32600 + zone | EPSG:32615 | EPSG:32617 |
| WGS84 | South | 32700 + zone | EPSG:32715 | EPSG:32717 |
NAD83 and NAD27 are North American datums, so this scheme has no southern-hemisphere codes for them, and asking for one is an error.
NAD83, NAD27 and WGS84
The datum decides which code applies, so it is worth knowing the three that the function recognises. NAD27 and NAD83 are North American datums, from 1927 and 1983. WGS84 is the global datum used by GPS.
NAD83 and WGS84 positions differ by about 1 to 2 metres in North America. NAD27 can differ from both by tens of metres or more, which is why older sheets need their datum read carefully.
How Stratigraphic Amenity Reads CRS Text
resolve_crs tries four rules in order:
- An integer becomes
EPSG:<n>. Whether that code exists is left to pyproj, which fails later if it does not. - Text of the form
EPSG:<number>, in any letter case and with or without a space after the colon, becomesEPSG:<number>. “EPSG 26915”, with no colon, is not accepted. - Text containing “UTM” is parsed for a zone, a hemisphere and a datum:
- the zone is the number after the word “zone”, from 1 to 60;
- the hemisphere is south when a number is followed by “S”, as in “15S”, or the word “south” appears, and north otherwise;
- the datum is matched from short forms: “nad83”, “nad 83” or “n83”; “nad27”, “nad 27” or “n27”; “wgs84”, “wgs 84”, “wgs1984” or “w84”. With none of these, WGS84 is assumed.
- Anything else is rejected as an unrecognised specification.
What it returns for real map phrasings
We ran the function on common phrasings, including ones it gets wrong:
| Input | Result |
|---|---|
26915 | EPSG:26915 |
"EPSG:26915" | EPSG:26915 |
"epsg: 4326" | EPSG:4326 |
"UTM N83 Zone 15" | EPSG:26915 |
"WGS 84 / UTM zone 15S" | EPSG:32715 |
"UTM Zone 15N" | EPSG:32615 (no datum given, so WGS84) |
"NAD27 UTM zone 11" | EPSG:26711 |
"utm zone 33 south" | EPSG:32733 |
"NAD 1983 UTM Zone 17N" | EPSG:32617 (datum not recognised, so WGS84) |
"ETRS89 / UTM zone 32N" | EPSG:32632, not the ETRS89 code EPSG:25832 |
"NAD83 UTM zone 15S" | Error: no standard UTM EPSG code for NAD83 in the southern hemisphere |
"UTM zone 61" | Error: zone out of range (1 to 60) |
"UTM 15N" | Error: no UTM zone found, because the word “zone” is missing |
"EPSG 26915" | Error: unrecognised specification |
"Lambert conformal" | Error: unrecognised specification |
Where UTM Zone EPSG Codes Go Wrong
The errors in that table are the safe failures: the caller learns at once that the text needs fixing. The cases below return a code without complaint, so they need more care.
The default datum
“UTM Zone 15N” with no datum resolves to WGS84. For a map actually drawn on NAD83, the error is about 1 to 2 metres. That is irrelevant for finding which earthquakes and faults lie within a map sheet, and it would matter for survey-grade work. The project documents the default, so a caller who knows the datum can state it.
The same default catches every datum the function does not know. “NAD 1983 UTM Zone 17N”, with the year spelled out, returns the WGS84 code EPSG:32617 rather than EPSG:26917. ETRS89, the European datum, gets the same treatment. When the margin names any datum other than the short forms above, pass the EPSG code directly.
“15S” can mean two things
In EPSG names such as “WGS 84 / UTM zone 15S”, the S means south. In the military grid reference system, however, a letter after the zone is a latitude band, and band S lies between 32° and 40° north. The function always reads a trailing S as south, so a band-style label gives a southern code for a northern map, and the georeferenced bounds land thousands of kilometres away.
Projections it does not parse
Only UTM is read from text. Maps in Lambert conformal conic, state plane, polyconic or local grids need their EPSG code supplied directly. Guessing the parameters of those projections from a phrase would produce plausible coordinates that are wrong, and a clear error is the better outcome.
Where the EPSG Code Goes Next
The code feeds the next step: georeferencing a scanned geological map from ground control points, which fits pixel positions to map coordinates and then reprojects the map’s corners to longitude and latitude.
The same code travels with every GIS layer made from the sheet, for example when geological map vectorisation turns the scan into georeferenced polygons, shapefiles or GeoJSON.
Through MCP, an agent passes the CRS text or code as the crs field of geomap_georeference, together with at least two ground control points. The server never reads text off the map image itself, so the agent gets the margin text from the user or from a separate OCR or vision model. Stratigraphic Amenity is one of our Geocluster tools, MCP servers for geology data and maps.
FAQs
What is the EPSG code for NAD83 UTM zone 17N?
EPSG:26917. NAD83 UTM zones in the northern hemisphere follow 26900 plus the zone number, so zone 10N is EPSG:26910 and zone 12N is EPSG:26912. On WGS84 the same zone 17N is EPSG:32617, a different code whose positions differ by about 1 to 2 metres in North America.
How do I find the EPSG code of a scanned map?
Read the map margin or legend notes for the projection, zone and datum, for example “Universal Transverse Mercator, zone 15, North American Datum 1983”. For UTM, add the zone to the datum’s base number. For other projections, search the EPSG registry by name and check the result against the grid ticks on the map.
What is the difference between EPSG:4326 and a UTM EPSG code?
EPSG:4326 is WGS84 latitude and longitude in degrees, the frame Stratigraphic Amenity reports map bounds in. A UTM EPSG code such as EPSG:32615 is a projected grid in metres for one 6-degree zone. Georeferencing fits the scanned map to the UTM grid first, then converts its corners to EPSG:4326.
Is NAD83 the same as WGS84?
No, but they are close. NAD83 is fixed to the North American tectonic plate, while WGS84 follows the Earth as a whole, so the two drift apart as the plate moves. In North America they now differ by about 1 to 2 metres: negligible at map-sheet scale, significant for surveying.


