A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

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/spacelidar.jl

Category: Sustainable Development
Sub Category: Environmental Satellites

Keywords

earth-observation gedi hacktoberfest icesat icesat-2 io julia laser remote-sensing

Keywords from Contributors

transforms control compose measur symbolic-computation ode optimize parallel units crops

Last synced: about 17 hours ago
JSON representation

Repository metadata

A Julia package for working with ICESat-2 & GEDI data as part of my PhD research

README.md

Stable
Dev
CI
codecov
DOI

SpaceLiDAR

A Julia toolbox for ICESat, ICESat-2 and GEDI data. Quickly search, download, and load filtered point data with relevant attributes from the .h5 granules of each data product.

Currently supports the following data products:

mission data product User Guide (UG) Algorithm Theoretical Basis Document (ATBD)
ICESat GLAH06 v34 UG ATBD
ICESat GLAH14 v34 UG ATBD
ICESat-2 ATL03 v6 UG ATBD
ICESat-2 ATL06 v5 UG ATBD
ICESat-2 ATL08 v6 UG ATBD
ICESat-2 ATL12 v5 UG ATBD
GEDI L2A v2 UG ATBD

For an overview with code examples, see the FOSS4G Pluto notebook here

If you use SpaceLiDAR.jl in your research, please consider citing it.

Install

]add SpaceLiDAR

Usage

Search for data

using SpaceLiDAR
using Extents
# Find all ATL08 granules ever
granules = search(:ICESat2, :ATL08)

# Find only ATL03 granules in a part of Vietnam
vietnam = Extent(X=(102.0, 107.0), Y=(8.0, 12.0))
granules = search(:ICESat2, :ATL08; extent=vietnam, version=6)

# Find GEDI granules in the same way
granules = search(:GEDI, :GEDI02_A; extent=vietnam)

# A granule is pretty simple
granule = granules[1]
granule.id  # filename
granule.url  # download url
granule.info  # derived information from id

# Downloading granules requires a setup .netrc with an NASA EarthData account
# we provide a helper function, that creates/updates a ~/.netrc or ~/_netrc
SpaceLiDAR.netrc!(username, password)  # replace with your credentials

# Afterward you can download the dataset.
# Note: download! updated granule url to local path
granule = SpaceLiDAR.download!(granule)

# You can also load a granule from disk
path2file = granule.url
granule = SpaceLiDAR.granule(path2file)

# Or from a folder
(folder, fn) = splitdir(path2file)
local_granules = SpaceLiDAR.granules(folder)

Derive points

using DataFrames
fn = "GEDI02_A_2019242104318_O04046_01_T02343_02_003_02_V002.h5"
granule = SpaceLiDAR.granule(fn)

df = DataFrame(granule)
760156×15 DataFrame
    Row │ longitude  latitude   height   height_error  datetime                 intensity   sensitivity  surface  quality  nmodes  track     strong_beam  classification  sun_angle  height_reference 
        │ Float64    Float64    Float32  Float32       DateTime                 Float32     Float32      Bool     Bool     UInt8   String    Bool         String          Float32    Float32          
────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
      1 │   26.6923  51.823     169.045      0.313182  2019-04-18T10:22:23.996   -857.388      1.38006      true    false       1  BEAM0000        false  ground           49.0315            169.752
      2 │   26.7006  51.823     165.783      0.31319   2019-04-18T10:22:24.078    853.56       0.694586     true    false       1  BEAM0000        false  ground           49.0312            167.354
      3 │   26.7023  51.823     162.871      0.313192  2019-04-18T10:22:24.095    110.071     -0.480232     true    false       1  BEAM0000        false  ground           49.0311            164.785
   ⋮    │     ⋮          ⋮         ⋮          ⋮                   ⋮                 ⋮            ⋮          ⋮        ⋮       ⋮        ⋮           ⋮             ⋮             ⋮             ⋮
 760155 │  110.661   -0.194184  171.157      0.258848  2019-04-18T10:45:33.900   7702.96       0.945006     true     true       2  BEAM1011         true  ground           -1.94442           176.333
 760156 │  110.662   -0.195451  167.176      0.258852  2019-04-18T10:45:33.925   9595.64       0.981322     true     true       2  BEAM1011         true  ground           -1.94564           173.691

Derive linestrings

using DataFrames
fn = "GEDI02_A_2019108093620_O01965_03_T05338_02_003_01_V002.h5"
granule = SpaceLiDAR.granule(fn)
tlines = DataFrame.(SpaceLiDAR.lines(granule; step=10000))

SpaceLiDAR.GDF.write("lines.gpkg", tlines)

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: "SpaceLiDAR.jl"
version: 0.2.2
url: "https://github.com/evetion/SpaceLiDAR.jl"
doi: 10.5281/zenodo.7213658

Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 6 days ago

Total Commits: 144
Total Committers: 6
Avg Commits per committer: 24.0
Development Distribution Score (DDS): 0.222

Commits in past year: 13
Committers in past year: 3
Avg Commits per committer in past year: 4.333
Development Distribution Score (DDS) in past year: 0.462

Name Email Commits
Maarten Pronk g****t@e****l 112
Alex Gardner 3****r 15
dependabot[bot] 4****] 9
github-actions[bot] 4****] 6
Ubuntu u****u@i****l 1
CompatHelper Julia c****y@j****g 1

Committer domains:


Issue and Pull Request metadata

Last synced: 1 day ago

Total issues: 34
Total pull requests: 53
Average time to close issues: 4 months
Average time to close pull requests: 21 days
Total issue authors: 5
Total pull request authors: 4
Average comments per issue: 3.26
Average comments per pull request: 2.15
Merged pull request: 42
Bot issues: 0
Bot pull requests: 22

Past year issues: 2
Past year pull requests: 4
Past year average time to close issues: 2 months
Past year average time to close pull requests: 16 days
Past year issue authors: 1
Past year pull request authors: 2
Past year average comments per issue: 1.5
Past year average comments per pull request: 0.5
Past year merged pull request: 4
Past year bot issues: 0
Past year bot pull requests: 1

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

Top Issue Authors

  • alex-s-gardner (21)
  • evetion (10)
  • jzphlp (1)
  • hugoledoux (1)
  • JuliaTagBot (1)

Top Pull Request Authors

  • evetion (20)
  • github-actions[bot] (13)
  • alex-s-gardner (11)
  • dependabot[bot] (9)

Top Issue Labels

  • enhancement (1)

Top Pull Request Labels

  • dependencies (9)

Package metadata

juliahub.com: SpaceLiDAR

A Julia package for working with ICESat-2 & GEDI data as part of my PhD research

  • Homepage: https://www.evetion.nl/SpaceLiDAR.jl/dev/
  • Documentation: https://docs.juliahub.com/General/SpaceLiDAR/stable/
  • Licenses: GPL-3.0
  • Latest release: 0.4.0 (published 5 months ago)
  • Last Synced: 2025-03-24T12:17:52.069Z (about 1 month ago)
  • Versions: 10
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent repos count: 9.94%
    • Stargazers count: 24.964%
    • Average: 26.778%
    • Forks count: 33.293%
    • Dependent packages count: 38.915%

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

Score: -Infinity