spectralindices.jl

Access and computation of any spectral index in the Awesome Spectral Indices collection natively in Julia

https://github.com/awesome-spectral-indices/spectralindices.jl

Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.2%) to scientific vocabulary

Keywords

gis landsat modis remote-sensing satellite-imagery sentinel spectral spectral-dataset spectral-index spectral-indices

Keywords from Contributors

neural-sde ode pde
Last synced: 6 months ago · JSON representation ·

Repository

Access and computation of any spectral index in the Awesome Spectral Indices collection natively in Julia

Basic Info
Statistics
  • Stars: 21
  • Watchers: 2
  • Forks: 2
  • Open Issues: 14
  • Releases: 23
Topics
gis landsat modis remote-sensing satellite-imagery sentinel spectral spectral-dataset spectral-index spectral-indices
Created over 3 years ago · Last pushed 7 months ago
Metadata Files
Readme License Citation

README.md

SpectralIndices.jl

| Documentation | Build Status | Julia | Testing | |:-----------------:|:----------------:|:---------:|:-----------:| | docs | CI | Julia Code Style: Blue | Aqua QA JET codecov |

Overview 📖

SpectralIndices.jl is a Julia package for working with spectral indices commonly used in remote sensing and earth observation applications. It provides a convenient way to compute various spectral indices using Julia's high-performance capabilities.

Features 🚀

  • Computation for a wide range of spectral indices
  • Computation support for Float64, Float32 and Float16 at index formula level to support fast computation for ML applications
  • Support for various data types, including but not limited to (see this issue for an updated list and WIP)
    • [x] Arrays
    • [x] DataFrames
    • [x] YAXArrays
  • Flexible parameter input options
  • Compatibility with multiple remote sensing platforms and sensors

Installation 💻

SpectralIndices.jl is registered in the general registry, please install it using the following: julia_repl julia> ] pkg> add SpectralIndices or julia using Pkg Pkg.add("SpectralIndices")

Usage 🛠️

```julia using SpectralIndices using DataFrames

Compute NDVI with direct parameter input

result = compute_index("NDVI", N = 0.643, R = 0.175)

Compute NDVI with direct parameter input and direct NDVI call

result = compute_index(NDVI, N = 0.643, R = 0.175)

Compute multiple indices with array inputs

multiresult = computeindex(["NDVI", "SAVI"], N = fill(0.643, 5), R = fill(0.175, 5), L = fill(0.5, 5))

use Dataframes

df = DataFrame(N = [0.643, 0.560], R = [0.175, 0.225]) resultdfsingle = compute_index("NDVI", df)

Multiple inputs in a dataframe

df = DataFrame(N = [0.643, 0.560], R = [0.175, 0.225], L = [0.5, 0.5]) resultdfmultiple = compute_index(["NDVI", "SAVI"], df) ```

To compute at custom Float precision input the bands at the chosen precision and specify the Float type to the compute_index function ```julia

Compute NDVI with direct parameter input

result = compute_index(Float32, "NDVI", N = Float32(0.643), R = Float32(0.175)) ```

Code Structure

fig1

Contributing 🤝

Contributions to SpectralIndices.jl are welcome! If you would like to contribute, please see our Contribution Guidelines for more information.

License 📜

SpectralIndices.jl is licensed under the MIT License. See LICENSE for more information.

Acknowledgments ✨

This package is inspired by the Spyndex Python library for spectral indices. The logo is AI-generated by dalle3 through ChatGPT and modified by the talented David Montero.

Support 🆘

If you have any questions, issues, or feature requests, please open an issue or contact us via email.

Citation 🔗

If you use SpectralIndices.jl in your research, please consider citing it using the following DOI:

