Open Sustainable Technology

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

Browse accepted projects | Review proposed projects | Propose new project | Open Issues

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

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

Last synced: about 10 hours ago
JSON representation

Repository metadata

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

README

        

[![Stable](https://img.shields.io/badge/docs-stable-blue.svg)](https://evetion.github.io/SpaceLiDAR.jl/stable)
[![Dev](https://img.shields.io/badge/docs-dev-blue.svg)](https://evetion.github.io/SpaceLiDAR.jl/dev)
[![CI](https://github.com/evetion/SpaceLiDAR.jl/actions/workflows/CI.yml/badge.svg)](https://github.com/evetion/SpaceLiDAR.jl/actions/workflows/CI.yml)
[![codecov](https://codecov.io/gh/evetion/SpaceLiDAR.jl/branch/master/graph/badge.svg?token=nztwnGtIcY)](https://codecov.io/gh/evetion/SpaceLiDAR.jl)
[![DOI](https://zenodo.org/badge/241095197.svg)](https://zenodo.org/badge/latestdoi/241095197)

# 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](https://nsidc.org/sites/nsidc.org/files/MULTI-GLAH01-V033-V034-UserGuide.pdf) | [ATBD](https://eospso.nasa.gov/sites/default/files/atbd/ATBD-GLAS-02.pdf) |
|ICESat| GLAH14 v34 | [UG](https://nsidc.org/sites/nsidc.org/files/MULTI-GLAH01-V033-V034-UserGuide.pdf) | [ATBD](https://eospso.nasa.gov/sites/default/files/atbd/ATBD-GLAS-02.pdf) |
|ICESat-2| ATL03 v6 | [UG](https://nsidc.org/sites/default/files/documents/user-guide/atl03-v006-userguide.pdf) | [ATBD](https://icesat-2.gsfc.nasa.gov/sites/default/files/page_files/ICESat2_ATL03_ATBD_r006.pdf) |
|ICESat-2| ATL06 v5 | [UG](https://nsidc.org/sites/default/files/documents/user-guide/atl06-v006-userguide.pdf) | [ATBD](https://icesat-2.gsfc.nasa.gov/sites/default/files/page_files/ICESat2_ATL06_ATBD_r006.pdf) |
|ICESat-2| ATL08 v6 | [UG](https://nsidc.org/sites/default/files/documents/user-guide/atl08-v006-userguide.pdf) | [ATBD](https://nsidc.org/sites/default/files/documents/technical-reference/icesat2_atl08_atbd_v006_0.pdf) |
|ICESat-2| ATL12 v5 | [UG](https://nsidc.org/sites/default/files/documents/user-guide/atl12-v006-userguide.pdf) | [ATBD](https://icesat-2.gsfc.nasa.gov/sites/default/files/page_files/ICESat2_ATL12_ATBD_r006.pdf) |
|GEDI| L2A v2 | [UG](https://lpdaac.usgs.gov/documents/998/GEDI02_UserGuide_V21.pdf) | [ATBD](https://lpdaac.usgs.gov/documents/581/GEDI_WF_ATBD_v1.0.pdf) |

For an overview with code examples, see the FOSS4G Pluto notebook [here](https://www.evetion.nl/SpaceLiDAR.jl/dev/tutorial/foss4g_2021.jl.html)

If you use SpaceLiDAR.jl in your research, please consider [citing it](https://zenodo.org/badge/latestdoi/241095197).

# Install
```julia
]add SpaceLiDAR
```

# Usage
Search for data
```julia
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., 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)

# 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
fn = SpaceLiDAR.download!(granule)

# You can also load a granule from disk
granule = granule(fn)

# Or from a folder
local_granules = granules(folder)

# Instantiate search results locally (useful for GEDI location indexing)
local_granules = instantiate(granules, folder)
```

Derive points
```julia
using DataFrames
fn = "GEDI02_A_2019242104318_O04046_01_T02343_02_003_02_V002.h5"
g = SpaceLiDAR.granule(fn)
df = DataFrame(g)
149680×15 DataFrame
Row │ longitude latitude height height_error datetime intensity sensitivity surface quality nmo ⋯
│ Float64 Float64 Float32 Float32 DateTime Float32 Float32 Bool Bool UIn ⋯
────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
1 │ 153.855 -47.2772 -13.3536 0.307976 2019-08-30T10:48:21.047 393.969 -0.0671094 true false ⋯
2 │ 153.855 -47.2769 -11.2522 0.307978 2019-08-30T10:48:21.055 797.26 0.533529 true true
3 │ 153.856 -47.2767 -13.775 0.307981 2019-08-30T10:48:21.063 1010.39 0.695938 true true
4 │ 153.857 -47.2765 -11.729 0.307983 2019-08-30T10:48:21.071 852.614 0.544849 true true
5 │ 153.857 -47.2763 -13.2443 0.307985 2019-08-30T10:48:21.080 980.66 0.620767 true true ⋯
6 │ 153.858 -47.2761 -12.1813 0.307987 2019-08-30T10:48:21.088 937.441 0.620531 true true
7 │ 153.859 -47.2758 -11.9011 0.30799 2019-08-30T10:48:21.096 1235.02 0.73815 true true
8 │ 153.859 -47.2756 -12.3796 0.307992 2019-08-30T10:48:21.104 854.127 0.545655 true true
```

Derive linestrings
```julia
using DataFrames
fn = "ATL03_20181110072251_06520101_003_01.h5"
g = SpaceLiDAR.granule(fn)
tlines = DataFrame(SpaceLiDAR.lines(g, step=10000))
Table with 4 columns and 6 rows:
geom sun_angle track datetime
┌───────────────────────────────────────────────────────────────────────────
1 │ wkbLineString25D geometry 38.3864 gt1l_weak 2018-11-10T07:28:01.688
2 │ wkbLineString25D geometry 38.375 gt1r_strong 2018-11-10T07:28:02.266
3 │ wkbLineString25D geometry 38.2487 gt2l_weak 2018-11-10T07:28:04.474
4 │ wkbLineString25D geometry 38.1424 gt2r_strong 2018-11-10T07:28:07.374
5 │ wkbLineString25D geometry 38.2016 gt3l_weak 2018-11-10T07:28:05.051
6 │ wkbLineString25D geometry 38.1611 gt3r_strong 2018-11-10T07:28:06.344
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: 2 days ago

Total Commits: 138
Total Committers: 7
Avg Commits per committer: 19.714
Development Distribution Score (DDS): 0.341

Commits in past year: 21
Committers in past year: 5
Avg Commits per committer in past year: 4.2
Development Distribution Score (DDS) in past year: 0.619

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

Committer domains:


Issue and Pull Request metadata

Last synced: 1 day ago

Total issues: 32
Total pull requests: 49
Average time to close issues: 4 months
Average time to close pull requests: 14 days
Total issue authors: 5
Total pull request authors: 4
Average comments per issue: 3.28
Average comments per pull request: 2.22
Merged pull request: 36
Bot issues: 0
Bot pull requests: 21

Past year issues: 7
Past year pull requests: 23
Past year average time to close issues: about 1 month
Past year average time to close pull requests: 7 days
Past year issue authors: 3
Past year pull request authors: 4
Past year average comments per issue: 6.43
Past year average comments per pull request: 2.0
Past year merged pull request: 19
Past year bot issues: 0
Past year bot pull requests: 11

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

Top Issue Authors

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

Top Pull Request Authors

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

Top Issue Labels

  • enhancement (1)

Top Pull Request Labels

  • dependencies (8)

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/SpaceLiDAR/nEURf/
  • Licenses: GPL-3.0
  • Latest release: 0.3.0 (published over 1 year ago)
  • Last Synced: 2024-05-10T09:06:56.185Z (1 day ago)
  • Versions: 9
  • 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