2 votos

¿Extraer aleatoriamente un valor en la dimensión temporal en un punto de NetCDF?

Tengo un conjunto de ubicaciones de puntos (conjunto de datos de características de puntos) y un archivo netCDF que contiene 30 años de datos de precipitación diaria.

Mi objetivo es seleccionar aleatoriamente un valor de precipitación en la dimensión temporal en cada ubicación de punto y escribirlo en una tabla. En el caso de los conjuntos de datos ráster, esto puede lograrse utilizando la función extraer valores a los puntos o la herramienta extraer valores múltiples a los puntos en ArcMap.

¿Existe alguna forma de modificar el código python de alguna de estas herramientas para conseguir un muestreo aleatorio en la dimensión temporal, o alguien conoce algún otro enfoque factible?

3voto

ojblass Puntos 431

En R deberías poder acceder al archivo netcdf directamente con library(ncdf4) y hacer algo como

library(ncdf4)
nc=nc_open('filename.nc')
data_series=ncvar_get(nc,'precip',start=c(1,27,33),count=(-1,1,1))
sample(data_series,50)

... suponiendo que su punto de interés se almacena en (:,27,33), y que el tiempo es la primera dimensión.

Matlab tiene características similares.

1voto

gaya Puntos 1

Pude resolver mi problema. No es lo ideal, pero funciona.

  1. Utilice la herramienta "make NetCDF Raster layer" de la caja de herramientas multidimensional para convertir el netCDF en una capa raster. En "dimensiones de banda", elija la dimensión temporal. Esto creará un número x de bandas correspondientes a cada paso de tiempo.

  2. Utilice la herramienta "multi valores a puntos" para extraer los valores de los datos de todas las bandas en la ubicación del punto deseado.

  3. Exportar la tabla a matlab o R para crear una muestra aleatoria.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X