Better handling of "cube math" like `cube1 / cube2`
Los mantenedores suelen responder en 1 día
@soxofaan ya está trabajando en esto.
Desde el 10/3/2025.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
The python client has since long a compelling "band math" feature, e.g.:
red = s2cube.band("B04")
nir = s2cube.band("B08")
ndvi = (nir - red) / (nir + red)
which is translated to a reduce_dimension along band dimension with the appropriate reducer.
User however also naively try to use these kind of math expressions without using the .band() method, e.g.:
cube3 = cube1 / cube2
Which kind of works: it will produce a merge_cubes operation with an overlap resolver set to "divide" in this case.
As discussed in https://github.com/Open-EO/openeo-processes/issues/280 this is unfortunately a dangerous approach because it will give unexpected results in situations without 100% overlap
Alternative approach: use merge_cubes without overlap resolver to "stack" bands of both cubes in a single cube and do apply_dimension to combine the bands as desired to a new cube. This would involve quite a bit more steps, but will result in more correct calculation:
- before merge: rename bands to ensure 0 overlap. Also: if there are no bands yet: make sure there are
merge_cubesexplicitly without overlap resolver to make sure bands are stacked- use
apply_dimension(or maybereduce_dimensionin some cases) to implement the desired operation - remame bands again to what the user expects
Quite vital to get this working is that band name handling is correct and in line with how it works backend-side. This might be a bit challenging with load_stac use cases where band detection can be a bit fuzzy.
other related issues:
- Lenguaje dominante
- Python
- Estrellas
- 219
- Forks
- 56
- Merge medio
- 2 d 21 h
- PR fusionados (30 d)
- 9
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Open-EO/openeo-python-client
-
JupyterLite supportAbiertoauth feature request
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
Open-EO/openeo-python-client#953 ·
Los mantenedores suelen responder en 1 día
-
Stop providing conda packages?Abiertocollect feedback
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
Open-EO/openeo-python-client#952 · 7 comentarios ·
Los mantenedores suelen responder en 1 día
-
Further decouple CubeMetadata from CollectionMetadata, and properly apply spatio-temporal filteringPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
Open-EO/openeo-python-client#949 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
asset download: support file:local_path to determine target file namePosiblemente ocupada @soxofaan la tomó hace 46 días. Abiertofeature request
Open-EO/openeo-python-client#902 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Add split_points functionalityPosiblemente ocupada @HansVRP la tomó hace 1 día. Abiertojob manager
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
Open-EO/openeo-python-client#899 · 1 asignado ·
Los mantenedores suelen responder en 1 día
Todos los issues de Open-EO/openeo-python-client
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 62/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 70/100
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
topoteretes/cognee#5773 ·
Los mantenedores suelen responder en 1 día
-
MiKTeX: a failed build reports no errors because texify --quiet switches the log to file:line: styleAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
SublimeText/LaTeXTools#1718 ·