Coordinately

ISO 19111 Spatial Reference Systems Explained

ISO 19111 is the international standard defining the conceptual framework for spatial reference systems (SRS). Published 2003; major revisions 2007 and 2019. The 2019 revision added explicit support for dynamic datums (positions that move with plate tectonics) and datum ensembles. Key concepts: Coordinate Reference System (CRS) = Coordinate System + Datum; types include geodetic, projected, vertical, engineering, temporal, compound. Datum types: geodetic, vertical, engineering, temporal. Coordinate operations: conversion (same datum) vs transformation (different datums). The EPSG Registry (maintained by IOGP) is the standard implementation with ~6,000+ codes. WKT 2 (ISO 19162:2019) is the modern text encoding. PROJ 6 (2019) is the reference C library. The article covers the conceptual framework, datum types, dynamic datums, and the PROJ ecosystem.

By . Published . Last updated .

This article continues the Data Standards & Specifications sub-hub with the conceptual framework that underlies all coordinate work in geographic information systems.

What ISO 19111 is

ISO 19111 is the international standard that defines how coordinates relate to locations on Earth — the formalism that distinguishes “latitude/longitude” from “UTM coordinates” from “Web Mercator pixels” from many other coordinate representations.

The standard provides a conceptual model; specific implementations (EPSG Registry, WKT 2, PROJ) provide concrete realizations of the model.

Version history

  • ISO 19111:2003: original publication. Defined the basic CRS conceptual model.
  • ISO 19111:2007: minor revisions for clarification and consistency with other ISO 19100-series standards.
  • ISO 19111:2019: major revision. Added:
    • Dynamic datums (positions move over time).
    • Datum ensembles (groups of similar datums treated as one).
    • Time-dependent transformations.
    • Better support for compound CRS.
    • Modernized terminology.

The 2019 revision was substantial. PROJ 6 (2019) was rewritten to support the modern standard rigorously; previous PROJ versions (PROJ 4 / 5) supported only parts of the older standard.

The conceptual model

ISO 19111's central concept:

Coordinate Reference System (CRS) = Coordinate System (CS) + Datum

Both ingredients are needed to interpret coordinate values as locations on Earth.

Coordinate System (CS)

The mathematical framework for the coordinates:

  • Cartesian: rectilinear x, y, z coordinates.
  • Ellipsoidal: latitude, longitude on an ellipsoid (and optionally ellipsoidal height).
  • Spherical: latitude, longitude on a sphere.
  • Polar: distance + angle.
  • Cylindrical: distance + angle + height.

The CS specifies the structure of the coordinate tuple — what each number means and how they relate.

Datum

The reference for the coordinate system. A datum specifies:

  • The origin of the coordinate system.
  • The orientation of axes.
  • For geodetic datums: the ellipsoid used and its position relative to Earth's center.
  • For vertical datums: the reference surface (geoid model or specific tide gauge).

Different datums for the same CS structure produce different actual positions. WGS 84 and NAD 27 are both ellipsoidal-CS-based datums but coordinates in the two differ by ~100 meters in CONUS.

CRS types

ISO 19111 distinguishes several CRS types:

Geodetic CRS

Latitude and longitude on an ellipsoid (or sphere). Optional ellipsoidal height as third dimension.

  • EPSG:4326: WGS 84 lat/lon.
  • EPSG:4269: NAD 83 lat/lon.
  • EPSG:4258: ETRS89 lat/lon.

A geodetic CRS is the starting point — most data is initially captured in or referenced to a geodetic CRS.

Projected CRS

Planar coordinates derived from projecting a geodetic CRS onto a plane. Always derived from a specific geodetic CRS through a specific projection.

  • EPSG:3857: Web Mercator (from WGS 84 via Web Mercator projection).
  • EPSG:32601-32660: UTM zones (from WGS 84 via UTM projection).
  • EPSG:27700: British National Grid (from OSGB36 via Transverse Mercator).
  • EPSG:2154: Lambert-93 (from RGF93 / France).
  • EPSG:25832: ETRS89 / UTM zone 32N.

