Source code for openeo_udf.functions.datacube_statistics

# -*- coding: utf-8 -*-
from openeo_udf.api.structured_data import StructuredData
from openeo_udf.api.udf_data import UdfData

__license__ = "Apache License, Version 2.0"
__author__ = "Soeren Gebbert"
__copyright__ = "Copyright 2018, Soeren Gebbert"
__maintainer__ = "Soeren Gebbert"
__email__ = "soerengebbert@googlemail.com"


[docs]def rct_stats(udf_data: UdfData): """Compute univariate statistics for each hypercube Args: udf_data (UdfData): The UDF data object that contains raster and vector tiles Returns: This function will not return anything, the UdfData object "udf_data" must be used to store the resulting data. """ # The dictionary that stores the statistical data stats = {} # Iterate over each raster collection cube and compute statistical values for cube in udf_data.get_datacube_list(): # make sure to cast the values to floats, otherwise they are not serializable stats[cube.id] = dict(sum=float(cube.array.sum()), mean=float(cube.array.mean()), min=float(cube.array.min()), max=float(cube.array.max())) # Create the structured data object sd = StructuredData(description="Statistical data sum, min, max and mean " "for each raster collection cube as dict", data=stats, type="dict") # Remove all collections and set the StructuredData list udf_data.del_datacube_list() udf_data.del_feature_collection_list() udf_data.set_structured_data_list([sd,])