Map Projections in Geographic Information Systems

Definition

A map projection is a set of mathematical functions that provide 2-dimensional coordinates for 3-dimensional positions on the surface of a round solid

X = f(f , l )

Y = g(f , l )

Where

f() and g() are functions specific to a given projection

f represents the latitude of a point

l represents the longitude of a point

The 3rd dimension, R, represents the distance of the point from the center of the solid body

On spheres, R is constant

On ellipsoids, the distance of the point to the center depends upon its position on the ellipsoid

This link demos some of the concepts in this lecture

You can get the source code here

Why are projections used in a GIS?

Virtually all display devices produce flat output

Monitors, printers, plotters

Although the surface of a monitor may be curved to help focus an image, the frame buffer representing the image is considered planar

Creating a map on a flat surface, electronic or paper, requires a method for transforming 3-D coordinates to 2-D

How do map projections relate to affine transformations?

An affine transformation preserves linearity

Points lying on a line in an original coordinate system will remain collinear in the new coordinate system

We will be taking an in-depth look at affine transformations in a later lecture

A latitude/longitude pair is first converted to a projection�s X/Y coordinate system

The coordinates produced by the projection are likely to be outside of the physical device�s coordinate range

But how do we �scale down� the Mercator coordinates so that they can fit on a piece of paper or a monitor?

Normalize the Mercator coordinates

Use the normalized coordinates to make new physical device coordinates appropriate for your media

The projected coordinates X,Y can be subsequently reduced with a scale operation

X� = X * Sx

Y� = Y * Sy

The coordinates could also be rotated and translated to fit any page positioning criteria

An example using Mercator�s projection for the earth represented as a sphere

X = R (l - l 0)

Y = R ln [tan (p/4 + f /2)]

Where

R is the radius of the earth in meters

l0 is the longitude of the central meridian for the projection

The meridian for which x = 0 for all projected points

l is the longitude of the point to be projected

f is the latitude of the point to be projected

ln is the natural log function

tan is the tangent function

All angles are stated in radians

Doing the computations

For the point latitude = 42 N,longitude = 74 W with

f = .733 radians

radian equivalent of 42 degrees

l = -1.292 radians

radian equivalent of �74 degrees

R = 6,378,000 meters

rounded here for simplicity

l0 = .0 radians

make 0 longitude the central meridian

X�� = R (l - l 0)

���� = 6,378,000 * (-1.292 � .0)

���� = -8,237,465

Y = R ln [ tan (45 + [f / 2] ) ]

���� = 6,378,000 * ln [ tan (p/4 + [.733 / 2] ) ]

���� = 6,378,000 * ln [ tan (1.152) ]

���� = 6,378,000 * ln [ 2.246� ]

���� = 6,378,000 * 0.809�

���� = 5,160,869

So the point 42 N, 74 W projects to
X = -8,237,458, Y = 5,160,869

Click here to get an Excel spreadsheet to do the computations

The spreadsheet does the calculations with the actual Clarke 1866 radius value of 6378206.4 meters so your X and Y values will be a little different from those in the previous example

Scaling projected coordinates to fit an output device coordinate range

But now, how do you plot that point into your 1024 X 768 frame buffer or onto an 8 �� X 11� sheet of paper?

You have to normalize your coordinates and then transform them to the physical device range of the target media

Let�s take the previous example and plot our point on an 8 �� X 8 �� region

First, we have to find the range of projected coordinates that we want to display

We will zoom out and show the world from �180 to +180 degrees longitude and from �80 to +80 degrees latitude

Our first job is to find X values for our minimum and maximum longitudes at some latitude

Using the equation X = R (l - l 0)

For 180 W,

180 W = -p radians

Xmin��� = R (-p - .0)

���������� = - 20,037,078

For 180 E,

Xmax��� = 20,037,078

Use the normalization formula to get the normalized X coordinate for our projected longitude:

Xn

=

(X�� ���� Xmin)

/

(XmaxXmin)

0.294444

=

(-8237465���� ���� -20037078)

/

(20,037,078 � -20,037,078)

 

Convert the projected X coordinate to page coordinates

Multiply the the normalized coordinate by the width of the page

We would use the same scale factor for both X and Y so that the projection doesn�t �stretch� in one dimension relative to the other

Assuming a page width of 8.5 inches,

Xpage���� = Xn * 8.5

���������� = .294444 * 8.5 inches

���������� = 2.502778 inches from the left edge of the paper

So any point on 74 W ends up 2.5 inches from the left edge of the paper

You can use the same method to find the Ypage coordinate for the latitude

You can, of course, use any units you like for your page coordinate system, including pixel dimensions

Drawing the graticule (latitude and longitude grid)

You can draw the graticule by projecting points along parallels or meridians and then connecting them with straight lines or curves

Mercator�s projection is easy to draw because all lines project as straight lines

Many other projections require that you draw curved lines

e.g., most of the conic projections

Inverse projections

Inverse projections take projected coordinates and return latitude/longitude coordinates

Converting 2-D to 3-D coordinates

Although it seems like we�re creating information by coming up with 3 dimensions from 2, remember that we treat the third dimension (radius) as a constant (on a sphere) or as a function of position on an ellipsoid

Inverse projections are extremely important in GIS work

If someone gives you a digitized coverage in Mercator coordinates and the rest of your data is in Lambert conformal conic coordinates, you have to reverse project Mercator to lat/long, and then forward project to Lambert conformal conic

For Mercator�s projection, here are the inverse equations for the sphere:

f = (p / 2) � (2 arctan [e-Y/R])

l = X / R + l 0

where e = 2.7182818� (base of natural logarithms)