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.

README.md

Stable
Dev
CI
codecov
DOI
Aqua QA

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


GitHub Events

Total
Last Year

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 Email 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

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/evetion/SpaceAltimetry.jl

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

.github/workflows/docs.yml actions
  • actions/checkout v2 composite
  • julia-actions/setup-julia latest composite
.github/workflows/CI.yml actions
  • 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
.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite
.github/workflows/doc_versions.yml actions
  • actions/checkout v3 composite
  • julia-actions/setup-julia latest composite
  • stefanzweifel/git-auto-commit-action v4 composite
docs/versions.json meteor
Project.toml julia
  • 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 *
docs/Project.toml julia
  • Documenter *
  • DocumenterMarkdown *
  • DocumenterTools *
  • JSON *
  • SpaceAltimetry *
.github/workflows/CompatHelper.yml actions
  • julia-actions/setup-julia v3 composite

Score: 5.634789603169249