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

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

Bases: DataVibe

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

assets: List[AssetVibe]

A list of AssetVibe objects of the assets associated with the data object.

bbox: Tuple[float, float, float, float]

A BBox representing the bounding box of the data object. This field is calculated from the geometry property using the shapely.geometry library.

geometry: Dict[str, Any]

A dictionary representing the geometry of the data object.

id: str

A string representing the unique identifier of the data object.

time_range: Tuple[datetime, datetime]

A TimeRange representing the timestamps of to the beginning and end of sample.

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

Bases: DataVibe

Represents 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

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

assets: List[AssetVibe]

A list of AssetVibe objects of the assets associated with the data object.

bbox: Tuple[float, float, float, float]

A BBox representing the bounding box of the data object. This field is calculated from the geometry property using the shapely.geometry library.

geometry: Dict[str, Any]

A dictionary representing the geometry of the data object.

id: str

A string representing the unique identifier of the data object.

time_range: Tuple[datetime, datetime]

A TimeRange representing the timestamps of to the beginning and end of sample.

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

Bases: DataVibe

Represents 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

Represents 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

Represents 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

Represents metadata information about an ERA5 product.

Variables:
  • item_id – The item ID of the ERA5 product.

  • var – The variable of the ERA5 product.

  • cds_request – A dictionary with the CDS request parameters.

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

Bases: DataVibe

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

assets: List[AssetVibe]

A list of AssetVibe objects of the assets associated with the data object.

bbox: Tuple[float, float, float, float]

A BBox representing the bounding box of the data object. This field is calculated from the geometry property using the shapely.geometry library.

geometry: Dict[str, Any]

A dictionary representing the geometry of the data object.

id: str

A string representing the unique identifier of the data object.

time_range: Tuple[datetime, datetime]

A TimeRange representing the timestamps of to the beginning and end of sample.

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

Bases: DataVibe

Represents 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

Represents 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

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

assets: List[AssetVibe]

A list of AssetVibe objects of the assets associated with the data object.

bbox: Tuple[float, float, float, float]

A BBox representing the bounding box of the data object. This field is calculated from the geometry property using the shapely.geometry library.

geometry: Dict[str, Any]

A dictionary representing the geometry of the data object.

id: str

A string representing the unique identifier of the data object.

time_range: Tuple[datetime, datetime]

A TimeRange representing the timestamps of to the beginning and end of sample.

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

Bases: DataVibe

Represents metadata information about a Hansen product.

static extract_hansen_url_property(asset_url, regular_expression, property_name)

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

Return type:

str

static extract_last_year(asset_url)

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

Return type:

int

static extract_layer_name(asset_url)

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

Return type:

str

static extract_tile_name(asset_url)

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

Return type:

str

static extract_version(asset_url)

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

Return type:

str

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

Stands for Herbie products metadata 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

product file type: ‘sfc’ (surface fields), ‘prs’ (pressure fields), ‘nat’ (native fields), ‘subh’ (subhourly fields)

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

Represents metadata information about a Landsat tile.

add_downloaded_band(band_name, asset_path)

Adds 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)

Retrieves 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.

Return type:

AssetVibe

Raises:

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

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

Represents 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

Represents 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.