smart_geocubes.datasets.tctrend
¶
Predefined accessor for TCTrend data.
Classes:
-
TCTrend–Accessor for TCTrend data.
TCTrend
¶
Bases: GEEAccessor
Accessor for TCTrend data.
Attributes:
-
extent(GeoBox) –The extent of the datacube represented by a GeoBox.
-
chunk_size(int) –The chunk size of the datacube.
-
channels(list) –The channels of the datacube.
-
storage(Storage) –The icechunk storage.
-
repo(Repository) –The icechunk repository.
-
title(str) –The title of the datacube.
-
stopuhr(StopUhr) –The benchmarking timer from the stopuhr library.
-
zgeobox(GeoBox) –The geobox of the zarr array. Should be equal to the extent geobox.
-
created(bool) –True if the datacube already exists in the storage.
Initialize base class for remote accessors.
Warning
In a multiprocessing environment, it is strongly recommended to not set create_icechunk_storage=False.
Parameters:
-
(storage¶Storage) –The icechunk storage of the datacube.
-
(create_icechunk_storage¶bool, default:True) –If an icechunk repository should be created at provided storage if no exists. This should be disabled in a multiprocessing environment. Defaults to True.
Raises:
-
ValueError–If the storage is not an icechunk.Storage.
Methods:
-
adjacent_tiles–Get adjacent tiles from Google Earth Engine.
-
assert_created–Assert that the datacube exists in the storage.
-
create–Create an empty datacube and write it to the store.
-
current_state–Get info about currently stored tiles.
-
download–Download the data for the given region of interest which can be provided either as GeoBox or GeoDataFrame.
-
download_tile–Download a tile from Google Earth Engine.
-
load–Load the data for the given geobox.
-
load_like–Load the data for the given geobox.
-
log_benchmark_summary–Log the benchmark summary.
-
open_xarray–Open the xarray datacube in read-only mode.
-
open_zarr–Open the zarr datacube in read-only mode.
-
post_create–Post create actions. Can be overwritten by the dataset accessor.
-
procedural_download–Download the data for the given geobox.
-
procedural_download_blocking–Download tiles procedurally in blocking mode.
-
procedural_download_threading–Download tiles procedurally in threading mode.
-
visualize_state–Visulize the extend, hence the already downloaded and filled data, of the datacube.
Source code in src/smart_geocubes/accessors/base.py
adjacent_tiles
¶
Get adjacent tiles from Google Earth Engine.
Parameters:
Returns:
-
list[TileWrapper]–list[TileWrapper]: List of adjacent tiles, wrapped in own datastructure for easier processing.
Source code in src/smart_geocubes/accessors/gee.py
assert_created
¶
Assert that the datacube exists in the storage.
Raises:
-
FileNotFoundError–If the datacube does not exist.
Source code in src/smart_geocubes/accessors/base.py
create
¶
Create an empty datacube and write it to the store.
Parameters:
Raises:
-
FileExistsError–If a datacube already exists at location
Source code in src/smart_geocubes/accessors/base.py
current_state
¶
Get info about currently stored tiles.
Returns:
-
GeoDataFrame | None–gpd.GeoDataFrame: Tiles from odc.geo.GeoboxTiles. None if datacube is empty.
Source code in src/smart_geocubes/accessors/gee.py
download
¶
Download the data for the given region of interest which can be provided either as GeoBox or GeoDataFrame.
Parameters:
-
(roi¶GeoBox | GeoDataFrame) –The reference geobox or reference geodataframe to download the data for.
Raises:
-
ValueError–If no adjacent tiles are found. This can happen if the geobox is out of the dataset bounds.
-
ValueError–If no tries are left.
Source code in src/smart_geocubes/accessors/base.py
download_tile
¶
Download a tile from Google Earth Engine.
Parameters:
-
(tile¶TileWrapper) –The tile to download.
Returns:
-
Dataset–xr.Dataset: The downloaded tile data.
Source code in src/smart_geocubes/accessors/gee.py
load
¶
load(
geobox: GeoBox,
buffer: int = 0,
persist: bool = True,
create: bool = False,
concurrency_mode: ConcurrencyModes = "blocking",
) -> xr.Dataset
Load the data for the given geobox.
Parameters:
-
(geobox¶GeoBox) –The reference geobox to load the data for.
-
(buffer¶int, default:0) –The buffer around the projected geobox in pixels. Defaults to 0.
-
(persist¶bool, default:True) –If the data should be persisted in memory. If not, this will return a Dask backed Dataset. Defaults to True.
-
(create¶bool, default:False) –Create a new zarr array at defined storage if it not exists. This is not recommended, because it can have side effects in a multi-process environment. Defaults to False.
-
(concurrency_mode¶ConcurrencyModes, default:'blocking') –The concurrency mode for the download. Defaults to "blocking".
Returns:
-
Dataset–xr.Dataset: The loaded dataset in the same resolution and extent like the geobox.
Source code in src/smart_geocubes/accessors/base.py
load_like
¶
Load the data for the given geobox.
Parameters:
-
(ref¶Dataset | DataArray) –The reference dataarray or dataset to load the data for.
-
(**kwargs¶Unpack[LoadParams], default:{}) –The load parameters (buffer, persist, create, concurrency_mode).
Other Parameters:
-
buffer(int) –The buffer around the projected geobox in pixels. Defaults to 0.
-
persist(bool) –If the data should be persisted in memory. If not, this will return a Dask backed Dataset. Defaults to True.
-
create(bool) –Create a new zarr array at defined storage if it not exists. This is not recommended, because it can have side effects in a multi-process environment. Defaults to False.
-
concurrency_mode(ConcurrencyModes) –The concurrency mode for the download. Defaults to "blocking".
Returns:
-
Dataset–xr.Dataset: The loaded dataset in the same resolution and extent like the geobox.
Source code in src/smart_geocubes/accessors/base.py
log_benchmark_summary
¶
open_xarray
¶
Open the xarray datacube in read-only mode.
Returns:
-
Dataset–xr.Dataset: The xarray datacube.
Source code in src/smart_geocubes/accessors/base.py
open_zarr
¶
Open the zarr datacube in read-only mode.
Returns:
-
Group–zarr.Group: The zarr datacube.
Source code in src/smart_geocubes/accessors/base.py
post_create
¶
procedural_download
¶
Download the data for the given geobox.
Note
The "threading" concurrency mode requires Python 3.13 or higher.
Parameters:
-
(geobox¶GeoBox) –The reference geobox to download the data for.
-
(concurrency_mode¶ConcurrencyModes, default:'blocking') –The concurrency mode for the download. Defaults to "blocking".
Raises:
-
ValueError–If an unknown concurrency mode is provided.
Source code in src/smart_geocubes/accessors/base.py
procedural_download_blocking
¶
Download tiles procedurally in blocking mode.
Warning
This method is meant for single-process use, but can (in theory) be used in a multi-process environment. However, in a multi-process environment it can happen that multiple processes try to write concurrently, which results in a conflict. In such cases, the download will be retried until it succeeds or the number of maximum-tries is reached.
Parameters:
Raises:
-
ValueError–If no adjacent tiles are found. This can happen if the geobox is out of the dataset bounds.
-
ValueError–If no tries are left.
Source code in src/smart_geocubes/accessors/base.py
procedural_download_threading
¶
Download tiles procedurally in threading mode.
Note
This method ensures that only a single download is running at a time. It uses a SetQueue to prevent duplicate downloads. The threading mode requires Python 3.13 or higher.
Parameters:
Raises:
-
ValueError–If no adjacent tiles are found. This can happen if the geobox is out of the dataset bounds.
-
RuntimeError–If the Python version is lower than 3.13.
Source code in src/smart_geocubes/accessors/base.py
visualize_state
¶
Visulize the extend, hence the already downloaded and filled data, of the datacube.
Parameters:
-
(ax¶Axes | None, default:None) –The axes drawn to. If None, will create a new figure and axes.
Returns:
-
Figure | Axes–plt.Figure | plt.Axes: The figure with the visualization if no axes was provided, else the axes.
Raises:
-
ValueError–If the datacube is empty