Ya, menggunakan ncks
dari NCO
paket:http://nco.sourceforge.net/nco.html
Jika Anda mengetahui indeks yang sesuai dengan rentang lintang/bujur yang Anda inginkan, katakanlah mereka adalah 30-40 untuk lintang dan 25-50 untuk bujur misalnya, maka Anda dapat memotong file netCDF dengan
ncks -d lat,30,40 -d lon,25,50 example.nc -O cropped_example.nc
pastikan Anda menentukan indeks dengan nilai integer.
Jika tidak, Anda juga dapat langsung menentukan rentang nilai lat dan lon yang Anda inginkan, tetapi dalam hal ini Anda harus pastikan untuk menggunakan titik desimal untuk meneruskan rentang sebagai pelampung.
ncks -d lat,30.,-10. -d lon,-30.,60. example.nc -O cropped_example.nc
nco
berfungsi dengan baik, tetapi hanya untuk membuat daftar alternatif, seseorang juga dapat melakukannya menggunakan cdo
(operator data iklim), yang menurut saya lebih mudah diingat. Anda dapat menentukan nilai bujur dan lintang secara langsung dengan cara ini:
cdo sellonlatbox,lon1,lon2,lat1,lat2 infile.nc outfile.nc
di mana lon1,lon2,lat1,lat2 menentukan batas area yang Anda butuhkan.
Perhatikan bahwa bujur dapat ditentukan menggunakan konvensi 0:360 atau juga -180:180 terlepas dari yang digunakan dalam file input. Konvensi output akan mengikuti yang digunakan dalam perintah cdo. Ini perintah ini juga dapat digunakan untuk mengonversi file dari satu format ke format lainnya.
Untuk detail lebih lanjut tentang mengekstraksi subregional, saya telah memposting tutorial video ini di youtube
Jika Anda tidak memiliki cdo
sudah terinstal, Anda bisa mendapatkannya di Ubuntu dengan
sudo apt-get install cdo
cdo
memiliki banyak fungsi lain untuk memproses, menggabungkan dan memisahkan file dan dokumentasi online yang sangat baik. Perhatikan bahwa untuk cdo
untuk bekerja variabel koordinat (lat/lon) perlu didefinisikan sesuai dengan konvensi CF, jadi dengan cara itu nco
solusi lebih kuat.
Jika Anda menggunakan Linux atau macOS, Anda dapat melakukannya dengan mudah menggunakan nctoolkit (https://nctoolkit.readthedocs.io/en/latest/) di Python.
import nctoolkit as nc
data = nc.open_data("example.nc")
data.crop(lon = [25, 50], lat = [30, 40])
data.to_nc("output.nc")
Di bawah tenda, nctoolkit menggunakan CDO. Jadi di atas setara dengan pendekatan CDO yang disebutkan di atas:
cdo sellonlatbox,lon1,lon2,lat1,lat2 infile.nc outfile.nc