Fast area-subsetting when loading dfs
- Lenguaje dominante
- Python
- Estrellas
- 5
- Forks
- 1
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
I have a request for fast loading of subset of dfs data.
Background: I have a dfs2 file for a global dataset, and I wish to read all timesteps of this data but only a sub-area. The way I do it now, is to pass a bounding box to the mikeio.read() method:
`ds = mikeio.read(fn,area = bbox_tuple)`
The problem is that this method is really slow, even thought the area is very small. It seems that MIKEIO needs to load the entire area under the hood before subsetting. For reference: it takes 16 minutes to load the data, even though the resulting dfs2 file is only 1900 kb (the original global file is around 110 GB).
Ideally, it would be possible to use the mikeio.generic.extract() method with an 'area' argument instead of only subsetting in time. I imagine something along the lines of:
`mikeio.generic.extract(fn, fn_out, area=bbox_tuple, start=0, end=-1, step=1, items=None)`
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Línea de trabajo
Empieza leyendo la ruta de selección de áreas de mikeio.read() y el punto de entrada mikeio.generic.extract(), y después compara cómo cada uno gestiona los datos DFS2 y los rangos temporales. El comportamiento solicitado es una extracción basada en un área sin cargar el conjunto de datos global completo; se considera completado cuando una extracción de un área pequeña para todos los pasos temporales finaliza de forma eficiente y conserva la salida solicitada.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python
- Área
- data, performance
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 25/100