bibtex @article{martinuzzi2024spectral, title = {SpectralIndices.jl: Streamlining spectral indices access and computation for Earth system research}, volume = {XLVIII-4/W12-2024}, ISSN = {2194-9034}, url = {http://dx.doi.org/10.5194/isprs-archives-XLVIII-4-W12-2024-89-2024}, DOI = {10.5194/isprs-archives-xlviii-4-w12-2024-89-2024}, journal = {The International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences}, publisher = {Copernicus GmbH}, author = {Martinuzzi, Francesco and Mahecha, Miguel D. and Montero, David and Alonso, Lazaro and Mora, Karin}, year = {2024}, month = jun, pages = {89–95} } Also consider citing the paper introducing the Awesome Spectral Indices collection:

bibtex @article{montero2023standardized, title={A standardized catalogue of spectral indices to advance the use of remote sensing in Earth system research}, author={Montero, David and Aybar, C{\'e}sar and Mahecha, Miguel D and Martinuzzi, Francesco and S{\"o}chting, Maximilian and Wieneke, Sebastian}, journal={Scientific Data}, volume={10}, number={1}, pages={197}, year={2023}, publisher={Nature Publishing Group UK London} } RSC4Earth

Owner

  • Name: Awesome Spectral Indices
  • Login: awesome-spectral-indices
  • Kind: organization

Awesome Spectral Indices Ecosystem Organization

Citation (CITATION.bib)

@article{martinuzzi2024spectral,
  title = {SpectralIndices.jl: Streamlining spectral indices access and computation for Earth system research},
  volume = {XLVIII-4/W12-2024},
  ISSN = {2194-9034},
  url = {http://dx.doi.org/10.5194/isprs-archives-XLVIII-4-W12-2024-89-2024},
  DOI = {10.5194/isprs-archives-xlviii-4-w12-2024-89-2024},
  journal = {The International Archives of the Photogrammetry,  Remote Sensing and Spatial Information Sciences},
  publisher = {Copernicus GmbH},
  author = {Martinuzzi,  Francesco and Mahecha,  Miguel D. and Montero,  David and Alonso,  Lazaro and Mora,  Karin},
  year = {2024},
  month = jun,
  pages = {89–95}
}

@article{montero2023standardized,
  title={A standardized catalogue of spectral indices to advance the use of remote sensing in Earth system research},
  author={Montero, David and Aybar, C{\'e}sar and Mahecha, Miguel D and Martinuzzi, Francesco and S{\"o}chting, Maximilian and Wieneke, Sebastian},
  journal={Scientific Data},
  volume={10},
  number={1},
  pages={197},
  year={2023},
  publisher={Nature Publishing Group UK London}
}

GitHub Events

Total
  • Create event: 13
  • Commit comment event: 8
  • Release event: 2
  • Issues event: 1
  • Watch event: 3
  • Delete event: 13
  • Issue comment event: 11
  • Push event: 53
  • Pull request review event: 2
  • Pull request review comment event: 2
  • Pull request event: 22
Last Year
  • Create event: 13
  • Commit comment event: 8
  • Release event: 2
  • Issues event: 1
  • Watch event: 3
  • Delete event: 13
  • Issue comment event: 11
  • Push event: 53
  • Pull request review event: 2
  • Pull request review comment event: 2
  • Pull request event: 22

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 179
  • Total Committers: 3
  • Avg Commits per committer: 59.667
  • Development Distribution Score (DDS): 0.056
Past Year
  • Commits: 28
  • Committers: 2
  • Avg Commits per committer: 14.0
  • Development Distribution Score (DDS): 0.036
Top Committers
Name Email Commits
MartinuzziFrancesco m****o@g****m 169
CompatHelper Julia c****y@j****g 7
Lazaro Alonso l****n@g****m 3
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 6
  • Total pull requests: 44
  • Average time to close issues: 5 days
  • Average time to close pull requests: 21 days
  • Total issue authors: 2
  • Total pull request authors: 2
  • Average comments per issue: 4.17
  • Average comments per pull request: 0.61
  • Merged pull requests: 33
  • Bot issues: 0
  • Bot pull requests: 13
Past Year
  • Issues: 0
  • Pull requests: 22
  • Average time to close issues: N/A
  • Average time to close pull requests: 4 days
  • Issue authors: 0
  • Pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 0.73
  • Merged pull requests: 13
  • Bot issues: 0
  • Bot pull requests: 5
Top Authors
Issue Authors
  • MartinuzziFrancesco (12)
  • gdkrmr (1)
  • JuliaTagBot (1)
Pull Request Authors
  • MartinuzziFrancesco (71)
  • github-actions[bot] (18)
  • lazarusA (1)
Top Labels
Issue Labels
Pull Request Labels
formatting (6) automated pr (6) no changelog (6)

Dependencies

.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite
.github/workflows/CI.yml actions
  • actions/cache v1 composite
  • actions/checkout v2 composite
  • codecov/codecov-action v1 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/julia-processcoverage v1 composite
  • julia-actions/julia-runtest v1 composite
  • julia-actions/setup-julia v1 composite
.github/workflows/CompatHelper.yml actions
  • julia-actions/setup-julia v1 composite