GNU/Linux >> Tutoriales Linux >  >> Linux

¿Hay alguna forma de recortar un archivo NETCDF?

Sí, usando ncks del 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 desea, pero en este caso debe 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 encuentro 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.

Tenga en cuenta que la longitud se puede especificar utilizando las convenciones 0:360 o también -180:180, independientemente de la utilizada en el archivo de entrada. Las convenciones de salida seguirán las utilizadas en el comando cdo. Este comando también se puede usar para convertir un archivo de un formato a otro.

Para obtener más detalles sobre la extracción de subregiones, he publicado este video tutorial en youtube

Si no tienes cdo ya 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 cdo para trabajar, las variables de coordenadas (lat/lon) deben definirse de acuerdo con las convenciones CF, por lo que de esa manera el nco la solución es más robusta.


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

import nctoolkit as nc
data = nc.open_data("example.nc")
data.crop(lon = [25, 50], lat = [30, 40])
data.to_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

Linux
  1. Manera de modificar un archivo en el lugar?

  2. Linux – ¿Sincronización de archivos en tiempo real?

  3. ¿Manera portátil de obtener el tamaño del archivo (en bytes) en Shell?

  4. ¿Hay alguna manera de 'uniq' por columna?

  5. ¿Hay alguna forma de determinar el tamaño descomprimido de un archivo .bz2?

¿Hay alguna manera de reanudar un scp interrumpido de un archivo?

¿Hay alguna manera de editar archivos dentro de un archivo zip sin extraerlos explícitamente primero?

¿Hay alguna manera de copiar texto en htop?

¿Hay alguna forma de seleccionar por varias condiciones en `ps`?

¿Hay alguna manera de escuchar el proceso?

¿Hay una forma adecuada de borrar los registros?