Products

The vibe_core.data.products module provides a set of classes designed to handle data from remote sensing products, including product metadata and raster data such as Digital Elevation Maps (DEM), National Agricultural Imagery Program (NAIP), Landsat, Sentinel, and more.

Hierarchy

classDiagram class BaseVibe { } class DataVibe { } class AlosProduct { } class BingMapsProduct { } class CDLProduct { } class ChirpsProduct { } class ClimatologyLabProduct { } class DemProduct { } class Era5Product { } class EsriLandUseLandCoverProduct { } class GEDIProduct { } class GLADProduct { } class GNATSGOProduct { } class HansenProduct { } class HerbieProduct { } class LandsatProduct { } class ModisProduct { } class NaipProduct { } DataVibe --|> BaseVibe AlosProduct --|> DataVibe BingMapsProduct --|> DataVibe CDLProduct --|> DataVibe ChirpsProduct --|> DataVibe ClimatologyLabProduct --|> DataVibe DemProduct --|> DataVibe Era5Product --|> DataVibe EsriLandUseLandCoverProduct --|> DataVibe GEDIProduct --|> DataVibe GLADProduct --|> DataVibe GNATSGOProduct --|> DataVibe HansenProduct --|> DataVibe HerbieProduct --|> DataVibe LandsatProduct --|> DataVibe ModisProduct --|> DataVibe NaipProduct --|> DataVibe

Documentation

Data type and functions definitions related to the products supported in FarmVibes.AI.

class vibe_core.data.products.AlosProduct(id, time_range, geometry, assets)

Bases: DataVibe

Represent metadata information about an Advanced Land Observing Satellite (ALOS) product.

class vibe_core.data.products.BingMapsProduct(id, time_range, geometry, assets, url, zoom_level, imagery_set, map_layer, orientation)

Bases: DataVibe

Represent metadata of a BingMaps product.

imagery_set: str

The imagery set of the product.

map_layer: str

The map layer of the product.

orientation: float

The orientation of the product.

url: str

The download URL of the product.

zoom_level: int

The zoom level of the product.

class vibe_core.data.products.CDLProduct(id, time_range, geometry, assets)

Bases: DataVibe

Represent metadata information about a Crop Data Layer (CDL) product.

class vibe_core.data.products.ChirpsProduct(id, time_range, geometry, assets, url)

Bases: DataVibe

Represent a CHIRPS product.

It contains metadata information about a Climate Hazards Group InfraRed Precipitation with Station data (CHIRPS) product.

url: str

The URL of the CHIRPS product.

class vibe_core.data.products.ClimatologyLabProduct(id, time_range, geometry, assets, url, variable)

Bases: DataVibe

Represent metadata information about a Climatology Lab product.

url: str

The URL of the Climatology Lab product.

variable: str

The variable of the Climatology Lab product.

class vibe_core.data.products.DemProduct(id, time_range, geometry, assets, tile_id, resolution, provider)

Bases: DataVibe

Represent metadata information about a Digital Elevation Map (DEM) tile.

The DemProduct type is the expected output of a list-like operator and the expected input type of a download-like operator.

provider: str

The provider of the DEM tile.

resolution: int

The resolution of the DEM tile.

tile_id: str

The tile ID of the DEM tile.

class vibe_core.data.products.Era5Product(id, time_range, geometry, assets, item_id, var, cds_request=<factory>)

Bases: DataVibe

Represent metadata information about an ERA5 product.

cds_request: Dict[str, Dict[str, str]]

A dictionary with the CDS request parameters.

item_id: str

The item ID of the ERA5 product.

var: str

The variable of the ERA5 product.

class vibe_core.data.products.EsriLandUseLandCoverProduct(id, time_range, geometry, assets)

Bases: DataVibe

Represent metadata information about Esri LandUse/LandCover (9-class) dataset.

class vibe_core.data.products.GEDIProduct(id, time_range, geometry, assets, product_name, start_orbit, stop_orbit, processing_level)

Bases: DataVibe

Represent a GEDI product.

It contains metadata information about a Global Ecosystem Dynamics Investigation (GEDI) product.

processing_level: str

The processing level of the GEDI product.

product_name: str

The name of the GEDI product.

start_orbit: int

The start orbit of the GEDI product.

stop_orbit: int

The stop orbit of the GEDI product.

class vibe_core.data.products.GLADProduct(id, time_range, geometry, assets, url)

Bases: DataVibe

Represent metadata information about a Global Land Analysis (GLAD) product.

property tile_name: str

