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.