scverse / scverse/spatialdata

`chunks` needs to be passed to `to_multiscale` otherwise it's ignored

Abierto Apto para principiantes
#421 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

needs: triage priority: low
Lenguaje dominante
Python
Estrellas
394
Forks
95
Merge medio
4 d 3 h
PR fusionados (30 d)
7

Descripción

Super easy fix.

Problem

The function to_multiscale(), which is called by Image2DModel and Image3DModel when scale_factors is a list, calls this code:

    # IPFS and visualization friendly default chunks
    if "z" in image.dims:
        default_chunks = 64
    else:
        default_chunks = 256
    default_chunks = {d: default_chunks for d in image.dims}
    if "t" in image.dims:
        default_chunks["t"] = 1
    out_chunks = chunks
    if out_chunks is None:
        out_chunks = default_chunks

This means that if some chunks were already set for the data passed to the model, as in this case

    # data = da.ones((3, 32768, 32768), chunks=(1, 4096, 4096))
    chunks= (1, 4096, 4096)
    data = RNG.random((3, 32768, 32768), chunks=chunks)
    xdata = DataArray(data, dims=("c", "y", "x"))

    ##
    im = Image2DModel.parse(
        xdata,
        scale_factors=[2, 2, 2],
        # chunks=chunks
    )

They are rechunked, unless we pass chunk explicitly to Image2DModel.parse().

Solution

If the data has already chunks, pass them to to_multiscale(). This needs to be done when the data with a Dask array or an xarray DataArray.

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza rastreando to_multiscale() y sus llamadas desde Image2DModel y Image3DModel cuando scale_factors sea una lista. Comprueba las rutas de Dask-array y xarray.DataArray y verifica después que los chunks existentes se pasen sin cambios en lugar de reemplazarse por los valores predeterminados. Se considera terminado cuando una entrada con chunks explícitos conserva sus chunks sin requerir chunks en Image2DModel.parse().

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
python
Área
data
Tipo de issue
Error
Dificultad
2/5
Tiempo estimado
1-3 horas
Estado de actividad
Activo
Claridad
Bastante claro
Aptitud para principiantes
72/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.