A projected CRS is derived from a geodetic CRS — the relationship is captured in the CRS metadata.

Vertical CRS

Height referenced to a specific vertical datum. See /learn/vertical-datums-explained.

  • EPSG:5703: NAVD 88 height.
  • EPSG:5713: CGVD2013 (Canadian Geodetic Vertical Datum 2013).
  • EPSG:5773: EGM2008 height.

Compound CRS

Combines horizontal + vertical CRSs:

  • EPSG:5498: NAD83(NSRS2007) + NAVD88 height.
  • WGS 84 + EGM2008: 3D positioning in a combined frame.

Engineering CRS

Local coordinate systems not tied to global geodesy. Used for:

  • Indoor positioning systems.
  • Construction sites with local origins.
  • Spacecraft and astronomical bodies.

Each engineering CRS has its own local origin and orientation.

Temporal CRS

Time as a coordinate. Less common in day-to-day GIS but important for 4D modelling.

Datum types

ISO 19111 distinguishes datums:

Geodetic Datum

References to an Earth ellipsoid:

  • Earth-centered, Earth-fixed (ECEF) origin.
  • Specific ellipsoid (WGS 84, GRS 80, Bessel 1841, etc.).
  • Specific orientation to the rotation axis and prime meridian.

Examples: WGS 84, NAD 83, ETRS89, OSGB36, JGD2011.

Vertical Datum

References to a height reference:

  • Mean sea level based (NAVD 88, ODN Newlyn).
  • Geoid model based (modern EGM datums).
  • Tide gauge anchor.

Engineering Datum

Local references for engineering CRSs.

Temporal Datum

References to a time scale (UTC, TAI, GPS Time, local).

Dynamic datums

The major 2019 addition. Dynamic datums acknowledge that positions move over time due to:

  • Plate tectonics: continental plates drift at cm-per-year rates.
  • Glacial isostatic adjustment: post-ice-age rebound continues; see /learn/isostasy-and-post-glacial-rebound.
  • Coseismic deformation: earthquakes shift positions abruptly.
  • Anthropogenic subsidence: groundwater extraction, oil/gas extraction.

Static vs dynamic datums

Static datum: positions assumed fixed at a specific epoch. NAD 83 (epoch 2010.00), ETRS89 (epoch 1989.00), WGS 84 G1762 (specific realization).

Positions in a static datum drift from true positions over time — by cm/year for tectonic motion. For most applications, the drift is negligible; for high-precision geodetic work, it matters.

Dynamic datum: positions explicitly include time. Each coordinate has values and a reference epoch. The position changes over time.

ITRF (International Terrestrial Reference Frame): the canonical dynamic datum. ITRF realizations (ITRF2000, ITRF2005, ITRF2008, ITRF2014, ITRF2020) each cover different timeframes; positions are expressed as (X, Y, Z) at a specific epoch.

Practical implications

  • Static datums remain the standard for most civil mapping. NAD 83, ETRS89, JGD2011 all in widespread use.
  • Dynamic datums are used in modern geodetic reference frames (ITRF), modern GPS reference frames (WGS 84 G2139 explicitly time-dependent), and modern surveying.
  • Hybrid approaches: many countries publish positions in both static (for civil use) and dynamic (for geodetic precision).

ISO 19111:2019 added the formal machinery for expressing dynamic datums.

Datum ensembles

Another 2019 addition. Datum ensembles group similar datums that can be treated as one for practical purposes.

Example: WGS 84 ensemble includes the various WGS 84 realizations (G730, G873, G1150, G1674, G1762, G2139). For most practical purposes, all are “WGS 84”; for high-precision work, the specific realization matters.

The datum ensemble concept lets ISO 19111-conformant software:

  • Treat the ensemble as one datum when the realization details don't matter.
  • Distinguish realizations when they do (high-precision geodesy).

