connormanning / entwine

Entwine - point cloud organization for massive datasets
https://entwine.io
Other
441 stars 129 forks source link

Issues with state plane coordinate systems that are using survey feet. #305

Closed andreiveselov closed 1 year ago

andreiveselov commented 1 year ago

I have a LAS file that was created using EPSG:2260 (NAD83/ New York East (ftUS)) and I need to convert it to Cesium tiles. It also uses NAD88 height (ftUS) as a vertical coordinate reference system with EPSG:6360.

If I inspect data/metadata inside my LAS file, it is using this coordinate system:

"prettywkt": "PROJCS[\"NAD83 / New York East (ftUS)\",\n GEOGCS[\"NAD83\",\n DATUM[\"North_American_Datum_1983\",\n SPHEROID[\"GRS 1980\",6378137,298.257222101],\n TOWGS84[0,0,0,0,0,0,0],\n AUTHORITY[\"EPSG\",\"6269\"]],\n PRIMEM[\"Greenwich\",0],\n UNIT[\"degree\",0.0174532925199433,\n AUTHORITY[\"EPSG\",\"9122\"]],\n AUTHORITY[\"EPSG\",\"4269\"]],\n PROJECTION[\"Transverse_Mercator\"],\n PARAMETER[\"latitude_of_origin\",38.8333333333333],\n PARAMETER[\"central_meridian\",-74.5],\n PARAMETER[\"scale_factor\",0.9999],\n PARAMETER[\"false_easting\",492125],\n PARAMETER[\"false_northing\",0],\n UNIT[\"US survey foot\",0.304800609601219],\n AXIS[\"Easting\",EAST],\n AXIS[\"Northing\",NORTH],\n AUTHORITY[\"EPSG\",\"2260\"]]", "proj4": "+proj=tmerc +lat_0=38.8333333333333 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +vunits=us-ft +no_defs", "units": { "horizontal": "US survey foot", "vertical": "US survey foot" }, "vertical": "VERT_CS[\"NAVD88 height (ftUS)\",VERT_DATUM[\"North American Vertical Datum 1988\",2005],UNIT[\"US survey foot\",0.304800609601219],AXIS[\"Gravity-related height\",UP],AUTHORITY[\"EPSG\",\"6360\"]]", "wkt": "PROJCS[\"NAD83 / New York East (ftUS)\",GEOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,298.257222101],TOWGS84[0,0,0,0,0,0,0]],PRIMEM[\"Greenwich\",0],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",38.8333333333333],PARAMETER[\"central_meridian\",-74.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_easting\",492125],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304800609601219],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2260\"]]"

Also, looks like X, Y, Z units are all in survey feet. I ran it through build command in Entwine and them use EPT tools to create Cesium tiles. I can see tiles in a browser, but it looks like height is about three times higher than it should be.

Is it possible that either Entwine or EPT tools are not using survey feet and assume that elevation is in meters?

I tried to reproject my datasets from State Plane coordinate system to UTM zone 18N using PDAL and then run it through entwine/EPT tools, I am getting correct rendering for the data. This is a possible workaround that I can use, but it would be better to avoid an extra step.

Thanks!

connormanning commented 1 year ago

Do you get the right positioning for your EPT data in viewer.copc.io?

andreiveselov commented 1 year ago

Yes, I can see the data positioned in a right place geographically, but height of all objects on a terrain is ~3 times higher than it should be.

andreiveselov commented 1 year ago

Also, I tried this dataset in Potree viewer and it is rendering correctly.

connormanning commented 1 year ago

I tried to reproject my datasets from State Plane coordinate system to UTM zone 18N using PDAL and then run it through entwine

Well it's not a full solution but you can do that in place in Entwine without a separate step e.g. entwine build -i ... -o ... -r EPSG:26918 for example. Also if you would post a link to your file or email it to me it would be useful for reproducing the issue.

andreiveselov commented 1 year ago

Thanks Connor! I will try to include reprojection to EPSG:26918 as part of a build command. Earlier I tried to include reprojection to 4978 as part of the build process, but it did not help.

Dataset that I am using is a customer dataset, so I can't share it as it is. I will try to create a separate smaller dataset that I can share.

connormanning commented 1 year ago

I think I have some files like this that should reproduce the issue so don't worry about it. I'll take a look into one of them when I get a chance.

andreiveselov commented 1 year ago

Success! I tried "-r EPSG:26918" and also "-r EPSG:3857" and both produce correct result. I think I will stick with using "-r EPSG:3857" for now, so that I don't have to figure out which UTM zone I need to use for different datasets.

Thanks for your help!

connormanning commented 1 year ago

This is still potentially an issue in viewer.copc.io, but that's out of the scope of Entwine directly so I'll close this ticket. For now, users may reproject their data to overcome the issue.