Sì, utilizzando ncks
dal NCO
pacchetto:http://nco.sourceforge.net/nco.html
Se conosci gli indici corrispondenti all'intervallo lat/lon che desideri, diciamo che sono 30-40 in latitudine e 25-50 in longitudine per esempio, allora puoi ritagliare il file netCDF con
ncks -d lat,30,40 -d lon,25,50 example.nc -O cropped_example.nc
assicurati di specificare gli indici con valori interi.
Altrimenti puoi anche specificare direttamente l'intervallo dei valori di lat e long che desideri, ma in questo caso devi assicurati di utilizzare i punti decimali per passare l'intervallo come float.
ncks -d lat,30.,-10. -d lon,-30.,60. example.nc -O cropped_example.nc
nco
funziona bene, ma solo per elencare un'alternativa, si può anche farlo usando cdo
(operatori di dati climatici), che trovo più facili da ricordare. Puoi specificare direttamente i valori di longitudine e latitudine in questo modo:
cdo sellonlatbox,lon1,lon2,lat1,lat2 infile.nc outfile.nc
dove lon1,lon2,lat1,lat2 definiscono i confini dell'area richiesta.
Si noti che la longitudine può essere specificata utilizzando le convenzioni 0:360 o anche -180:180 indipendentemente da quella utilizzata nel file di input. Le convenzioni di output seguiranno quelle utilizzate nel comando cdo. Questo comando può essere utilizzato anche per convertire un file da un formato all'altro.
Per maggiori dettagli sull'estrazione delle sottoregioni, ho pubblicato questo video tutorial su youtube
Se non hai cdo
già installato puoi scaricarlo su Ubuntu con
sudo apt-get install cdo
cdo
ha molte altre funzioni per l'elaborazione, l'unione e la divisione di file e un'eccellente documentazione online. Nota che per cdo
per funzionare le variabili coordinate (lat/lon) devono essere definite secondo le convenzioni CF, quindi in questo modo il nco
soluzione è più robusta.
Se sei su Linux o macOS, puoi farlo facilmente usando nctoolkit (https://nctoolkit.readthedocs.io/en/latest/) su Python.
import nctoolkit as nc
data = nc.open_data("example.nc")
data.crop(lon = [25, 50], lat = [30, 40])
data.to_nc("output.nc")
Sotto il cofano, nctoolkit utilizza CDO. Quindi quanto sopra è l'equivalente dell'approccio CDO menzionato sopra:
cdo sellonlatbox,lon1,lon2,lat1,lat2 infile.nc outfile.nc