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?

6
  • 1
    search for "cea PROJ.4", i.e. proj4.org/operations/projections/cea.html - they are not the same.
    – mdsumner
    Oct 22, 2018 at 9:57
  • @mdsumner you are definitely right they are not the same but how do I determine which one is the longlat? Oct 22, 2018 at 10:29
  • @HermanToothrot the first part define it +proj=longlat
    – aldo_tapia
    Oct 22, 2018 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, 2018 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 ) Oct 22, 2018 at 13:50

1 Answer 1

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.

2
  • 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. Oct 23, 2018 at 7:34
  • Never mind about that question, I see it's only distorted but area is the same. Oct 23, 2018 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.