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