PROJ 6+ implements datum ensembles via this mechanism.

Coordinate operations

ISO 19111 distinguishes two types of coordinate operation:

Conversion

Within the same datum: e.g., geographic (lat/lon) → projected (UTM) on the same WGS 84 datum. The math is well-defined (the projection formulas); no datum-shift parameters needed.

Transformation

Between different datums: e.g., NAD 27 → WGS 84. Requires datum-shift parameters (typically 3 or 7 parameters from a transformation database, or a grid-shift file for the highest precision).

Transformations introduce uncertainty — datum-shift parameters are estimates with finite accuracy. Conversions are mathematically exact.

EPSG operation codes

The EPSG Registry catalogs operations too. For example, EPSG:1188 is the transformation from NAD 83 to WGS 84 via NTv2 grid shift; EPSG:1132 is the conversion from WGS 84 lat/lon to Web Mercator.

The EPSG Registry

The dominant practical implementation of ISO 19111. Maintained by IOGP (International Association of Oil and Gas Producers) — yes, the oil and gas industry; they needed consistent CRS handling for cross-organization data exchange in the 1980s and built the registry, which has become universal.

What it contains

  • ~6,000+ CRS codes: every major datum + projection combination used worldwide.
  • Datums: ~1,000+ historical and current geodetic datums.
  • Coordinate operations: ~2,000+ transformations and conversions.
  • Units, axes, base concepts: supporting metadata.

Access

  • epsg.io: free web UI for searching and inspecting codes.
  • EPSG Registry API: programmatic access.
  • PROJ database: implements the EPSG data internally; updates ship with PROJ releases.
  • GDAL / PostGIS: use PROJ's embedded EPSG data.

Every modern GIS tool, web-mapping library, and geodetic application uses EPSG codes.

Common codes

| Code | Description | | ---- | ----------- | | 4326 | WGS 84 lat/lon | | 4269 | NAD 83 lat/lon | | 4258 | ETRS89 lat/lon | | 3857 | Web Mercator | | 27700 | British National Grid | | 32601 | UTM zone 1 North (WGS 84) | | 32632 | UTM zone 32 North (WGS 84) | | 32660 | UTM zone 60 North (WGS 84) | | 25832 | ETRS89 / UTM zone 32N | | 2154 | Lambert-93 (France) | | 4979 | WGS 84 3D (lat/lon/ellipsoidal height) | | 5773 | EGM2008 height | | 6318 | NAD83(2011) | | 8232 | ITRF2014 |

Most production GIS code references CRSs via EPSG codes rather than full CRS definitions.

Well-Known Text (WKT)

The text encoding for CRS definitions.

WKT 1 (1999)

The original OGC format. Widely used through the 2010s; still encountered in legacy data and some older software.

Example WKT 1 for WGS 84:

GEOGCS["WGS 84",
  DATUM["WGS_1984",
    SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],
    AUTHORITY["EPSG","6326"]],
  PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],
  UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],
  AUTHORITY["EPSG","4326"]]

WKT 2 (ISO 19162:2019)

The modern encoding. More rigorous, ISO 19111- conformant, supports modern features (dynamic datums, datum ensembles).

Example WKT 2 for WGS 84:

GEOGCRS["WGS 84",
  ENSEMBLE["World Geodetic System 1984 ensemble",
    MEMBER["World Geodetic System 1984 (Transit)"],
    MEMBER["World Geodetic System 1984 (G730)"],
    MEMBER["World Geodetic System 1984 (G873)"],
    ...
    ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],
    ENSEMBLEACCURACY[2.0]],
  PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],
  CS[ellipsoidal,2],
    AXIS["geodetic latitude (Lat)",north,
      ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],
    AXIS["geodetic longitude (Lon)",east,
      ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],
  ID["EPSG",4326]]

The differences: explicit datum ensemble, more verbose, supports more concepts.

