CesiumGS / CesiumGS/cesium

Add support for EGM96 / EGM2008 / MSL lookup

Open
#11,786 3 comments 3 reactions 0 assignees View on GitHub
category - architecture / api category - data sources category - terrain and imagery type - enhancement
Dominant language
JavaScript
Stars
15.7k
Forks
3.9k
Avg merge
4d 6h
Merged PRs (30d)
34

Description

### Feature

Preamble:
EGM96 / EGM2008 define a geoid, a grid based on Earth's gravitational model that defines "mean sea level" for the globe. This shape differs from the WGS84 ellipsoid, which is a simplified model used by GPS and other systems.

Many domains use height above MSL to reference the terrain elevation and obstacle heights. The FAA, for example, uses MSL in the CIFP, charts and obstacle databases.

Need:
Built-in class / functions that provides EGM lookups, conversions to Lat/Lon/Height and ECEF, and differences from the WGS84 reference height.

References:
Existing work in [https://github.com/TerriaJS/terriajs/blob/main/lib/Map/Vector/EarthGravityModel1996.js](https://github.com/TerriaJS/terriajs/blob/main/lib/Map/Vector/EarthGravityModel1996.js) can be used for reference.

EGM96 Reference data file: [https://github.com/jleppert/egm96/blob/master/WW15MGH.DAC](https://github.com/jleppert/egm96/blob/master/WW15MGH.DAC)

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the referenced TerriaJS EarthGravityModel1996.js implementation and the WW15MGH.DAC EGM96 reference data. Define the lookup and conversion scope for EGM96, EGM2008, MSL, WGS84 height, and ECEF, then identify the Cesium entry points and tests needed to verify that the built-in support produces correct results.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
computer-graphics
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.