Coordinate System – Use Projection with Meters Units While Plotting Degrees on Axes

coordinate systemr

I've reprojected a map from WGS84 into into Transverse Mercator in an attempt to better represent the proportions of the region, but I would still like to have the axes in degrees, instead of meters.

This is the definition I'm using:

new.proj<-"+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"

and the map is plotted via the plot() function, producing the following figure.

enter image description here

I'm not sure if I'm grossly misunderstanding the point of using different CRS – I realize that Transverse Mercator uses meters as the units, but could it not be plotted as degrees if necessary?

Best Answer

First, some quick definitions: a coordinate reference system (CRS) has 3 parts:

  1. A coordinate system (origin, axes, unit of measurement);
  2. A datum (coordinates are only useful if they are relative to something - that something is a datum); and
  3. A map projection (sometimes).

Geographic CRS' use angular measurements (latitudes and longitudes), measured in degrees, to refer to locations on the surface of a sphere+. These systems do not need map projections.

(+Actually, often an ellipsoid rather than a sphere - but that is not important at the moment.)

Projected CRS' use distance measurements (e.g., eastings and northings), measured in metres, to refer to locations on a plane. These systems DO need map projections. Indeed, it is the map projection that provides transformation from coordinates on a sphere to coordinates on a plane. Transverse Mercator is a map projection.

Because the transformation from geographic coordinates into a projected coordinates is more than just a unit conversion, changing the axes to degrees won't work.

Imagine a globe with regularly spaced lines of longitude (say, every 30 degrees). As you move closer to the north and south poles, the lines converge - they get closer together. For the same reason, the length of a metre in degrees will be be different at the top of your map than it will be at the bottom of the map. This is what precludes the use of degrees on the axes of your plot.

That said, if your aim is to include the geographic (lat/long) coordinates for reference, the simplest approach would be to add a graticule. A graticule is a essentially a grid that represents some CRS on a map. Importantly, it need not be the same CRS that the map is using. On your map, adding a geographic graticule would results in a grid of curved lines showing certain parallels of latitude and meridians of longitude.

A quick internet search turned up an R package: Graticules for R.

Graticules are the longitude latitude lines shown on a projected map, and defining and drawing these lines is not easy to automate. The graticule package provides the tools to create and draw these lines by explicit specification by the user.