WKT 2 variants

  • WKT 2 2015: initial WKT 2 (ISO 19162:2015).
  • WKT 2 2019: current (ISO 19162:2019), with refinements.
  • WKT 2 SQL: database-friendly variant.

PROJ.4 strings (legacy parallel format)

Separate from WKT, a string format like:

+proj=longlat +datum=WGS84 +no_defs
+proj=utm +zone=18 +datum=WGS84 +units=m

Used by PROJ 4 and PROJ 5; still recognized by PROJ 6+ but less rigorous than WKT 2.

PROJ — the reference implementation

PROJ is the open-source C library implementing coordinate operations. The reference implementation of ISO 19111.

History

  • PROJ.1-PROJ.4 (1980s–2010s): Gerald Evenden's original USGS work, then community maintenance.
  • PROJ 5 (2018): added time-dependent transformations.
  • PROJ 6 (2019): major redesign for ISO 19111:2019 conformance.
  • PROJ 7-9: continued refinements.

Key features

  • ISO 19111:2019 conformance.
  • WKT 1 and WKT 2 support.
  • EPSG Registry data embedded.
  • Grid-shift files for high-precision transformations (NTv2, etc.).
  • ~6,000+ CRS support.
  • Hundreds of projections.

Used by

  • GDAL / OGR: delegates all coordinate operations to PROJ.
  • PostGIS: spatial database CRS handling.
  • QGIS: via GDAL/PROJ.
  • GeoPandas, Rasterio, Shapely: via PROJ.
  • MapServer, GeoServer: via PROJ.

Essentially every open-source GIS uses PROJ underneath; many commercial GIS tools also embed it or use PROJ-derived data.

Grid-shift files

For the highest-precision transformations, PROJ uses grid-shift files that store position corrections on a regular grid. Examples:

  • NTv2: Canadian and Australian grid-shift format.
  • NTv1: older format.
  • GTX: vertical-datum transformations.
  • OSTN15: UK Ordnance Survey 15 cm-accurate shift.

PROJ's projsync tool downloads grid-shift files on demand.

Common CRS workflows

Identify a CRS

from pyproj import CRS

crs = CRS("EPSG:4326")
print(crs.name)             # "WGS 84"
print(crs.is_geographic)    # True
print(crs.datum.name)       # "World Geodetic System 1984"

Transform between CRSs

from pyproj import Transformer

t = Transformer.from_crs("EPSG:4326", "EPSG:3857", always_xy=True)
x, y = t.transform(-74.0, 40.7)
print(x, y)  # Web Mercator coordinates

Read CRS from a file

import rasterio
with rasterio.open("input.tif") as src:
    print(src.crs)  # uses PROJ to read embedded CRS

Set CRS on a GeoPandas dataframe

import geopandas as gpd
gdf = gpd.read_file("cities.shp")
print(gdf.crs)  # current CRS
gdf_3857 = gdf.to_crs("EPSG:3857")  # reproject

Common misconceptions

“EPSG codes are global standard.” Industry-standard, maintained by IOGP. Not formally an ISO standard but universally adopted. The EPSG database implements ISO 19111 concepts; the codes themselves are an IOGP product.

“WKT 1 and WKT 2 are interchangeable.” Mostly readable both ways, but WKT 2 supports modern features WKT 1 cannot (datum ensembles, dynamic datums, derived geographic CRSs). Modern software prefers WKT 2; legacy systems may not accept it.

“All EPSG codes are equally useful.” Most production work uses a few dozen common codes. The ~6,000+ codes cover edge cases: historical datums, regional projections, specialty applications. The core ~50 codes cover ~95% of practical use.

“WGS 84 is one datum.” It's a datum ensemble with multiple realizations (G730, G873, G1150, G1674, G1762, G2139). ISO 19111:2019 explicitly models this. For most purposes, treat as one; for high precision, distinguish.

