Saya perlu mengelompokkan data dari NetCDF menggunakan shapefile tertentu. Data tersebut adalah suhu permukaan laut dan warna lautan pada resolusi 1/4 derajat. Saya memiliki 4 poligon yang menggambarkan AS. Northeast continental shelf ekosistem laut besar dan sub-komponen yang perlu saya gunakan untuk mengekstrak data. Saya bekerja dengan file komposit bulanan dari 1982-2014, jadi ini rutin ekstraksi data perlu diotomatisasi. File-file tersebut sudah terdaftar di grid perkiraan area kerja [35, 45, -80, -60].
Sebelumnya, kami mengonversi file data HDF5 ke raster di R dan memprosesnya dengan cara ini, tetapi metode ini benar-benar tidak efisien dan saya yakin ada solusi yang lebih baik di Python menggunakan file NetCDF saat ini.
Sejauh ini saya telah menggunakan GDAL dan Fiona untuk membaca di shapefile dan NetCDF4 untuk memuat file data. Saya tidak yakin bagaimana cara mengatur ulang data. Aku menemukan ini:
GDAL untuk Python: mengekstraksi subdomain dari file NetCDF?
Tapi saya tidak punya ide foggiest tentang bagaimana cara subset file NetCDF menggunakan apa pun selain kotak ikatan sederhana, yang pasti bukan poligon ini.
Poin dalam rutinitas poligon mungkin akan membutuhkan keabadian untuk bekerja, tapi mungkin saya bisa mengelompokkan data menggunakan kotak pembatas yang lebih kecil yang diputar agar sesuai dengan bentuk ini seperti ini sebagai titik awal awal dan kemudian melakukan pencarian titik-dalam-poli:
Berlangganan file netCDF lengkung (keluaran model ROMS) menggunakan kotak lon / lat bounding.
Ada ide?
EDIT 1:
Saya baru saja menemukan paket OpenClimateGIS yang sepertinya cocok dengan tagihan ... Saya akan coba ini untuk melihat apakah saya bisa membuatnya berfungsi: http://ncpp.github.io/ocgis/examples. html # subset lanjut
Jawaban:
Ini mungkin dapat disesuaikan untuk kebutuhan Anda.
Jika Anda tidak keberatan memanggil baris perintah dari python, Anda bisa melakukan sesuatu seperti
gdalwarp -cutline clip.shp -cl clip -crop_to_cutline input_raster output_raster_clipped.tif
.-cwhere
dan-csql
mungkin opsi gdalwarp yang lebih tepat untuk memilih salah satu dari empat poligon untuk kliping.sumber
Lihatlah ini: /programming/34585582/how-to-mask-the-specific-array-data-based-on-the-shapefile
Yang ingin Anda ingat adalah bahwa setelah Anda memuat NetCDF Anda, Anda bekerja dengan array NumPy.
Apa yang Anda coba hasilkan? Statistik ringkasan berdasarkan area poligon?
Bagaimanapun, inilah yang akan saya lakukan:
sumber
Anda dapat menggunakan rioxarray. Berikut ini sebuah contoh: https://corteva.github.io/rioxarray/stable/examples/clip_geom.html
sumber