Managing functionality in the ODC ecosystem - exposing valuable tools for data manipulation and analysis #1566
Replies: 2 comments 1 reply
-
Thanks for starting this discussion off @caitlinadams - I think it's a really important question! My thoughts on a possible heirarchy of functionality would go something like this:
(I guess on a personal note, I've found |
Beta Was this translation helpful? Give feedback.
-
It is also worth discussing where Depends-on-core vs doesn't-depend-on-core makes a big difference for ease of installation |
Beta Was this translation helpful? Give feedback.
-
Context
I've been thinking about how to expose a lot of the valuable tools that have been created as part of Digital Earth Australia and Digital Earth Africa. At the moment, the tools for these platforms are independently maintained by both parties. I think there could be a lot of benefits to be gained by finding a way to generalise them so that they could be used by any project employing the ODC style of working with xarray. For example, some functions are
load_ard
calculate_indices
xr_vectorize
temporal_statistics
The Challenge
But where to put them? We have two
odc-
packages that provide additonal functionality beyond datacube core:odc-stac
: load data from STAC in an ODC-style xarrayodc-geo
: manage shape and geo information, and provide an odc accessor for xarrayThere is also
odc-tools
andodc-aglo
;odc-tools
appears to be for development/testing of functionality, andodc-algo
isn't wholy independent ofdatacube-core
, as discussed here: opendatacube/odc-algo#7There is the challenge of the DE Aus/Africa functions being a mix of data/product dependent (
load_ard
andcalculate_indices
) and data independent (xr_vectorize
andtemporal_statistics
). I think the data dependent functions could be handled by having a more generic function, which is then customised using platform specific configuration -- something I'm actively exploring but don't have a solution for yet.Discussion
My question is really, "What should go where?". This arose for me after reading opendatacube/odc-geo#117, which discusses the inclusion of opinionated masking into odc-geo.
I'm not 100% convinced that opinionated masking does belong in
odc-geo
, as it's not specifically related to handling shape and geometry, but more related to data manipulation. But it is a valuable and useful function, as indicated by the high use of the twoload_ard
functions by Digital Earth Australia and Digital Earth Africa, both of which provide opionated, product-based cloud masking.But if not
odc-geo
, where should opinionated masking go? What about other data-independent manipulation functions? I'm curious about the community's thoughts on this, and whether there's interest from those using ODC to develop adatacube
independent package likeodc-geo
, but focussed more on data manipulation and analysis. Perhaps this is whatodc-algo
could be if decoupled from its dependence ondatacube
.Beta Was this translation helpful? Give feedback.
All reactions