3

I am using R but also tried with QGIS, visually the two maps look the same but the projection info it's not. QGIS provides the same info.

first map

+proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0 

second map

 +proj=cea +lon_0=0 +lat_ts=30 +x_0=0 +y_0=0 +datum=WGS84
    +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0

First I would like to know what these abbreviations mean, some are rather intuitive but not all of them. lat_ts? no_def? towgs?

How do I check with R that these two projections are the same?

  • 1
    search for "cea PROJ.4", i.e. proj4.org/operations/projections/cea.html - they are not the same. – mdsumner Oct 22 '18 at 9:57
  • @mdsumner you are definitely right they are not the same but how do I determine which one is the longlat? – Herman Toothrot Oct 22 '18 at 10:29
  • @HermanToothrot the first part define it +proj=longlat – aldo_tapia Oct 22 '18 at 10:58
  • +units=m is another dead giveaway that you aren't dealing with a lat-long coordinate system. These will be coordinates in metres. – Spacedman Oct 22 '18 at 11:55
  • @aldo_tapia sorry my wording was not clear. I meant, how do I know the actual name of the projection labeled as "longlat"? I can't find a projection called longlat, but it should be the plate carrée (Equirectangular ) – Herman Toothrot Oct 22 '18 at 13:50
3

You are looking at the PROJ representation of your two crs's. The high-level documentation for PROJ is here - https://proj4.org/usage/index.html, which describes what most of the +thing= parameters do.

PROJ crs definitions in common use have been mapped to EPSG codes, which may be what you're thinking of as CRS 'names'. You can try googling with the full string, looks like EPSG:6933 is a match for your second crs - http://epsg.io/6933.

Since PROJ strings are just that, plain text strings, a first pass check in R is as simple as reading it, or checking with identical(x, y). However, sometimes the component parameters for two crs's are all the same but in a different order, so you may wish to do some string manipulation before comparing like:

# split by spaces
a <- str_split('+proj=cea +lon_0=0 +lat_ts=30 +x_0=0 +y_0=0 +datum=WGS84 
                +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0', ' ')
b <- str_split('+proj=cea +lon_0=0 +lat_ts=30 +x_0=0 +y_0=0 +datum=WGS84 
                +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0', ' ')
b[[1]] <- rev(b[[1]])
# a and b are now lists of proj params with a different ordering

# check equality with
identical(sort(unlist(a)), sort(unlist(b)))

# try tweaking a parameter and recheck
b[[1]][4] <- '+units=ft'

identical(sort(unlist(a)), sort(unlist(b)))

+proj=cea signifies the second crs you have is an equal area cylindrical, not equidistant (of which plate carrée is a special case). Its probably best suited for doing area calculations or raster plotting across the nothern mid-latitudes.

  • Thanks for the answer. I am not sure if equal area is good for northern latitudes, the PROJ map shows norther latitudes to be smaller, I don't understand how this can be equal area. – Herman Toothrot Oct 23 '18 at 7:34
  • Never mind about that question, I see it's only distorted but area is the same. – Herman Toothrot Oct 23 '18 at 7:46

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.