What is the GNSS variable to return orthometric height? I have attempted to implement the guidance given here (All about GPS, GNSS and NTRIP - QField Ecosystem Documentation) and here (Expression variables - QField Ecosystem Documentation).
I have set up my project in CRS EPSG:4326. I have “Antenna Height Compensation” enabled, “Skip altitude correction” enabled, a valid vertical grid shift selected and in use, and a verified NTRIP provider.
It appears that the orthometric height is displayed correctly in the “Altitude xxx.xxx m (grid, ant.)” QField GPS positioning menu, but it appears to be returning the ellipsoidal elevation when I attempt to write the orthometric height to a layer field using the GNSS variable “z(@gnss_coordinate).”
Also, is there a GNSS variable for ellipsoid height and a variable to write the geoid correction value to a layer field?
Hello @nlacour !
Hmm, as per your first link (particularly, on the Positioning variables section) the variable content table mentions two things that I think might be of interest to you:
- The table’s tittle states: “Information for GNSS Z value with Vertical grid shift in use: - Antenna height compensation=False”. So, in order to get the same results exposed by the table, I think you have to try disabling that option.
- Assuming the height compensation is set to false, the table says that
z(geometry) and z(@position_coordinate) will give orthometric height if “Orthometric (vertical grid shift) from device” is used. This to me seems to imply that no conversion from the device output is occurring, so maybe double check that the device outputs the exact values that you need to be registered.
With regards to the geoid correction value, is this data provided in the output of your GNSS receiver? Or is something that you plan to add manually? If the former, maybe you can check with a vertex log layer for example.
Hello @cuprico! Responses below to your inquiries are in bold italics:
- The table’s tittle states: “Information for GNSS Z value with Vertical grid shift in use: - Antenna height compensation=False”. So, in order to get the same results exposed by the table, I think you have to try disabling that option. Vertical grid shift should shift from the ellipsoid elevation provided from the GNSS receiver to the orthometric height of the desired vertical datum using the geoid correction. Either way, the antenna height must be compensated, otherwise the result is the orthometric height at the GNSS antenna rather than at the ground surface.
- Assuming the height compensation is set to false, the table says that
z(geometry) and z(@position_coordinate) will give orthometric height if “Orthometric (vertical grid shift) from device” is used. This to me seems to imply that no conversion from the device output is occurring, so maybe double check that the device outputs the exact values that you need to be registered. I am attempting to use the “Z shift grid value” (i.e., the correction from the vertical grid shift file selected in the positioning settings menu).
With regards to the geoid correction value, is this data provided in the output of your GNSS receiver? No, this is the value from the.tif or .gtx file selected in the positioning settings menu. Or is something that you plan to add manually? Ideally not manually. I only ask because QField is not performing the computation for orthometric height correctly. If I had ellipsoid elevation and geoid correction, I could work around this issue by setting up an attribute field that calculates orthometric height (OrthoH = Ellipsoid Elev - Geoid Correction). If the former, maybe you can check with a vertex log layer for example.