DHI / DHI/mikecore-python

Fast area-subsetting when loading dfs

Abierto
#33 6 comentarios 0 reacciones 0 asignados Ver en GitHub
enhancement
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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.