The tile name of the GLAD product.

url: str

The URL of the GLAD product.

class vibe_core.data.products.GNATSGOProduct(id, time_range, geometry, assets)

Bases: DataVibe

Represent a gNATSGO product.

It contains metadata information about a Gridded National Soil Survey Geographic Database (gNATSGO) product.

class vibe_core.data.products.HansenProduct(id, time_range, geometry, assets, asset_url=<factory>)

Bases: DataVibe

Represent metadata information about a Hansen product.

static extract_hansen_url_property(asset_url, regular_expression, property_name)

Extract the property from the base URL and the tile name.

Parameters:
  • asset_url (str) – The URL of the Hansen product.

  • regular_expression (str) – The regular expression pattern to extract the property.

  • property_name (str) – The name of the property to extract.

Returns:

The extracted property.

Return type:

str

static extract_last_year(asset_url)

Extract the last year from the base URL and the tile name.

Parameters:

asset_url (str) – The URL of the Hansen product.

Returns:

The last year.

Return type:

int

static extract_layer_name(asset_url)

Extract the layer name from the base URL and the tile name.

Parameters:

asset_url (str) – The URL of the Hansen product.

Returns:

The layer name.

Return type:

str

static extract_tile_name(asset_url)

Extract the tile name from the base URL and the tile name.

Parameters:

asset_url (str) – The URL of the Hansen product.

Returns:

The tile name.

Return type:

str

static extract_version(asset_url)

Extract the version from the base URL and the tile name.

Parameters:

asset_url (str) – The URL of the Hansen product.

Returns:

The version.

Return type:

str

validate_url()

Validate the Hansen product URL.

Returns:

bool – True if the URL is valid, False otherwise.

asset_keys = ['treecover2000', 'gain', 'lossyear', 'datamask', 'first', 'last']

The asset keys (dataset layers) for the Hansen products.

asset_url: str

The URL of the Hansen product.

property last_year: int

The last year of the Hansen product.

property layer_name: str

The layer name of the Hansen product.

property tile_name: str

The tile name of the Hansen product.

property version: str

The version of the Hansen product.

class vibe_core.data.products.HerbieProduct(id, time_range, geometry, assets, model, product, lead_time_hours, search_text)

Bases: DataVibe

Represent metadata for a Herbie product.

Note

For more information on Herbie, see the documentation at

https://herbie.readthedocs.io/en/latest/index.html.

lead_time_hours: int

Lead time in hours.

model: str

Model name, e.g., ‘hrrr’, ‘hrrrak’, ‘rap’, ‘gfs’, ‘gfs_wave’, ‘rrfs’.

product: str

‘sfc’ (surface fields), ‘prs’ (pressure fields), ‘nat’ (native fields), ‘subh’ (subhourly fields).

Type:

Product file type

search_text: str

Regular expression used to search on GRIB2 Index files.

class vibe_core.data.products.LandsatProduct(id, time_range, geometry, assets, tile_id='', asset_map=<factory>)

Bases: DataVibe

Represent metadata information about a Landsat tile.

add_downloaded_band(band_name, asset_path)

Add a downloaded band to the asset map.

Parameters:
  • band_name (str) – The name of the band.

  • asset_path (str) – The path to the downloaded asset.

get_downloaded_band(band_name)

Retrieve the downloaded band with the given name from the asset map.

Parameters:

band_name (str) – The name of the band to retrieve.

Returns:

The downloaded band with the given name.

Raises:

ValueError – If the band with the given name is not found or downloaded.

Return type:

AssetVibe

asset_map: Dict[str, str]

A dictionary mapping band names to asset IDs.

tile_id: str = ''

The tile ID of the Landsat tile.

class vibe_core.data.products.ModisProduct(id, time_range, geometry, assets, resolution)

Bases: DataVibe

Represent a MODIS product.

It contains metadata information about a Moderate Resolution Imaging Spectroradiometer (MODIS) product.

resolution: int

The resolution of the MODIS product.

class vibe_core.data.products.NaipProduct(id, time_range, geometry, assets, tile_id, year, resolution)

Bases: DataVibe

Represent metadata information about a National Agricultural Imagery Program (NAIP) tile.

The NaipProduct type is the expected output of a list-like operator and the type of a download-like operator.

resolution: float

The resolution of the NAIP tile.

tile_id: str

The tile ID of the NAIP tile.

year: int

The year of the NAIP tile.

vibe_core.data.products.CDL_DOWNLOAD_URL

The base URL for downloading CropDataLayer data.