“PROJ.4 strings are deprecated.” Still supported but discouraged. PROJ 6+ accepts them for backward compatibility but outputs WKT 2 by default. Modern code should use EPSG codes or WKT 2.

“ISO 19111 is for surveyors only.” Used by anyone working with coordinates. Web mapping (Web Mercator vs WGS 84 vs UTM), spatial databases (PostGIS uses EPSG codes extensively), data integration (transformation between sources) — ISO 19111 concepts permeate the field.

“Dynamic datums are not relevant in practice.” Increasingly relevant. ITRF is the reference frame for global geodesy; modern GPS uses dynamic datums; high-precision surveying tracks epoch. The 2019 ISO 19111 revision was driven by this need.

“PROJ handles everything automatically.” Handles most cases automatically; some edge cases (datum-shift grid downloads, dynamic-datum epoch handling) require explicit configuration. For most users, PROJ is transparent; for power users, the configurability matters.

“Compound CRSs are obscure.” Increasingly common as 3D positioning becomes mainstream. WGS 84 + EGM2008 is a typical compound CRS for 3D applications. Aviation routinely uses compound CRSs.

“EPSG codes never change.” The registry evolves. New codes are added; some older codes deprecated. PROJ ships periodic updates. Most common codes (4326, 3857, 32601-60) are stable; some specialty codes change.

“You can use any axis order.” ISO 19111 specifies axis order (latitude, longitude for geographic CRSs in many cases). Most software respects this; some (notably GeoJSON, PROJ.4 strings) use longitude-first conventions. Mismatches cause subtle bugs.

“ISO 19111 is just theory.” Implemented via PROJ, EPSG, GDAL, PostGIS, every major GIS tool. The standard is practical, not just academic.

“WKT is human-readable.” Verbose, not friendly. WKT is machine-readable; the hierarchy and bracketing make it tractable but not skim-friendly. EPSG codes are vastly more convenient for human use.

“The standard is finalized.” Active evolution. The 2019 revision was substantial; a future revision (10+ years out, presumably) will incorporate more dynamic-datum and time-dependent- transformation features.

“EPSG codes work in every CRS context.” Some specialized contexts use non-EPSG codes: ISO 19135 registries, custom organizational codes. Most public-facing geospatial work uses EPSG.

“You don't need to think about datums.” Critical at meter precision and finer. Datums differ by tens to hundreds of meters; transformations are needed to align data across sources. Modern tools handle this automatically when CRSs are properly specified; incorrect specification causes misalignment silently.

Frequently asked questions

What is ISO 19111?

ISO 19111 is the international standard defining the conceptual framework for spatial reference systems (SRS) — the formalism for describing how coordinates relate to locations on Earth. Originally published in 2003 as part of the ISO 19100 geographic-information standards series; major revisions in 2007 and 2019. The 2019 revision added support for dynamic datums (positions that move with plate tectonics) and datum ensembles. The standard defines the abstract model; specific implementations like the EPSG Registry (~6,000+ codes maintained by IOGP) and Well-Known Text 2 encoding (ISO 19162:2019) provide concrete realizations. PROJ 6 (2019) is the reference C library implementing the modernized standard. Every modern GIS system relies on ISO 19111 concepts directly or through PROJ.

What is a Coordinate Reference System (CRS)?

