Most of us know the Earth is spherical, or more accurately an ellipsoid. The fact that we have to represent a curved 3-dimensional surface to a 2-dimensional flat piece of paper or screen means that some distortions are involved. This method of “projecting” the Earth’s surface to a 2D image is called a map projection.
There are hundreds of map projections, and each of them minimises distortion in the shape, distance, area and direction in various degrees. However, no map projection can eliminate them all, hence understanding the pros and cons of each projection is essential to determine what to use for your project.
Orthographic Projection
Mercator Projection
Transverse Mercator Projection
Lambert Conformal Conic Projection
Robinson Projection
Summary
To visualise the various projections, we can use the Python libraries matplotlib and cartopy.
pip install matplotlib cartopy
The code source for most of the world maps created in this article is provided below.
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.feature as feature# fix maplotlib params
plt.rcParams[‘figure.dpi’] = 175
# projections & borders
CRSs = [ccrs.Orthographic(),
ccrs.Orthographic(central_longitude=0, central_latitude=-90),
ccrs.Mercator(),
ccrs.UTM(zone=29),
ccrs.Robinson(),
ccrs.LambertConformal()]
borders = [(0, 1, 1, 0.05),
(0, 1, 1, 0.05),
(0, 1, 1, 0.05),
(0, 1, 1, 0.05),
(0.05, 1, 1, 0),
(0, 1, 1, 0)]
names = ["ortho", "ortho_southpole", "merca",
"utm", "robin", "lambertc"]
dir = "/Users/jake/Desktop/gis"
for crs, br, name in zip(CRSs, borders, names):
fig, ax = plt.subplots(subplot_kw=‘projection’: crs)
projection_name = str(crs).split(" ")[0]
# Draw countries and coastlines
ax.coastlines(linewidth=0.5)…