-
Notifications
You must be signed in to change notification settings - Fork 41
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Defining predecessor node of a process #107
Comments
I'm not sure I understand the issue here, because what you describe is already the approach in the python client.
If you use the methods on ImageCollectionClient (e.g. filter_bbox, band, ndvi, ...), you create new python objects each time (process graphs might be partially shared, but that is an implementation detail) and each ImageCollectionClient object has an individual property
at this point you still can build different process "paths" from the |
So yes this is possible, but the issue is that it is not possible to use one node as the input of two nodes in the same process graph, so e.g.:
Should result in a process graph similiar like:
At the moment the EVI in the phenology example is created with a new process graph and a reducer (using the band() method), which at the moment fails on GEE. Complete NDVI example for GEE, which can not be reconstructed with the Python client atm:
|
ok, I understand better now. |
closing this ticket (for now) |
…Open-EO#117 Open-EO#125) - break down `accept` in ProcessGraphVisitor in smaller part to allow finegrained overloading - avoid in-place editing in GraphFlattener - fix issue Open-EO#107: unnecessary duplicated nodes - fix handling of aggregate_spatial and apply along the way
…Open-EO#117 Open-EO#125) - break down `accept` in ProcessGraphVisitor in smaller part to allow finegrained overloading - avoid in-place editing in GraphFlattener - fix issue Open-EO#107: unnecessary duplicated nodes - fix handling of aggregate_spatial and apply along the way
#126 was merged, issue is fixed in the new 1.0 API style DataCube e.g. see unit test openeo-python-client/tests/rest/datacube/test_bandmath.py Lines 133 to 143 in dab3000
|
This came up when I tried to make the examples work again for GEE:
Currently, when a process is added to the Imagecollection/datacube it automatically sets the last node as input for the new process, which is kind of intuitive. The problem is that there are process graphs that can not be created by this:
e.g. The NDVI example process graph from the GEE web editor:
I know that in this particular example there is the Imagecollection.band method, but there might be use cases where there is no predefined function to solve that. (and with this band method I could not make it run on GEE)
Just an idea:
datacube = con.imagecollection("COPERNICUS/S2")
datacube = datacube.filter_bbox(...)
datacube_filter = datacube.filter_daterange(...)
datacube_red = datacube_filter.filter_bands("B4")
datacube_nir = datacube_filter.filter_bands("B8A")
datacube_ndvi = datacube_filter.normalized_difference(datacube_red, datacube_nir)
The last call merges the process graphs of datacube_red and datacube_nir so that there are no duplicate nodes in the process graph of datacube_ndvi. I am also not sure how to make that in a transparent way for the users, so this is open for discussion.
The text was updated successfully, but these errors were encountered: