Skip to content
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

Simplify the ImageCollection class hierarchy #100

Closed
soxofaan opened this issue Nov 21, 2019 · 1 comment
Closed

Simplify the ImageCollection class hierarchy #100

soxofaan opened this issue Nov 21, 2019 · 1 comment
Labels

Comments

@soxofaan
Copy link
Member

We currently have a class hierarchy across openeo-python-client and openeo-geopyspark-driver:

  • base class ImageCollection in openeo-python-client with child classes
    • ImageCollectionClient in openeo-python-client
    • GeotrellisTimeSeriesImageCollection in openeo-geopyspark-driver
    • GeotrellisCatalogImageCollection in openeo-geopyspark-driver, but deprecated and unused as far as I know

This hierarchy and relationship makes sense as these classes represent the same entity (data cubes), but from different view points: client side and backend-side.

However, these client and backend contexts are also quite different and the sharing of an abstract interface shouldn't be taken too far IMHO. Some examples and notes:

  • the download method makes sense for the client, but is not very intuitive as verb at the backend side. Also the kind of arguments you expect to pass from client vs backend can be different.
  • there is a lot of duplication of function arguments, type hinting, documentation, which is tedious to maintain. The have been already quite some changes to process definitions that resulted in somewhat ugly refactors in both projects (e.g. Confusing daterange and bbox filter methods on ImageCollection classes #67 )
  • the client should work against all backends, while openeo-geopyspark-driver is very backend specific in practice (only VITO at the moment). This not ideal maintenance-wise. E.g. we might want to automate the availability of client methods for each officially defined process in some way (also see e.g. Client Guidelines vs ImagecollectionClient vs both #61, Dynamic Process function generation #40), for wide backend support, but this should be separate from the VITO backend.

I propose to simplify/reduce the shared API of the ImageCollectionClient base class a bit

soxofaan added a commit that referenced this issue Nov 21, 2019
and remove `download` from `ImageCollection` base class.
Also drop pre-0.4 support from download (issue #72)
soxofaan added a commit that referenced this issue Nov 21, 2019
…ethods from ImageCollection base class
soxofaan added a commit to Open-EO/openeo-geopyspark-driver that referenced this issue Oct 6, 2020
soxofaan added a commit to Open-EO/openeo-python-driver that referenced this issue Oct 6, 2020
preparation for larger process graph processing refactor
preparation for Open-EO/openeo-python-client#100 (splitting client and driver data cube hierarchies)
soxofaan added a commit to Open-EO/openeo-geopyspark-driver that referenced this issue Oct 6, 2020
preparation for Open-EO/openeo-python-client#100 (splitting client and driver data cube hierarchies)
soxofaan added a commit to Open-EO/openeo-python-driver that referenced this issue Oct 6, 2020
preparation for larger process graph processing refactor
preparation for Open-EO/openeo-python-client#100
soxofaan added a commit to Open-EO/openeo-python-driver that referenced this issue Mar 24, 2023
soxofaan added a commit to Open-EO/openeo-geopyspark-integrationtests that referenced this issue Mar 24, 2023
@soxofaan
Copy link
Member Author

ImageCollection base class has been eliminated

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant