1

This is a rather conceptual question that i haven't been able to address yet. Let's say I have a raster file projected in an equal area projection (say Mollweide), with a cell resolution of 100km x 100km. Since the projection preserves the area along the parallels, all cells should have the same area.

Now, as we know from the basic principles of cartography, no projection can preserve both area and shape of features when converting a sphere to a flat surface. This can be easily illustrated, if we draw a line of 100 km projected length at the equator on a map in equal area projection (but also on a map in orthographic projection), and a line of the same projected length towards the poles, these two lines will appear to have very different lengths in terms of screen pixels (check it out in google earth!).

Given this knowledge, if we try to visualise the above mentioned raster either in Python or in R using the appropriate packages (see scripts below), the cells have the same screen pixel dimensions regardless of the latitude. However, I would expect that, since each cell has the same dimensions (100km x 100km), cells towards the poles should be thinner and rather elongated (see also the attached snapshot from a recent scientific publication) in order to preserve area. So my question is, what is the appropriate way of visualising raster cells in equal area projections?

Code in Python:

import matplotlib.pyplot as plt
from osgeo import gdal
import cartopy
import numpy as np

fig = plt.figure(figsize=(15, 8))

proj = cartopy.crs.Mollweide()
ax = plt.axes(projection = proj)

raster = gdal.Open('test.tif') # a raster at with cell resolution 100x100km
band = raster.GetRasterBand(1)
nodata = band.GetNoDataValue()
array = band.ReadAsArray()

array[array == nodata] = np.nan
img = ax.imshow(array, origin='upper', cmap='jet')

ax.get_xaxis().set_visible(True)
ax.get_yaxis().set_visible(True)

plt.show()

Code in R:

library(raster)
ras = raster('test.tif')
plot(ras)

Example figure with stretched cells towards the north pole (source): Example figure with stretched cells towards the north pole

  • 1
    Look for work by Frank Canters (book, papers). Also, I'm pretty sure that Google Earth doesn't use an equal area projection. – mkennedy Sep 2 '17 at 16:13
  • Nope, Google Earth uses a “Simple Cylindrical” projection similar to orthographic, but the line effect is similar to equal area projections. Thanks for the suggestion! – spyrostheodoridis Sep 2 '17 at 17:16
1

Only as a remark:

The pixels on the screen representing cells with the same area and by going foward to north the cell width shrinks, the area is equal ..thats all.

In ecology, climatology and meteoroloy this is an often reflected feature in terms of correct calculation and representation. The optimal way between "fine (paper work) mapping" by traditional means and representation accuracy (in 2D) of the calculation in modern concerns are opponents in this case. Constructions like geodesdic grids can be used with the lack of "traditional (lon-lat-grid)" feature mapping and the corresponding equal area projections. Special solution like climate grids addressing their own (equal area) accuracy. Scientists use often special software beyond/over the common GIS approach like NCL or GMT to be more accurate or general and depending on the mapscale.

  • The GMT example you linked to is simply overlaying two datasets, converting one from lat/lon to UTM--which can be done by any GIS software worth its name. It's nothing special to GMT. – mkennedy Sep 3 '17 at 16:29
  • @mkennedy Sorry for beeing unclear, but the worthyness of GIS software was not the point on this remark. IMO for the presentation of large region maps with equal area projection, the users start to use/write special stuff to be more accurate(NCL/ climate grids) or more general (GMT). And you are right GMT is a piece of GIS software. – huckfinn Sep 3 '17 at 19:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.