Hi Cesium team,
I am using the Cesium ion Moon 3D Tiles asset in a lunar simulation workflow and found what appears to be a consistent vertical height offset between the rendered Cesium Moon terrain mesh and LOLA / SLDEM2015 DEM heights.
Environment
- CesiumJS: 1.141
- Cesium ion Moon asset id:
2684829 - Moon ellipsoid used in my app:
Cesium.Ellipsoid.MOON - The tileset metadata reports:
"extensionsUsed": ["3DTILES_ellipsoid"],
"3DTILES_ellipsoid": {
"body": "Moon",
"radii": [1737400, 1737400, 1737400]
}
Local reference DEMs
I compared Cesium terrain heights against:
Local LOLA LDEM_1024 JP2 tiles
CRS: GCS_Moon_2000
Reference radius: 1737400 m
Pixel type: int16
Height conversion: height_m = DN * 0.5
USGS / Astropedia Lunar_LRO_LOLAKaguya_DEMmerge_60N60S_512ppd.tif
SLDEM2015 / LOLA-Kaguya merge family
This should be close to the Moon terrain source listed for the mid-latitude Cesium Moon terrain.
The two DEM references agree with each other very closely at my sampled points:
SLDEM2015 - local LDEM_1024:
mean = +3.16 m
median = +0.25 m
std = 28.81 m
So the local DEM reading and lon/lat alignment seem correct.
Test method
For 80 probe frames, I sampled the Cesium Moon terrain in two ways:
Scene.sampleHeightMostDetailed() at the camera subpoint lon/lat.
Center-pixel Scene.pickPosition() from the rendered depth buffer, converted back to Moon cartographic height. Then I also called sampleHeightMostDetailed() at the picked lon/lat.
The two Cesium methods agree with each other:
pickPosition - sampleHeightMostDetailed:
mean = +0.75 m
median = +0.48 m
std = 5.93 m
But both are about +2.5 km higher than LOLA / SLDEM2015:
sampleHeightMostDetailed - local LDEM_1024:
mean = +2515.90 m
median = +2522.68 m
std = 58.18 m
pickPosition - local LDEM_1024:
mean = +2516.65 m
median = +2523.23 m
std = 60.24 m
sampleHeightMostDetailed - SLDEM2015:
mean = +2512.74 m
median = +2516.03 m
std = 52.56 m
A few example points:
lon=1.000000, lat=0.000000
Cesium terrain height = +1827.45 m
local LDEM_1024 = -733.50 m
difference = +2560.95 m
lon=57.620187, lat=7.762019
Cesium terrain height = +1531.16 m
local LDEM_1024 ≈ -984 m
difference ≈ +2515 m
After subtracting the median offset, the residuals are only tens of meters, so this looks like an almost constant vertical datum / asset-processing offset rather than a lon/lat alignment issue.
Question
Is the current Cesium ion Moon 3D Tiles terrain asset expected to be approximately +2.5 km above LOLA / SLDEM2015 heights relative to the 1737400 m Moon reference sphere?
If yes, what vertical datum or height convention is the Moon terrain mesh using?
If no, could this indicate a tiling / vertical offset issue in the current Moon asset version?
I noticed this older thread about Moon terrain altimetry scaling:
My result does not look like a 2x scale error. It looks more like a nearly constant +2.5 km offset. I can provide the CSV / JSON probe records and plots if helpful.
Thanks!
