-
-
Notifications
You must be signed in to change notification settings - Fork 3.2k
Description
Feature description
Point clouds reprojected with the Processing Toolbox -> Point cloud data management -> Reproject are rounded to 2 decimal places. That is regardless of the destination SRS.
This makes sense when working with metric Cartesian coordinates (UTM, ECEF, etc.), because most point clouds don't have a precision greater than 1 cm, and using larger scale factors makes LAZ data compression less efficient. But rounding to 2 decimal places when projecting to geographic latitude/longitude is a bad idea, because this corresponds to >1 km at the equator. Data reprojected with this tool is useless.
There are two possible solutions:
- When transforming to geographic/angular coordinates, preserve 7 decimals (0.0000001) in latitude and longitude, corresponding to ~0.011 m at the equator. (Continue to preserve 2 decimals for Z values if in meters/feet.)
- Update the form to provide an option for the decimal precision. Default it to 2 decimals, but set it to 7 when choosing a geographic SRS. This will benefit users who don't understand the equivalence, while allowing power users the ability to configure it for individual datasets.
Additional context
Background: I am helping to create a global COPC dataset in ECEF coordinates. Although the SRS is ECEF, the tiles are broken up by 1x1 degree (geocell). QGIS can't visualize ECEF coordinates, so to interact with the data users will need to reproject it. Because of the tile sizes and global extent, most will want to use geographic coordinates.
Summary: At the moment, QGIS cannot work with our data because:
- ECEF point clouds aren't drawn in the map,
- the Reproject tool rounds them to ~1 km, and
- the Export -> Save As...' option doesn't support CRS transform from ECEF (submitted a bug fix).
Fixing 2 by making the decimal precision relative to horizontal units will solve 1 because the reprojected data (when converted to COPC) will render in the map, and it will make 3 unnecessary.