openeo-python-client icon indicating copy to clipboard operation
openeo-python-client copied to clipboard

Math processes on the top-level / multiple save_results in process

Open m-mohr opened this issue 5 months ago • 4 comments

Hi,

I have Python client code:

import openeo
from openeo.processes import power

connection = openeo.connect("https://earthengine.openeo.org").authenticate_basic("group2", "test123")

aoi = {
  "type": "Polygon",
  "coordinates": [
    [[-7.664532, 38.543869], [-7.689248, 38.141037], [-7.159228, 38.151837], [-7.11289, 38.554609], [-7.664532, 38.543869]]
  ]
}

EPSG = 32629

data = connection.load_collection(
  collection_id = "COPERNICUS/S2_SR_HARMONIZED",
  spatial_extent = aoi,
  temporal_extent = ["2019-06-27T00:00:00Z", "2019-07-04T00:00:00Z"],
  bands = ["B1", "B2", "B3", "B4"]
)

# If we get multiple images (should not happen for the given extent), compute the mean
# Divide by 10000 to convert from DN to reflectance values
data = data.mean_time() / 10000

# Assign the indivdual bands to variables
B1 = data.band("B1")
B2 = data.band("B2")
B3 = data.band("B3")
B4 = data.band("B4")

# Density of cyanobacteria
cyanobacteria = 115530 * power((B3 * B4) / B2, 2.38)
save1 = cyanobacteria.save_result(
  format = "GTIFF",
  options = {
    "name": "cyanobacteria",
    "metadata": {
      "bands": [ { "statistics": { "minimum": 0, "maximum": 100 } } ]
    },
    "epsgCode": EPSG
  }
)

Unfortunately, I get the following error once I run result1 = connection.execute(save1):

Preflight process graph validation raised: [ProcessArgumentInvalid] The argument 'base' in process 'power' (namespace: n/a) is invalid: Schema for result 'reducedimension2' not compatible

Looking at the generated JSON, this is not overly surprising anymore:

grafik

Why does the client put power and multiply on the top-level? It works flawlessly with the divide by 10000 in apply.

m-mohr avatar Aug 28 '24 09:08 m-mohr