GNU/Linux >> Linux Esercitazione >  >> Linux

C'è un modo per ritagliare un file NETCDF?

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

Linux
  1. Modo per modificare un file sul posto?

  2. C'è un modo per riprendere uno scp interrotto di un file?

  3. C'è un modo per cambiare le scorciatoie nel comandante di mezzanotte?

  4. C'è un modo per copiare il testo in htop?

  5. Il modo più sicuro per forzare la chiusura di un descrittore di file

C'è un modo per modificare i file all'interno di un file zip senza prima estrarli esplicitamente?

C'è un modo per riavviare i badblock?

C'è un modo per selezionare diverse condizioni in `ps`?

C'è un modo per ascoltare il processo?

C'è un modo corretto per cancellare i log?

C'è un modo rapido per ottenere l'ultimo file in un TAR di grandi dimensioni?