I have a very big dataset in the form of longitude-latitude points in the US; with points from the entirety of contiguous US. I need to calculate the distances between points and check if they are less than 50 meters. For computational reason, I also need to use classic plane geometry; no distance in degree.

I am wondering what CRS I could/should use. I need one CRS for the entire dataset, that is the whole contiguous US. So far, I have used the North America Albers Equal Area Conic (EPSG: 102003), since it appears to be used by the Census. However, when I compare the distances as calculated from this CRS with the distances as calculated from the Haversine formula, the difference is remarkable. At least, for long distances -- I picked random points uniformly in the US, so the distances are in the order of 10^3 km.

Is there a better choice for a CRS?

Will it even make a difference for short distances in the order of 100 m?

  • Please Edit the question to specify the EPSG codes associated with your geographic and projected coordinate systems . You should also specify the datum transformation used if they are in different datums. Spherical distance (Haversine) isn't really an appropriate tool for testing spheroidal accuracy. If you are using GIS software you should specify that, or other details on how you are projecting your GCS data. – Vince Oct 4 '20 at 19:34
  • I'm not a geodesist, so I'll comment, rather than answer! As I understand, your needs would be best served by using an Equidistant projection, which are designed to minimize distance error. The ESRI publication "Understanding Map Projections" by Kennedy and Kopp states "Equidistant maps preserve the distances between certain points. Scale is not maintained correctly by any projection throughout an entire map; however, there are, in most cases, one or more lines on a map along which scale is maintained correctly." Also see: en.wikipedia.org/wiki/Geographical_distance – Stu Smith Oct 4 '20 at 23:02
  • Alternatively, these posts may shed more light on your issue, and may negate my previous comment: gis.stackexchange.com/questions/170426/…, gis.stackexchange.com/questions/201623/… – Stu Smith Oct 4 '20 at 23:18
  • @Vince thanks for the comment. I have added the code in the question. As for the software, I am using GeoPandas (alongside pyproj). Can you expand on your point that "Spherical distance (Haversine) isn't really an appropriate tool for testing spheroidal accuracy"? – non87 Oct 5 '20 at 21:11
  • @StuSmith Thanks for your comments. The second question you posted seemed highly relevant. Thanks again – non87 Oct 5 '20 at 21:12

At distances of 50m, any half-way decent projection will provide nearly identical results. The distortion coming from projecting the surface of the earth onto a plane will not be material at those distances, though (as you have noted) it can be for points that are thousands of km away. Since it sounds you are removing from consideration, rather than further processing, point pairs that are this far away, you don't need to worry about this.

By half-way decent, above, I mean any projection whose local scale distortion factor is close to 1 over your whole region of interest, in this case the contiguous USA. This includes the projection you are using and many others, but not -- for instance -- EPSG:3857, "Web Mercator".

An article referencing these issues, but focused on the level of error with 200 km buffers rather than your 50m distances, can be found at https://glenbambrick.com/tag/tissot-indicatrix/

An old but still very good publication from U.S. projection guru John Snyder is available at https://pubs.usgs.gov/bul/1532/report.pdf. On p98 there, it says that for the projection you are using, the (local) scale error across the contiguous U.S. is "less than 1 1/4 percent" (the worst being along the northern and southern borders). So if you are OK with your 50m filter possibly being at most 62cm off, you are good to go.

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.