A CRS is the combination of a Coordinate System (the mathematical framework — Cartesian, ellipsoidal, spherical, etc.) and a Datum (the reference for the coordinate values). For example, EPSG:4326 (WGS 84 lat/lon) combines an ellipsoidal coordinate system with the WGS 84 datum. EPSG:3857 (Web Mercator) combines a Cartesian coordinate system with WGS 84 datum, after applying a Mercator projection. ISO 19111 distinguishes types: Geodetic CRS (lat/lon on an ellipsoid), Projected CRS (planar from a projection of a geodetic CRS), Vertical CRS (orthometric or ellipsoidal heights), Engineering CRS (local, e.g., a building's coordinate system), Temporal CRS (time as a coordinate), Compound CRS (combines horizontal + vertical, e.g., WGS 84 + EGM2008).

What is a dynamic datum?

A datum where reference points move over time due to plate tectonics, glacial isostatic adjustment, or other geophysical processes. Classical (static) datums freeze positions at a specific epoch: NAD 83 epoch 2010.00, ETRS89 epoch 1989.00, etc. Positions in a static datum drift from true positions over time as tectonic plates move. Dynamic datums explicitly include time: each coordinate has both spatial values and a reference epoch. ITRF (International Terrestrial Reference Frame) is the canonical dynamic datum, with realizations every few years (ITRF2008, ITRF2014, ITRF2020). Positions in ITRF are stated as (X, Y, Z) at a specific epoch; the position changes over time. ISO 19111:2019 added explicit support for dynamic datums; this was a major gap in the 2003/2007 versions. Modern geodesy is increasingly dynamic; legacy static datums remain in widespread use.

What is the EPSG Registry?

The EPSG Registry is the dominant practical implementation of ISO 19111 — a catalog of ~6,000+ Coordinate Reference Systems, datums, and coordinate operations, each with a unique 4- or 5-digit code. Maintained by the IOGP (International Association of Oil and Gas Producers) Surveying & Positioning Committee; the registry originated in the oil/gas industry where consistent CRS handling was critical for cross-organization data exchange. Common EPSG codes: 4326 (WGS 84 lat/lon), 3857 (Web Mercator), 4269 (NAD 83), 27700 (British National Grid), 25832 (ETRS89 / UTM zone 32N), 32601-32660 (UTM zones north), 32701-32760 (UTM zones south). Every modern GIS tool, PostGIS, GDAL, and web-mapping library uses EPSG codes. The registry is free at epsg.io (UI) and via API access. PROJ implements the EPSG database internally; updates ship with PROJ releases.

What is WKT 2?

Well-Known Text 2 (WKT 2) is the modern text encoding for CRSs defined in ISO 19162:2019. It replaces the older WKT 1 (1999, OGC) format. WKT 2 is more rigorous, ISO 19111-conformant, and supports modern features (dynamic datums, datum ensembles, time-dependent transformations). Example WKT 2 for WGS 84: `GEOGCRS["WGS 84",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563]],PRIMEM["Greenwich",0],CS[ellipsoidal,2],AXIS["Latitude",north],AXIS["Longitude",east],ANGLEUNIT["degree",0.0174532925199433]]`. Three variants: WKT2 2015 (initial), WKT2 2019 (current), WKT2 SQL (database-friendly). PROJ 6+ outputs WKT 2 by default; GDAL 3.x defaults to WKT 2; older systems may still use WKT 1. The PROJ.4 string format (e.g., `+proj=longlat +datum=WGS84 +no_defs`) is a legacy parallel format, predating WKT.

Sources

  1. ISOISO 19111:2019 — Geographic information — Referencing by coordinates · https://www.iso.org/standard/74039.html · Accessed .
  2. ISOISO 19162:2019 — Well-known text representation of CRSs (WKT 2) · https://www.iso.org/standard/76496.html · Accessed .
  3. EPSGEPSG Registry (epsg.io) — implementation of ISO 19111 with ~6,000+ CRS codes · https://epsg.io/ · Accessed .
  4. PROJPROJ.org — reference C implementation of ISO 19111 · https://proj.org/ · Accessed .

Cite this article

APA format:

Steve K. (2026). ISO 19111 Spatial Reference Systems Explained. Coordinately. https://coordinately.org/learn/iso-19111-srs-explained

BibTeX:

@misc{coordinately_iso19111spatial_2026,
  author = {K., Steve},
  title  = {ISO 19111 Spatial Reference Systems Explained},
  year   = {2026},
  publisher = {Coordinately},
  url    = {https://coordinately.org/learn/iso-19111-srs-explained},
  note   = {Accessed: 2026-06-05}
}