Skip to content

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.