Transform Point Cloud elevations

AndrewWAndrewW Global Mapper UserPosts: 53Trusted User
edited June 2012 in Elevation Data
Hi,
Is there any way of transforming elevations of point clouds eg las or xyz file by:
  1. A fixed amount ie a z offset.
  2. Via a z transformation grid like a conversion from Ellipsoid to an Orthometric heights.
The las files has a number of attributes that need to be preserved.
Andrew

Comments

  • global_mapperglobal_mapper Administrator Posts: 17,238
    edited May 2012
    Andrew,

    You could export the point cloud to a Simple ASCII Text File and use the Point Offset/Scale tab of the export dialog to scale/offset the values, then load that back in and export to a new LAS vector point cloud file.

    Let me know if I can be of further assistance.

    Thanks,

    Mike
    Global Mapper Guru
    gmsupport@bluemarblegeo.com
    http://www.globalmapper.com
  • AndrewWAndrewW Global Mapper User Posts: 53Trusted User
    edited May 2012
    Hi Mike,
    Ok that solves issue 1. Thanks.
    Issue 2 is more of a problem. I can get a result on a surface by converting the z transformation grid to a surface and can then add it to another surface but it doesn't work on point clouds because I loose all the las point attributes. My Z tranformation grid is a grid of coordinates with each point being the z offset.
  • AndrewWAndrewW Global Mapper User Posts: 53Trusted User
    edited May 2012
    Hi Mike,
    I have another problem with process.
    My input data looks like this:
    1448177.830 5128077.260 460.240 10
    1448177.950 5128077.280 460.220 12
    1448178.060 5128077.310 460.240 11
    1448178.180 5128077.330 460.130 12

    I wrote a script to export as simple ascii which includes:
    EXPORT_VECTOR FILENAME="%DIR%%FNAME_WO_EXT%NZGD09.asc" TYPE=SIMPLE_ASCII FEATURE_SEP=NONE EXPORT_ATTRS=NO_STYLE COORD_OFFSET=0,0,0.47 EXPORT_ELEV=No

    and the result is:
    NONEDESCRIPTION=Unknown Point Feature
    NAME=10
    INTENSITY=10
    ELEVATION=460.24
    1448177.830,5128077.260,459.77
    NONEDESCRIPTION=Unknown Point Feature
    NAME=12
    INTENSITY=12
    ELEVATION=460.22
    1448177.950,5128077.280,459.75

    How do I get the data back to a single line of text for each record ie xyzi
  • global_mapperglobal_mapper Administrator Posts: 17,238
    edited May 2012
    I have a solution if you have the grid of values to add to the elevation of each point. After you load the initial point cloud, select all of the points and edit them and rename the ELEVATION attribute to something else, like Z_ORIG. Then right-click with the Digitizer Tool and select to get elevations from the grid data for the selected features. This should add a new ELEVATION attribute to the points from the grid. Then, right-click on the point cloud layer in the Control Center and select to CALC ATTR and update the existing ELEVATION attribute by adding the Z_ORIG attribute to it. This should make your ELEVATION attribute now adjusted from the grid and you can then export to a new LAS vector file and keep all other original attributes.

    Let me know if I can be of further assistance.

    Thanks,

    Mike
    Global Mapper Guru
    gmsupport@bluemarblegeo.com
    http://www.globalmapper.com
  • AndrewWAndrewW Global Mapper User Posts: 53Trusted User
    edited May 2012
    Works a treat.
    Thanks Mike
  • jayheimanjayheiman Global Mapper User Posts: 13Trusted User
    edited June 2012
    It appears this is almost exactly what we've been trying to accomplish, but it doesn't seem to be working quite right. I notice in the data presented above the ELEVATION attribute and the z-value don't match. This is the problem we've been encountering.

    I can get the z-value to "adjust" when exporting to a text file but can't get the ELEVATION attribute to change.

    How can we keep the attribute and the z-value in sync? Or, alternatively, get the attribute to change since I can get the z-value to not export with the EXPORT_ELEV=NO option.

    Thanks
    Jay
  • global_mapperglobal_mapper Administrator Posts: 17,238
    edited June 2012
    Jay,

    What attribute do you have set as the 'elevation' attribute for the layer on the Control Center options dialog for the layer? This is where the Z value in a 3D text export would come from. Once you assign the elevation to come from a particular attribute then an attribute named 'ELEVATION' is not special anymore, it's just another attribute. The elevation will just come from there by default (as well as a bunch of other supported names) if you don't explicitly set an elevation attribute to use.

    Thanks,

    Mike
    Global Mapper Guru
    gmsupport@bluemarblegeo.com
    http://www.globalmapper.com
  • jayheimanjayheiman Global Mapper User Posts: 13Trusted User
    edited June 2012
    Mike,
    It's set to default. And it's the mis-match between the elevation and the z that's giving us the problem.
    Jay
  • global_mapperglobal_mapper Administrator Posts: 17,238
    edited June 2012
    Jay,

    Which one is the actual elevation? I would just delete the other attribute. If you have multiple attribute names that are default elevation attributes, you simply get the first one that is in the list of built-in elevations treated as the elevation value. ELEVATION is before Z in the list so ELEVATION would be used as the elevation unless you explicitly set it to come from Z.

    Thanks,

    Mike
    Global Mapper Guru
    gmsupport@bluemarblegeo.com
    http://www.globalmapper.com
  • jayheimanjayheiman Global Mapper User Posts: 13Trusted User
    edited June 2012
    Mike,
    We're starting with the lidar las file, exporting to the ascii xyz with vertical adjustment and getting the following in the text output:
    DESCRIPTION=LIDAR, Ground Shot
    ELEVATION=135.69
    CLASS=2 (Ground)
    INTENSITY=72
    SCAN_ANGLE=-5.0
    RETURN_CNT=1
    GPS_TIME=496496.1
    POINT_SYMBOL=Elevation Shaded
    4144009.02,13547616.81,83.19

    DESCRIPTION=LIDAR, Ground Shot
    ELEVATION=135.63
    CLASS=2 (Ground)
    INTENSITY=50
    SCAN_ANGLE=-5.0
    RETURN_CNT=1
    GPS_TIME=496496.2
    POINT_SYMBOL=Elevation Shaded
    4144005.56,13547621.14,83.13

    I can't figure out how to either get elevation not to export or to "recompute" to match the z value.
    Can I just set elev_field=z on txt file reimport?

    Jay
  • jayheimanjayheiman Global Mapper User Posts: 13Trusted User
    edited June 2012
    Mike,
    Actually I'm probably chasing the wrong issue(s).
    Can we just get a Z adjustment (to elevation attributes and z values) when exporting to lidar las?
    Jay
  • global_mapperglobal_mapper Administrator Posts: 17,238
    edited June 2012
    Jay,

    Ah I see what is going on. Rather than doing the Z adjustment on export and creating a 3D file, instead right-click on the layer in the Control Center and select the CALC ATTR option and adjust the ELEVATION attribute directly. That way you don't have a special adjusted Z value in the file and the original unmodified text attribute ELEVATION. The values would match.

    I also updated the generic ASCII text file importer to override the ELEVATION attribute on import with the Z value specified so they will be consistent on import. I have placed a new build at http://www.globalmapper.com/global_mapper13.zip with the latest changes for you to try. Simply download that file and extract the contents into your existing v13.xx installation folder to give it a try. If you are using the 64-bit v13 version there is a new build at http://www.globalmapper.com/global_mapper13_64bit.zip .

    Let me know if I can be of further assistance.

    Thanks,

    Mike
    Global Mapper Guru
    gmsupport@bluemarblegeo.com
    http://www.globalmapper.com
  • jayheimanjayheiman Global Mapper User Posts: 13Trusted User
    edited June 2012
    Tom points out that calc-attr would be perfect if available in scripting.
    Thanks
    Jay
  • jayheimanjayheiman Global Mapper User Posts: 13Trusted User
    edited June 2012
    Mike,
    That should solve the issue. Unfortunately our attempts so far have indicated that using this method in a script is wayyyyyy tooooo slow. The ascii export and import takes an inordinate amount of time. We can manually use the calc-attr function and do several by hand in the time the script takes.
    It will be great when you get calc attrribute into the scripting.

    Thanks
    Jay
  • global_mapperglobal_mapper Administrator Posts: 17,238
    edited June 2012
    Jay,

    I have also added support for the COORD_OFFSET and COORD_SCALE parameters for the EXPORT_VECTOR script command when exporting Lidar LAS files so you can do the offset and scale directly there too if you want.

    Thanks,

    Mike
    Global Mapper Guru
    gmsupport@bluemarblegeo.com
    http://www.globalmapper.com
  • global_mapperglobal_mapper Administrator Posts: 17,238
    edited June 2012
    Forgot the link... I have placed a new build at http://www.globalmapper.com/global_mapper13.zip with the latest changes for you to try. Simply download that file and extract the contents into your existing v13.xx installation folder to give it a try. If you are using the 64-bit v13 version there is a new build at http://www.globalmapper.com/global_mapper13_64bit.zip .

    Thanks,

    Mike
    Global Mapper Guru
    gmsupport@bluemarblegeo.com
    http://www.globalmapper.com
  • jayheimanjayheiman Global Mapper User Posts: 13Trusted User
    edited June 2012
    Mike,
    Assuming that will work as usual for your fixes......fantastic.
    We were looking at days to run the original script.
    Should be a few hours now.
    Jay
Sign In or Register to comment.