Cesium or SLPK: incorrect vertical model position

Issue:

  • The model is shifted - either flying above ground or being below the globe surface resp. the ArcGIS' WorldElevation3D/ Terrain3D Layer

Common reason:

  • The input data uses a separate vertical coordinate system other than ellipsoid-based heights referring to the horizontal datum (ellipsoid) definition.

Background:

  • SURE only supports the definition of projections or geographic coordinate systems without the specification of a separate vertical datum. If the vertical reference is specified by the user as part of a compound coordinate system definition, SURE will provide an error message and prevent processing.
  • SURE assumes the input data to be defined in ellipsoidal heights matching the reference of the horizontal datum definition.
  • In case the input data's coordinate system uses orthometric heights, the conversion into SLPK or Cesium will typically lead to a shift of about 40 - 60 meters. Keep in mind, that the range of the shift varies depending on the dataset resp. it's location on earth.
    • The SLPK format provided by SURE will reference per default a geographic coordinate system with gravity-related (orthometric) heights based on the EGM96 geoid to assure compatibility with e.g. ArcGIS online.
    • The Cesium format provided by SURE will reference per default a geographic coordinate system with ellipsoid-related heights based on the WGS84 ECEF ellipsoid

Solution:

  • When running the SURE executable please export to .osgb only and later use the Mesh Converter to convert to Cesium or SLPK 
  • The Mesh Converter GUI allows the specification of a vertical shift, which is used to compensate the (vertical) difference between the involved geoid and ellipsoid of the input data.
  • When running the MeshConverter module as well as the Mesh texturing module, use the --cs_vertical_shift flag to specify the offset between the ellipsoidal height and your vertical coordinate system
  • When creating Cesium output via the MeshConverter module, optionally use the flag  --cesium_over_impose_heights_on_target_ellipsoid (usage see Mesh Converter)