DISCLAIMER: THE TEXT ON THIS PAGE IS LIKELY LARGELY INCORRECT AND IS JUST A PLACEHOLDER GENERATED BY CLAUDE. THIS STATEMENT WILL BE REMOVED WHEN THIS PAGE HAS BEEN EDITED FOR ACCURACY.
Low-lying coastal zones — those below 2 m above mean sea level — are home to hundreds of millions of people and represent some of the world’s most economically and ecologically critical areas. Yet these regions are among the most difficult to map accurately from space, because radar and optical sensors struggle with low topographic relief.
This project uses ICESat-2’s photon-counting LiDAR to generate high-accuracy elevation profiles over coastal areas worldwide, and fuses these with existing DEMs (TanDEM-X, Copernicus) to produce corrected, bias-reduced elevation products.
The map below shows ICESat-2 track coverage and validation sites used in this study.
ICESat-2 ground tracks (colored by acquisition date) overlaid on a Copernicus DEM hillshade. Red markers indicate field validation sites.
ICESat-2’s ATL03 product provides geolocated photon clouds with associated confidence flags. We apply a multi-step filtering pipeline:
import h5py
import numpy as np
import geopandas as gpd
def filter_icesat2_photons(atl03_file, conf_threshold=3):
"""
Filter ICESat-2 ATL03 photons by confidence and signal quality.
Parameters
----------
atl03_file : str
Path to ATL03 HDF5 file
conf_threshold : int
Minimum photon confidence (0-4)
Returns
-------
GeoDataFrame with filtered ground photons
"""
with h5py.File(atl03_file, 'r') as f:
beams = ['gt1l', 'gt1r', 'gt2l', 'gt2r', 'gt3l', 'gt3r']
all_photons = []
for beam in beams:
try:
lon = f[f'{beam}/heights/lon_ph'][:]
lat = f[f'{beam}/heights/lat_ph'][:]
h = f[f'{beam}/heights/h_ph'][:]
conf = f[f'{beam}/heights/signal_conf_ph'][:, 0]
mask = conf >= conf_threshold
all_photons.append({
'lon': lon[mask], 'lat': lat[mask],
'h': h[mask], 'beam': beam
})
except KeyError:
continue
return all_photons
We co-register ICESat-2 ground photons to the reference DEM using a robust iterative closest point (ICP) approach, correcting for:
Validation against independent airborne LiDAR (NOAA CoastalDEM, USGS 3DEP) shows:
| Region | RMSE (m) | Bias (m) | n points |
|---|---|---|---|
| U.S. Gulf Coast | 0.18 | 0.03 | 124,000 |
| Bangladesh | 0.31 | -0.07 | 89,000 |
| Netherlands | 0.14 | 0.01 | 203,000 |
| Vietnam Mekong | 0.27 | 0.09 | 67,000 |
All processed elevation profiles and validation datasets are available on GitHub and archived on Zenodo.