Map Projections
The Earth is a spheroid - it is round like a ball or sphere but flattened by slightly by the centrifugal force of rotation. The Earth has a circumference of around 24,900 miles, but is around 27 miles wider than it is tall.
The Earth exists in three-dimensions but, other than globes, most representations of the earth, such as printed maps or web maps, are two dimensional. A projection is a set of mathematical transformations used to represent the three-dimensional world in two dimensions.
This tutorial introduces some fundamental concepts about projections that will be useful when choosing projections for your GIS projects.
- Coordinate Systems
- Coordinate System ID Numbers
- Common World Projected Coordinate Systems
- Common Large Country and Continent Projected Coordinate Systems
- Common Local Projected Coordinate Systems
- Map Projections in ArcGIS Pro
- Projections in Python
- Projections in R
Coordinate Systems
The process of representing the three-dimensional world as two-dimensional visualizations requires a sequence of steps.
- The lumpy surface of the earth is approximated with a simplified representation called a geoid.
- A smooth mathematical ellipsoid or spheroid representation of that geoid that is used as the reference for latitude and longitude degrees. The geoid and ellipsoid together are referred as a geodetic datum, often just called a datum for convenience.
- A datum defines a geographic coordinate system of latitudes and longitudes that indicates where locations are on the surface of the planet. Because different datums place their ellipsoids in slightly different places, a single latitude and longitude can refer to different places depending on which datum is used.
- Finally, a set of mathematical transformations are performed on the three-dimensional latitudes and longitudes to create a projected coordinate system that specifies the two-dimensional X and Y locations where features are drawn on the paper map or computer display.
The science of creating geoids is called geodesy or geodetics. Geodetic engineers measure three fundamental properties of the earth. Because these properties are constantly changing (albeit in often subtle ways), geodetic engineers always have something to do in support of the earth sciences.
- Geometric shape
- Orientation in space
- Gravity field
There are dozens of different datums that have been developed over the past century to best fit a datum to specific parts of the earth using the technology of the time. In the United States you will commonly encounter these datums:
- The World Geodetic System from 1984 (WGS 84) is used by the Global Positioning System (GPS), and is the datum you will encounter most frequently.
- The North American Datum of 1983 (NAD 83) is commonly used with state and local data in the US.
- The North American Datum of 1927 (NAD 27) is an older version of NAD83 that you may encounter with old maps.
GIS software can transform data created with one geographic coordinate system into another, and when you are just visualizing data on a simple map, geographic coordinate systems are generally not a concern. However, there are times you need to pay attention to geographic coordinate systems:
- When selecting projections from multiple variants
- When combining data with different / uncertain geographic coordinate systems on the same map and the data doesn't overlay correctly
- When working on engineering or surveying projects where high accuracy is required.
Coordinate System ID Numbers
Projections are often named after the cartographers that developed them. While some common projections have names that are generally understood (like spherical Mercator), a name is usually not specific enough to indicate exactly which projection you want to use.
For example, although the Mercator is a well known general type of projection, different Mercator projections have different parameters depending on how they wrap the world in different ways (transverse, oblique) at different places (central meridian) and use different coordinate units.
Most coordinate systems can be specifically identified with a WKID (well-known identifier), which consists of the name of the authority followed by a four- to six-digit ID number. Some examples:
- ESRI 54030 is the WKID for the world Robinson projection commonly used for printed world maps.
- EPSG 3857 is the WKID for the spherical Mercator projection commonly used on web maps.
- EPSG 6454 is the WKID for the state plane coordinate system projection commonly used for local maps in the eastern half of Illinois.
The authority for a WKID is the organization that decides which projection goes with which ID number. There are two primary authorities:
- EPSG: The European Petroleum Survey Group created a numbered registry of projections starting in 1985. While the EPSG became part of the International Association of Oil and Gas Producers in 2005, the EPSG name was retained for convenience. One issue with this numbering system is that there is not a clear structure to the numbering scheme, the same projection can have different numbers.
- ESRI is the maker of ArcGIS Pro software and, arguably, the dominant GIS company in the world. For projections that do not have EPSG ID numbers, ESRI defines its own set of numbers for use in its software.
You can look up WKID numbers at:
Although projections are usually specified with a single WKID for the projected coordinate systems, because projected coordinate systems are built on top of datums with geographic coordinate systems, a projection will have a separate WKID for the geographic coordinate system.
For example, the details for the world Robinson projection listed in ArcGIS Pro (ESRI 54030) show that projection is based on a WGS 1984 geographic coordinate system (EPSG 4326).
Common World Projected Coordinate Systems
There are dozens of different types of projections. When you consider that many of those projections have parameters that can be varied depending on the part of the earth you wish to focus on, the number of possible projections is infinite.
However, there are a much more limited number of projections that are commonly used. The following are some North-America-centric suggestions that can give you a good starting point in seeking an appropriate projection for your map. A much longer list of world projections is available here.
World Mercator
Mercator is one of the oldest and most commonly seen projections. It was devised by the Flemish cartographer Gerardus Mercator (1512-1594) during the great age of European exploration, and as such it is conformal (preserves direction) in order to facilitate naval navigation.
A primary disadvantage of the Mercator is that it makes areas look larger the further they are from the Equator. This is best exemplified by the highly exaggerated size of Greenland, something called the Greenland Problem (Block 2004).
Because we visually associate size with power, this characteristic makes countries at northern latitudes (which have also historically been imperial powers) look more powerful than countries in the Global South. In the late 1960s and early 1970s, German historian Arno Peters began actively crusading against use of the Mercator projection (and for the use of his own Gall-Peters projection) as an antidote to what he asserted was the European colonial domination of other peoples of the world reflected in the distortions of the Mercator projection. Peters' critique of the Mercator projection remains active in the cartographic community despite the continued ubiquity of maps using that projection (Peters 1983, Robinson 1985, Monmonier 2010).
The Mercator projection is a cylindrical projection, with a developable surface equivalent to wrapping the map as a cylinder around the earth.
Spherical Mercator (Web Mercator)
Spherical Mercator is a variation of the Mercator projection that mathematically represents the world as a sphere rather than an ellipsoid to make calculations easier. This is the projection used by almost all web maps.
Because the world is slightly flattened, this spherical representation causes the map to be inaccurate when mapping large areas closer to the poles. However, that is not usually a major problem with a web mapping app like Google Maps that is used in lower latitudes for mundane tasks like finding sushi restaurants.
Robinson Projection
The Robinson projection is a compromise projection developed by Arthur Robinson in 1963 (ESRI 2023, Robinson 1974). The Robinson projection solved the "Greenland Problem" by representing the country closer to its actual size than the Mercator projection. The Robinson projection is considered by many to be visually appealing and in 1988 was adopted by the National Geographic Society for some of its world maps in place of the older Van der Grinten projection.
Winkel Tripel
Winkel Tripel is another compromise projection devised by Oswald Winkel in 1921 that strives to represent the whole world while minimizing distortion of area, direction and distance. This was the third of a group of world projections devised by Winkel, and tripel means three in German. This is the projection used for maps by the National Geographic Society and many educational publishers.
McArthur's Universal Corrective Map
McArthur's Universal Corrective Map is one of a number of alternative projections intended to provoke viewers to critically examine assumptions about maps. It is a variant on a Mercator projection by Australian cartographer Stuart McArthur that debuted in 1979 with a reversal of north and south.
There is, of course, no geological or astrophysical reason why north should be up, and the reversal of the poles asks us to call into question the biases inherent to a traditional north-up orientation.
Unprojected Longitude / Latitude
Since longitude and latitude represent x/y coordinates, they can be directly graphed on a grid, and this is the default when you open an unprojected feature class in ArcGIS Pro. However, because longitudes are closer together the further you move away from the equator, the shapes of areas are flattened and expanded the further you move away from the equator.
Equirectangular (unprojected) longitude and latitude is useful for diagnosing problems with data, but should not be used in any professional presentation, as that implies carelessness or ignorance of cartographic principles and standards.
Common Large Country and Continent Projected Coordinate Systems
Albers Equal Area Conic
Albers Equal Area Conic is a common projection for maps of the continental United States that has historically been used by the United States Geological Society (USGS). It was developed by Heinrich C. Albers in 1805.
This is an example of a conic projection that is equivalent to wrapping the developable surface as a cone around the planet in a way that intersects the surface of the earth in one or two places, which are called standard parallels. This projection is an equal-area projection preserves area while slightly distorting shape. The selection of standard parallels can be based on which part of the earth is the point of focus.
Lambert Conformal Conic
The Lambert Conformal Conic is another conic projection commonly used for the continental United States. While it distorts area, it preserves shapes better, and since it preserves angles (conformal) it is commonly used for aeronautical charts since a straight line on the map approximates the shortest-path great-circle distance between two points. It was first developed an published by Swiss cartographer Johann Heinrich Lambert in 1772.
Common Local Projected Coordinate Systems
While projections for world or country maps are primarily focused on presentation or navigation, projections at the local level are more important for the ability to accurately find specific locations and measure distances, such as when surveying property lines or engaging in military activity.
State Plane Coordinate System
The State Plane Coordinate System (SPCS) is a set of planar projections commonly used by local and state governments in the USA.
- Planar projections like the SPCS represent the world as a flat plane (surface), which is the way we normally interact with the world and measure distances over small areas.
- Planar projections define a projected coordinate system that represents locations as X and Y planar coordinates, which are commonly referred to as eastings and northings.
- Planar coordinates make it easy to calculate distances using Euclidean geometry, such as when surveying property lines or engaging in military activity.
There are 124 different SPCS zones in different parts of the US.
- SPCS zones are named after the state and the portion of the state represented (e.g. Illinois East, California Zone 5).
- SPCS zones are based on the shapes of the states and are designed to maximize the amount of area in each zone while minimizing distortion.
- The small size of these zones means that distortion of distance can be greatly minimized to 1 part in 10,000.
- You can measure a distance of two miles within around a foot of accuracy
State Plane Coordinate Systems express their coordinates in different length units as determined by the policies of the different state governments:
- Meters
- International Feet: This is the international standard adopted in 1959 that defined a foot as 0.3048 meters, which is slightly shorter than the US survey foot (NYS Association of Professional Land Surveyors 2022).
- US Feet: This is the definition of a foot as 1200 ⁄ 3937 of a meter that US surveyors have used officially since 1893. This measurement has been deprecated in favor of the international foot (NOAA 2022).
There are different SPCS variants for different datums. Unless your organization or project uses an older datum or length unit, the safest option is to use the most recent NAD 83 (2011) datum with lengths in meters.
Universal Transverse Mercator
Universal Transverse Mercator (UTM) is a coordinate system based on the Mercator projection and used as an alternative to latitude and longitude.
- UTM was devised by the US Army Corps of Engineeers in the 1940s to make land navigation easier and is still used as the basis for the military's Military Grid Reference System.
- Unlike the State Plane Coordinate System, UTM projections cover the whole world, as befits an organization like the US military that has operations all over the world.
- Because the projection preserves distance (conformal) and the distortions of distance within small areas on a Mercator are minimal, distance calculations are easier when conducting military operations within fairly small areas.
UTM divides the world is divided into 120 zones with zone coordinates specified in meters. Zones are numbered 1 - 60, with separate zones (N or S) for the northern and southern hemisphere.
Transverse Mercator projections are based on a cylindrical wrapping of the developable surface around the planet like the Mercator. However, the wrapping is around the poles (transverse) rather than around the equator (equatorial), so the zones of minimal distortion cover broad swaths of area that can be used as battle spaces.
Map Projections in ArcGIS Pro
Projections can be changed on an ArcGIS Pro map by right-clicking on the layer in the Contents pane and selecting Properties, Coordinate Systems.
The dialog box will show you the current projection and allow you to search or browse for a new projection.
The projections dialog gives you two sets of coordinate systems to choose from:
- Geographic coordinate systems indicate where features are on the surface of the planet.
- Projected coordinate systems indicate where features are on maps.
The video below demonstrates how to change a world map from its existing projection (Web Mercator - EPSG 3857) to the common Robinson projection (EPSG 54030). Because different projections often have similar names, if you want a specific projection and you have a WKID number to search on, that will help you find that specific projection. In this case, we use 54030 for the Robinson projection.
Getting Projection Information in ArcGIS Pro
While the software gives you the option to display a map in different geographic coordinate systems, you will normally only create maps using projected coordinate systems. The geographic coordinate system used to create the projected coordinate system is implied when you choose a projected coordinate system.
You can find the geographic coordinate system used in a projection by selecting the Details option in the ArcGIS Pro coordinate systems dialog.
For example, this video shows that the Robinson projected coordinate system (ESRI 54030) uses the WGS 1984 datum (EPSG 4326) as its geographic coordinate system.
Grids and Graticules in Map Layout
A common feature of maps is a grid of lines that show map coordinates.
A graticule is a grid of lines that shows intervals of latitude and longitude on a map.
The video below shows how to add a graticule to a map frame.
By contrast, in ArcGIS Pro terms, a measured grid is a grid of lines that displays distance intervals in the projected coordinate system used in the map.
- Measured grid lines are more appropriate than graticule lines when working with a projection that represents actual distances across the surface of the earth, such as in a State Plane Coordinate System or UTM.
- Graticules are more appropriate on maps that cover large areas (like the whole world or large countries) where information about latitude and longitude may be helpful for interpreting locations on the map.
Graticules and measured grids add clutter to a map, especially if there is a base map or complex labeling, so they should generally be avoided unless absolutely needed to convey useful information to the map reader.
The video below shows how to add a measured grid to a map layout for a map displayed in the Illinois East State Plane Coordinate System.
Euclidian Distance with Planar Coordinates
The State Plane Coordinate Systems treat the earth as a flat plane (hence, the name) and can therefore be conveniently used for calculating distance.
The example below uses two points in Chicago: The Sears Tower (41.8789, -87.6358) and the Cloud Gate sculpture in Millennium Park (41.882686, -87.623325). Chicago is in the Illinois East State Plane Coordinate System zone, and the WKID for the coordinate system in US feet is EPSG 3435.
The easting in a State Plane projection is the position east-west (similar to longitude), and the northing is the location north-south (similar to latitude). Because this is a US Feet State Plane variant, those numbers are in feet.
Using ArcGIS Pro as shown in the video, you can change the map projection to State Plane and then get the northing and easting for each point. By subtracting to get the east-west distance and the north-south distance between the points, you get the two sides of a triangle. You can then use the Pythagorean theorem to calculate the Euclidean distance (hypotenuse) between the two points in feet.
Note that you cannot do this with latitudes and longitudes because those are angular measurements, and the ground distance represented by a degree is different on different parts of the planet.
Sears Tower: 1174208 East, 1899233 North Cloud Gate: 1177593 East, 1900640 North East/west distance = 1177593 - 1174208 = 3385 feet apart east/west North/south distance = 1900640 - 1899233 = 1407 feet apart north/south square_root(3385^2 + 1407^2) = square_root(11458225 + 1979649) = 3666 feet
Projections in Python
By default, the GeoPandas GeoPandas plot() method will display a GeoDataFrame in its current coordinate system. In this case, data read from the GeoJSON file is in unprojected WGS 1984 lat/long (EPSG 4326).
import geopandas import matplotlib.pyplot as plt countries = geopandas.read_file("https://michaelminn.net/tutorials/data/2022-world-bank-indicators.geojson") graticule = geopandas.read_file("https://michaelminn.net/tutorials/data/2023-graticule.geojson") axis = countries.plot('Energy MM BTU per Capita', legend=True, scheme='quantiles', cmap='coolwarm') graticule.plot(facecolor='none', edgecolor='#00000020', ax=axis) axis.set_axis_off() plt.show()
You can transform a GeoDataFrame to a new projection by passing the WKID to the to_crs() method. This example uses the world Robinson projection (ESRI 54030)
countries = countries.to_crs("ESRI:54030") graticule = graticule.to_crs("ESRI:54030") axis = countries.plot('Energy MM BTU per Capita', legend=True, scheme='quantiles', cmap='coolwarm') graticule.plot(facecolor='none', edgecolor='#00000020', ax=axis) axis.set_axis_off() plt.show()
Projections can also be passed as PROJ strings (proj.4). This example demonstrates use of a PROJ string to create a MacArthur's Universal Corrective map.
macarthur = '+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +axis=esu +units=m +no_defs' countries = countries.to_crs(macarthur) graticule = graticule.to_crs(macarthur) axis = countries.plot('Energy MM BTU per Capita', legend=True, scheme='quantiles', cmap='coolwarm') graticule.plot(facecolor='none', edgecolor='#00000020', ax=axis) axis.set_axis_off() plt.show()
Projections in R
By default, the sf plot() function will display an sf object in its current coordinate system. In this case, data read from the GeoJSON file is in unprojected WGS 1984 lat/long (EPSG 4326).
library(sf) countries = st_read("https://michaelminn.net/tutorials/data/2022-world-bank-indicators.geojson") graticule = st_graticule(lat=seq(-80, 80, 20), lon=seq(-180, 180, 20)) palette = colorRampPalette(c("red", "gray", "navy")) plot(countries["Energy.MM.BTU.per.Capita"], breaks="quantile", pal=palette, reset=F) plot(graticule$geometry, col="#00000040", add=T)
You can transform an sf object to to a new projection by passing the WKID to the st_transform() function. This example uses the world Robinson projection (ESRI 54030)
countries = st_transform(countries, 'ESRI:54030') graticule = st_transform(graticule, 'ESRI:54030') plot(countries["Energy.MM.BTU.per.Capita"], breaks="quantile", pal=palette, reset=F) plot(graticule$geometry, col="#00000040", add=T)
Projections can also be passed as PROJ strings (proj.4). This example demonstrates use of a PROJ string to create a MacArthur's Universal Corrective map.
macarthur = '+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +axis=esu +units=m +no_defs' countries = st_transform(countries, macarthur) graticule = st_transform(graticule, macarthur) plot(countries["Energy.MM.BTU.per.Capita"], breaks="quantile", pal=palette, reset=F) plot(graticule$geometry, col="#00000040", add=T)