Hello! I have a CSV from FlightRadar with the altitudes. The altitude at ground is defined as 0, which I think is mean sea level (MSL). Now I need to convert that to meters on the ellipsoid (which leads to an increased altitude), but for some reason the coordinates at ground level are under the ground in Cesium.
What am I missing here? What do I need to handle as well in order for Cesium to show these coordinates on the ground of the world map? I do all my preprocessing in Python, so if someone has an understanding of what I need to do I can put that in my Python script.
@FastFishy96 The “height” in Cesium for Unreal is “ellipsoidal height.” You can read more about that here. To convert between the two, there’s a few options:
- You can directly sample the height from the tileset using SampleHeightMostDetailed. This will load the highest level-of-detail for the terrain tiles under each point you pass in and obtains the exact height of each point on the terrain. This is suitable for small numbers of points and/or points very close together, but a lot of points or a number of points very far apart might result in an unacceptable delay while it loads all of the tiles needed to perform the sampling operation.
- You can use the EGM96 grid using the
EarthGravitationalModel1996Grid
class. You’ll need to use this with a copy of WW15MGH.DAC
, which you can grab from here. EGM96 is a grid of values describing the difference between the ellipsoidal height and the orthometric height (aka Mean Sea Level) at a given longitude and latitude value. So, for a Longitude, Latitude, Height value of x
, you would place it at Cartographic(x.longitude, x.latitude, egm96Grid.sampleHeight(x) + x.height)
.
I tried the EGM96 grid, but it seems I’m still missing something. When looking at Schiphol Airport for example, I determine the height of the terrain with respect of the ellipsiod. This turns out to be 43.0375 meters. However, when using that in the CSV file, the points are still under de ground for some reason. With around 55 meters they rise above the ground.
Is there something else I’m missing here?