SpaceLiDAR
A Julia toolbox for ICESat, ICESat-2 and GEDI data to quickly search, download, and load filtered point data with relevant attributes from the .h5 granules of each data product.
https://github.com/evetion/SpaceAltimetry.jl
Category: Sustainable Development
Sub Category: Environmental Satellites
Keywords
earth-observation gedi hacktoberfest icesat icesat-2 io julia laser remote-sensing
Keywords from Contributors
cost dtm friction pcraster terrain gdal geo geospatial-data ogr proj
Last synced: about 18 hours ago
JSON representation
Repository metadata
A Julia package for working with ICESat2, ICESat-2 & GEDI data.
- Host: GitHub
- URL: https://github.com/evetion/SpaceAltimetry.jl
- Owner: evetion
- License: gpl-3.0
- Created: 2020-02-17T11:50:45.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2026-08-13T10:33:04.000Z (about 1 month ago)
- Last Synced: 2026-08-14T04:43:17.553Z (about 1 month ago)
- Topics: earth-observation, gedi, hacktoberfest, icesat, icesat-2, io, julia, laser, remote-sensing
- Language: Julia
- Homepage: https://www.evetion.nl/SpaceAltimetry.jl/dev/
- Size: 3.6 MB
- Stars: 25
- Watchers: 3
- Forks: 6
- Open Issues: 10
- Releases: 14
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Citation: CITATION.cff
- Agents: AGENTS.md
README.md
SpaceAltimetry
SpaceAltimetry.jl (previously SpaceLiDAR.jl) searches, downloads, and reads spaceborne lidar altimetry data
from the ICESat, ICESat-2, and GEDI NASA missions. Granules are exposed as lazy
Tables.jl-compatible HDF5 tables, so
you can inspect product data quickly and materialize only when you need to.
| ICESat | ICESat-2 | GEDI |
|---|---|---|
| GLAH06 — Land Ice | ATL03 — Photons | L2A — Ground & Canopy |
| GLAH14 — Land Surface | ATL06 — Land Ice | |
| ATL08 — Vegetation | ||
| ATL12 — Ocean |
Install
import Pkg
Pkg.add("SpaceAltimetry")
Search and download
using Extents
using SpaceAltimetry
vietnam = Extent(X = (102.0, 107.0), Y = (8.0, 12.0))
# Search NASA CMR.
granules = search(:ICESat2, :ATL08; extent = vietnam, version = 7)
# Configure NASA Earthdata credentials once, then download selected granules.
netrc!("username", "password")
download!(granules[1], "data")
# Local files and folders can be opened directly.
g = granule(joinpath("data", granules[1].id))
gs = SpaceAltimetry.granules("data")
Read as a lazy table
using DataFrames
using SpaceAltimetry
g = granule("ATL08_20201121151145_08920913_006_01.h5")
t = table(g)
# Materialize when you need a DataFrame or another Tables.jl sink.
df = DataFrame(t)
table(g) returns an H5Table for single-track products and a
PartitionedH5Table for multi-track products. Both satisfy the Tables.jl
column-access interface and keep the HDF5 file open while lazy; call close(t)
when you are done with a long-lived lazy table.
Select tracks or variables at read time:
t = table(g; tracks = ["gt1l", "gt1r"])
vars = SpaceAltimetry.default_variables(g)
push!(vars, Variable(:slope, "land_segments/terrain/h_te_slope", Float32))
t = table(g; variables = vars)
If you do not know the HDF5 layout, use the interactive explorer:
t = explore(g)
Chain filters and transforms
Operations declare the columns they need from the HDF5 file. When piped from a lazy table, they
stay lazy until the final materializing sink, so SpaceAltimetry can auto-pull all
required HDF5 columns before reading:
using DataFrames
using Extents
using SpaceAltimetry
g = granule("GLAH14_634_1102_001_0071_0_01_0001.H5")
greenland = Extent(X = (-75.0, -10.0), Y = (58.0, 84.0))
df = table(g) |>
InExtent(greenland) |>
ICESat.Quality() |>
ICESat.SaturationCorrect() |>
ICESat.TopexToWGS84() |>
ToEGM2008() |>
DataFrame
More documentation
See the online documentation for
guides on downloads, track selection, custom variables, and product-specific
schemas. If you use SpaceAltimetry.jl in your research, please consider
citing it.
Citation (CITATION.cff)
cff-version: 1.2.0
message: "If you use this software, please cite it using these metadata."
authors:
- affiliation: "Deltares, TU Delft"
family-names: Pronk
given-names: Maarten
orcid: "https://orcid.org/0000-0001-8758-3939"
- affiliation: "NASA Jet Propulsion Laboratory"
family-names: Gardner
given-names: Alex
orcid: "https://orcid.org/0000-0002-8394-8889"
date-released: 2021-07-30
title: "SpaceAltimetry.jl"
version: 0.2.2
url: "https://github.com/evetion/SpaceAltimetry.jl"
doi: 10.5281/zenodo.7213658
Owner metadata
- Name: Maarten Pronk
- Login: evetion
- Email:
- Kind: user
- Description: GeoData Scientist working on elevation modelling @Deltares. External PhD candidate at @TUDelft3d
- Website: https://www.evetion.nl
- Location: Netherlands
- Twitter:
- Company: @Deltares @TUDelft3d
- Icon url: https://avatars.githubusercontent.com/u/8655030?u=589d1dc380bbe6c779a177bfbbc8e85a3fdf687a&v=4
- Repositories: 128
- Last ynced at: 2026-09-16T21:56:34.452Z
- Profile URL: https://github.com/evetion
GitHub Events
Total
- Delete event: 1
- Push event: 1
Last Year
- Delete event: 1
- Push event: 1
Committers metadata
Last synced: 2 days ago
Total Commits: 171
Total Committers: 8
Avg Commits per committer: 21.375
Development Distribution Score (DDS): 0.257
Commits in past year: 23
Committers in past year: 5
Avg Commits per committer in past year: 4.6
Development Distribution Score (DDS) in past year: 0.435
| Name | Commits | |
|---|---|---|
| Maarten Pronk | g****t@e****l | 127 |
| dependabot[bot] | 4****] | 18 |
| Alex Gardner | 3****r | 15 |
| github-actions[bot] | 4****] | 7 |
| Maarten Plonk | 1****e | 1 |
| Anshul Singhvi | a****i@g****m | 1 |
| Ubuntu | u****u@i****l | 1 |
| CompatHelper Julia | c****y@j****g | 1 |
Committer domains:
Issue and Pull Request metadata
Last synced: 2 days ago
Total issues: 2
Total pull requests: 7
Average time to close issues: N/A
Average time to close pull requests: about 5 hours
Total issue authors: 1
Total pull request authors: 3
Average comments per issue: 0.5
Average comments per pull request: 0.0
Merged pull request: 4
Bot issues: 0
Bot pull requests: 3
Past year issues: 2
Past year pull requests: 6
Past year average time to close issues: N/A
Past year average time to close pull requests: about 1 hour
Past year issue authors: 1
Past year pull request authors: 3
Past year average comments per issue: 0.5
Past year average comments per pull request: 0.0
Past year merged pull request: 3
Past year bot issues: 0
Past year bot pull requests: 2
Top Issue Authors
- evetion (2)
Top Pull Request Authors
- evetion (4)
- dependabot[bot] (2)
- github-actions[bot] (1)
Top Issue Labels
Top Pull Request Labels
- github_actions (2)
- dependencies (2)
Dependencies
- actions/checkout v2 composite
- julia-actions/setup-julia latest composite
- actions/cache v1 composite
- actions/checkout v2 composite
- julia-actions/julia-buildpkg v1 composite
- julia-actions/julia-runtest v1 composite
- julia-actions/setup-julia v1 composite
- JuliaRegistries/TagBot v1 composite
- actions/checkout v3 composite
- julia-actions/setup-julia latest composite
- stefanzweifel/git-auto-commit-action v4 composite
- AWSS3 *
- Aria2_jll *
- CategoricalArrays *
- DataAPI *
- DataFrames *
- Dates *
- Downloads *
- Extents *
- FillArrays *
- FoldingTrees *
- GeoFormatTypes *
- GeoInterface *
- HDF5 *
- HTTP *
- JSON3 *
- Printf *
- Proj *
- REPL *
- Random *
- Statistics *
- StyledStrings *
- TableOperations *
- Tables *
- TimeZones *
- Documenter *
- DocumenterMarkdown *
- DocumenterTools *
- JSON *
- SpaceAltimetry *
- julia-actions/setup-julia v3 composite
Score: 5.634789603169249