Saltar al contenido

¿Hay alguna forma de recortar un archivo NETCDF?

Nuestros mejores programadores han agotado sus reservas de café, en su búsqueda noche y día por la resolución, hasta que Elena encontró el resultado en Beanstalk así que en este momento la comparte con nosotros.

Solución:

si, usando ncks desde el NCO paquete: http://nco.sourceforge.net/nco.html

Si conoce los índices correspondientes al rango de latitud/longitud que desea, digamos que son 30-40 de latitud y 25-50 de longitud, por ejemplo, entonces podría recortar el archivo netCDF con

ncks -d lat,30,40 -d lon,25,50 example.nc -O cropped_example.nc

asegúrese de especificar los índices con valores enteros.

De lo contrario, también puede especificar directamente el rango de los valores de latitud y longitud que desee, pero en este caso deber asegúrese de usar puntos decimales para pasar el rango como flotantes.

 ncks -d lat,30.,-10. -d lon,-30.,60. example.nc -O cropped_example.nc

NCO funciona bien, pero solo para enumerar una alternativa, también se puede hacer usando cdo (operadores de datos climáticos), que me parece más fácil de recordar. Puede especificar directamente los valores de longitud y latitud de esta manera:

cdo sellonlatbox,lon1,lon2,lat1,lat2 infile.nc outfile.nc

donde lon1,lon2,lat1,lat2 definen los límites del área que necesita. Si aún no lo tiene instalado, puede obtenerlo en Ubuntu con

sudo apt-get install cdo

cdo tiene muchas otras funciones para procesar, combinar y dividir archivos y una excelente documentación en línea.

Tenga en cuenta que para que CDO funcione, las variables de coordenadas (lat/lon) deben definirse de acuerdo con las convenciones de CF, por lo que la solución NCO es más robusta (consulte los comentarios).

Si está en Linux o macOS, puede hacerlo fácilmente usando nctoolkit (https://nctoolkit.readthedocs.io/en/latest/) en Python.

import nctoolkit as nc
nc.options(lazy = True)
data = nc.open_data("example.nc")
data.clip(lon = [25, 50], lat = [30, 40])
data.write_nc("output.nc")

Debajo del capó, nctoolkit usa CDO. Entonces, lo anterior es el equivalente del enfoque CDO mencionado anteriormente:

cdo sellonlatbox,lon1,lon2,lat1,lat2 infile.nc outfile.nc

Si posees alguna desconfianza o capacidad de limar nuestro artículo eres capaz de añadir un informe y con placer lo leeremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *