vegetation-conversion
Vegetation Conversion Python Utilities.
This package provides utilities for converting vegetation indices used in PT-JPL workflows.
Gregory H. Halverson (they/them)
gregory.h.halverson@jpl.nasa.gov
NASA Jet Propulsion Laboratory 329G
Installation
pip install vegetation-conversion
Usage
Import this package as vegetation_conversion:
import vegetation_conversion
1. SAVI_from_NDVI(NDVI)
- Description: Converts NDVI to a SAVI proxy using an empirical linear transformation.
- Scientific basis:
- SAVI was originally developed to reduce soil background influence in sparse vegetation by introducing a soil adjustment factor, $L$, in: $$ SAVI = \frac{(NIR - Red)(1 + L)}{NIR + Red + L} $$
- In workflows where only NDVI is available, PT-JPL implementations commonly use a linear NDVI-to-SAVI approximation to maintain compatibility with downstream canopy/energy-partitioning steps.
- This package preserves the PT-JPL parity mapping: $$ SAVI = 0.45 \cdot NDVI + 0.132 $$
- This mapping is not a universal physical replacement for the original SAVI expression; it is an empirically tuned conversion used for model continuity.
- Parameters:
NDVI: Normalized Difference Vegetation Index asnumpy.ndarrayorrasters.Raster.
- Returns:
- SAVI proxy with same container type (
numpy.ndarrayorrasters.Raster).
- SAVI proxy with same container type (
- Citation: Huete (1988).
2. fAPAR_from_SAVI(SAVI)
- Description: Estimates the fraction of absorbed photosynthetically active radiation (fAPAR) from SAVI.
- Scientific basis:
- fAPAR represents the fraction of incoming PAR absorbed by green vegetation canopy and is a key state variable controlling photosynthesis, transpiration, and coupled land-atmosphere fluxes.
- Empirical remote-sensing studies have shown approximately linear relationships between vegetation indices and canopy radiation absorption metrics over practical operating ranges.
- This package uses the PT-JPL parity relation: $$ fAPAR = 1.3632 \cdot SAVI - 0.048 $$
- Output is physically bounded by clipping to $[0, 1]$, where 0 denotes no absorbed PAR and 1 denotes full absorption.
- Parameters:
SAVI: Soil-Adjusted Vegetation Index asnumpy.ndarrayorrasters.Raster.
- Returns:
fAPARin $[0, 1]$ with same container type (numpy.ndarrayorrasters.Raster).
- Citation: Fisher et al. (2008).
3. fIPAR_from_NDVI(NDVI)
- Description: Estimates the fraction of intercepted photosynthetically active radiation (fIPAR) from NDVI.
- Scientific basis:
- fIPAR characterizes canopy interception of incoming PAR and is frequently used in ecosystem productivity and evapotranspiration partitioning frameworks.
- The PT-JPL-compatible mapping first constrains NDVI to plausible bounds and then applies a linear offset: $$ fIPAR = clip(clip(NDVI, 0, 1) - 0.05, 0, 1) $$
- The inner clipping limits NDVI to standard normalized range; subtracting 0.05 applies an empirical threshold for low-vegetation/background conditions; the outer clipping enforces physical limits for a fraction.
- Parameters:
NDVI: Normalized Difference Vegetation Index asnumpy.ndarrayorrasters.Raster.
- Returns:
fIPARin $[0, 1]$ with same container type (numpy.ndarrayorrasters.Raster).
- Citation: Gower et al. (1999).
References
- Fisher, J. B., et al. (2008). The land surface water and energy budget of the western United States based on MODIS satellite data. Water Resources Research, 44(9), W09422. https://doi.org/10.1029/2007WR006057
- Gower, S. T., Kucharik, C. J., & Norman, J. M. (1999). Direct and indirect estimation of leaf area index, fAPAR, and net primary production of terrestrial ecosystems. Remote Sensing of Environment, 70(1), 29-51. https://doi.org/10.1016/S0034-4257(99)00056-7
- Huete, A. R. (1988). A soil-adjusted vegetation index (SAVI). Remote Sensing of Environment, 25(3), 295-309. https://doi.org/10.1016/0034-4257(88)90106-X
Metadata
Release files for vegetation-conversion 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| vegetation_conversion-1.0.1.tar.gz | 14.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vegetation_conversion-1.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 25.3 kB
Release files / vegetation_conversion-1.0.1.tar.gz
| Download URL | vegetation_conversion-1.0.1.tar.gz |
|---|---|
| Size | 14.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7dd90c5bbff63c8217bf6e1c3bdc5c4d82fde2a0e1a1e73bb01995a67b908140
|
|
BLAKE2b-256 checksum How to use checksums |
8266acab3074265dcc1f7092834520e55e5d6b613d1992e2a86f174f706b4058
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|
Release files / vegetation_conversion-1.0.1-py3-none-any.whl
| Download URL | vegetation_conversion-1.0.1-py3-none-any.whl |
|---|---|
| Size | 10.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
213f96669856f6373934b62aa3b1dd17a06b3fc5e743c93d538fdffb94d1dbb3
|
|
BLAKE2b-256 checksum How to use checksums |
4b0ac969d8bc3b41332e7d04f9e425744b136e595492fcb072b5c4738a9e43e5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|