1

I have elevation data for 699 points around Australia. I want to calculate the difference between these point elevations and the highest elevation within 25 nautical miles - in simple terms I want to get a sense of the terrain around each point.

I have been able to obtain the maximum elevation within a 25nm radius using the SRTM-derived 3 Second Digital Elevation Models Version 1.0. However, this DEM uses EGM96 as the vertical datum, whereas my point data is with reference to "mean sea level" which I take to mean AUSGeoid2020.

In order to find the difference between the two elevations I need to transform one set of data to the vertical datum of the other; it would probably be easier to transform my point data to EGM96.

I have downloaded the AUSGeoid2020 ASCII file which, I believe, will permit me to transform the point elevations to the Australian Height Datum (AHD). Now I need to convert from AHD to EGM96...

I've transformed geospatial data between horizontal datums before - in R - but I haven't been able to locate any documentation relating to transforming vertical datums.

  • AUSGeoid2020 is only correct if your data is in GDA2020, you most probably want AUSGeoid09 if your data is in GDA94, the transformation grid is available from Geoscience Australia ga.gov.au/ausgeoid geoid height is higher than AHD so find your value and add it to your Z value of your points and you should be there; to do this you can express the AUSGeoid09 as a raster then use overlay to find the Z. – Michael Stimson Jun 27 at 6:48
  • Absolutely fantastic @MichaelStimson! Can you please add this as an answer so I can mark it as answering the question? – Michael Henry Jun 28 at 4:33
1

AUSGeoid2020 is only correct if your data is in GDA2020, which is an emerging standard not fully implemented, you most probably want AUSGeoid09 if your data is in GDA94, the transformation grid is available from Geoscience Australia ga.gov.au/ausgeoid.

Geoid height is higher than AHD so find your value and add it to your Z value of your points and you should be there; to do this you can express the AUSGeoid09 as a raster then use overlay to find the Z.

If you're working in python you could use a tool like Get Cell Value:

import os, sys, arcpy

PointLayer  = sys.argv[1] # Your point layer
RasterLayer = sys.argv[2] # your displacement raster

with arcpy.da.UpdateCursor(PointLayer,['SHAPE@XY','SHAPE@Z']) as UpCur:
    # iterate the rows
    for EachPoint in UpCur:
        # get the value from the raster at the given point as a float
        XY            = '{} {}'.format(EachPoint[0][0],EachPoint[0][1])
        RasterValue   = float(arcpy.GetCellValue_management(RasterLayer,XY).getOutput(0))
        EachPoint[1] += RasterValue # modify the Z by the raster value
        UpCur.updateRow(EachPoint)  # commit changes 

Which doesn't require a Spatial Analyst or 3d Analyst license; if you have 3d Analyst you can use a tool like Add Surface Information to sample the raster for each point.

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.