¿Cómo puedo especificar el orden de dimensiones cuando uso ncdf4 :: ncvar_get?

Siguiendo una pregunta anterior (¿Lectura más rápida de series temporales de netCDF?) He remutado mis archivos netCDF para proporcionar lecturas rápidas de series temporales (scripts en github para ser limpiados eventualmente ...)

En resumen, para hacer lecturas más rápidas, he reorganizado las dimensiones delat, lon, time atime, lat, lon. Ahora, mis scripts existentes se rompen porque suponen que las dimensiones siempre seránlat, lon, time, siguiendo la documentación de ncdf4 dencvar_get, para el argumento 'inicio':

El orden es X-Y-Z-T (es decir, la dimensión del tiempo es la última)

Sin embargo, éste no es el caso.

Además, hay una inconsistencia relacionada en el orden de las variables enumeradas a través de la utilidad netCDF de línea de comandosncdump -h y la función Rncdf4::nc_open. El primero dice que las dimensiones están en el orden esperado (lat, lon, time) mientras que el último ve las dimensiones con el tiempo primero (time, lat, lon).

Para un ejemplo mínimo, descargue el archivotest.nc y correr

bash-$ ncdump -h .nc
bash-$ R
R> library(ncdf4)
R> print(nc_open("test.nc")

Lo que quiero hacer es obtener registros 5-15 de la variable "lwdown"

my.nc <- nc_open("test.nc")

Pero esto no funciona, ya que R ve la dimensión del tiempo primero, así que debo cambiar mis scripts a

ncvar_get(my.nc, "lwdown", start = c(5, 1, 1), count = c(10, 1, 1))

No sería tan malo actualizar mis scripts y funciones, excepto que quiero poder leer datos de archivos independientemente del orden de las dimensiones.

Aparte de ¿Hay alguna forma de generalizar esta función para que funcione independientemente del orden de las dimensiones?

Respuestas a la pregunta(1)

Su respuesta a la pregunta