canvod.vod API reference¶
Vegetation optical depth estimation using the tau-omega radiative transfer model.
Package¶
canvod-vod: VOD calculation for GNSS vegetation analysis.
This package provides VOD calculation algorithms based on the Tau-Omega model.
TauOmegaZerothOrder
¶
Bases: VODCalculator
Calculate VOD using the zeroth-order Tau-Omega approximation.
Based on Humphrey, V., & Frankenberg, C. (2022).
get_delta_snr()
¶
Calculate delta SNR = SNR_canopy - SNR_sky.
Returns:
| Type | Description |
|---|---|
DataArray
|
Delta SNR in decibels. |
decibel2linear(delta_snr_db)
¶
Convert decibel values to linear values.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
delta_snr_db
|
DataArray
|
Delta SNR in decibels. |
required |
Returns:
| Type | Description |
|---|---|
DataArray
|
Linear-scale values. |
calculate_vod()
¶
Calculate VOD using the zeroth-order approximation.
Returns a lazy xarray.Dataset when the inputs are dask-backed so that the caller can rechunk and let a single write trigger computation. For in-memory (numpy) inputs the result is computed immediately.
Returns:
| Type | Description |
|---|---|
Dataset
|
Dataset containing VOD and angular coordinates. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If all delta SNR values are NaN. |
VODCalculator
¶
Bases: ABC, BaseModel
Abstract base class for VOD calculation from GNSS store data.
Notes
This is an abstract base class (ABC) and a Pydantic model.
On construction, canopy_ds and sky_ds are aligned with an inner
join on all shared coordinates, so every calculator works only on the
epochs and signals present in both receivers, whoever constructs it.
validate_datasets(v)
classmethod
¶
Validate dataset inputs.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
v
|
Dataset
|
Dataset to validate. |
required |
Returns:
| Type | Description |
|---|---|
Dataset
|
Validated dataset. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If the input is not an xarray Dataset or lacks SNR. |
calculate_vod()
abstractmethod
¶
Calculate VOD and return a dataset with VOD, phi, theta.
Returns:
| Type | Description |
|---|---|
Dataset
|
Dataset containing VOD and angular coordinates. |
from_datasets(canopy_ds, sky_ds)
classmethod
¶
Convenience method to calculate VOD directly from datasets.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
canopy_ds
|
Dataset
|
Canopy receiver dataset. |
required |
sky_ds
|
Dataset
|
Sky/reference receiver dataset. |
required |
Returns:
| Type | Description |
|---|---|
Dataset
|
VOD dataset. |
Calculator¶
VOD calculators based on Tau-Omega model variants.
VODCalculator
¶
Bases: ABC, BaseModel
Abstract base class for VOD calculation from GNSS store data.
Notes
This is an abstract base class (ABC) and a Pydantic model.
On construction, canopy_ds and sky_ds are aligned with an inner
join on all shared coordinates, so every calculator works only on the
epochs and signals present in both receivers, whoever constructs it.
validate_datasets(v)
classmethod
¶
Validate dataset inputs.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
v
|
Dataset
|
Dataset to validate. |
required |
Returns:
| Type | Description |
|---|---|
Dataset
|
Validated dataset. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If the input is not an xarray Dataset or lacks SNR. |
calculate_vod()
abstractmethod
¶
Calculate VOD and return a dataset with VOD, phi, theta.
Returns:
| Type | Description |
|---|---|
Dataset
|
Dataset containing VOD and angular coordinates. |
from_datasets(canopy_ds, sky_ds)
classmethod
¶
Convenience method to calculate VOD directly from datasets.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
canopy_ds
|
Dataset
|
Canopy receiver dataset. |
required |
sky_ds
|
Dataset
|
Sky/reference receiver dataset. |
required |
Returns:
| Type | Description |
|---|---|
Dataset
|
VOD dataset. |
TauOmegaZerothOrder
¶
Bases: VODCalculator
Calculate VOD using the zeroth-order Tau-Omega approximation.
Based on Humphrey, V., & Frankenberg, C. (2022).
get_delta_snr()
¶
Calculate delta SNR = SNR_canopy - SNR_sky.
Returns:
| Type | Description |
|---|---|
DataArray
|
Delta SNR in decibels. |
decibel2linear(delta_snr_db)
¶
Convert decibel values to linear values.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
delta_snr_db
|
DataArray
|
Delta SNR in decibels. |
required |
Returns:
| Type | Description |
|---|---|
DataArray
|
Linear-scale values. |
calculate_vod()
¶
Calculate VOD using the zeroth-order approximation.
Returns a lazy xarray.Dataset when the inputs are dask-backed so that the caller can rechunk and let a single write trigger computation. For in-memory (numpy) inputs the result is computed immediately.
Returns:
| Type | Description |
|---|---|
Dataset
|
Dataset containing VOD and angular coordinates. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If all delta SNR values are NaN. |