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

medoid process #447

Open
jdries opened this issue Aug 2, 2023 · 3 comments
Open

medoid process #447

jdries opened this issue Aug 2, 2023 · 3 comments

Comments

@jdries
Copy link
Contributor

jdries commented Aug 2, 2023

PS: this is a draft, needs some work, but have to get started somewhere, improvements welcome

medoid

Context

In compositing methods, from a set of spectral band values, users want to select the one that is the least dissimilar to all other values. This is exactly what medoid does. The concept can also be seen as a rank composite, where the rank band is the sum of distances to all other elements in the set.

Summary

From a set of spectral band values, selects the element that is the least dissimilar to all other elements in the set.

Description

Medoids are representative objects of a data set whose sum of dissimilarities to all the objects in the data set is minimal.

Parameters

data

Optional: no

Description

N-dimensional input data cube over which the medoid is to be computed

row_dimensions

Optional: no

Description

The dimension(s) that define a single object. For instance, the 'bands' dimension often defines objects when compositing.

Data Type

data cube

Categories

  • math

Links to additional resources (optional)

@m-mohr
Copy link
Member

m-mohr commented Aug 2, 2023

All the math processes we have are usually working on numbers (that are then used in apply, reduce, ...), not on data cubes. Could we somehow make this work similarly?

@clausmichele
Copy link
Member

Indeed, can't this be applied in a reduce_dimension maybe?

@jdries
Copy link
Contributor Author

jdries commented Aug 23, 2023

The problem is that medoid is basically an operation on a multi-dimensional matrix, while our current datatypes are either 1-dimensional arrays, or data cubes.
I tried to come up with something based on existing processes already, but one of the intermediate steps involves computing a distance matrix, which is again something I couldn't represent in openEO.

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

No branches or pull requests

3 participants