Daha çox

Python üçün GDAL: NetCDF sənədindən alt domenlər çıxarılır?


Norveç meteoroloji ofisindən 3 günlük saatlıq proqnoz məlumatlarını ehtiva edən bir NetCDF sənədini işləyən bir ssenari hazırlamalıyam.

  1. NetCDF faylı mənə lazım olan müxtəlif məlumatları (Yağış, Tmperature, Rüzgar vs.) ehtiva edir.

  2. NetCDF faylı lambert proyeksiyasındadır, mən onu WGS84 UTM 32N-ə proyeksiyalaşdırmalıyam.

  3. Həm də 2.5 km (proqnoz girişləri) ilə 1 km (çıxış) şəbəkə hüceyrələrini yenidən nümunə götürməliyəm.

  4. IDRISI formatında saxlamalıyam .rst

PROBLEM! Orijinal NetCDF, BÜYÜK, bütün skandinaviya + qonşu ölkələri əhatə edir. Beləliklə, sürətlə işləyən bir sistemə ehtiyacım olacaq.

Bunu onsuz da ArcPy ilə bacardım, amma hər saat vaxtı üçün nəhəng rasterləri bir-bir çıxarmağa ehtiyac duyduğum üçün proses çox yavaş idi və yalnız bundan sonra onları aşağı sala bilərdim.

Bəlkə GDAL-da (Python-da) əvvəlcə bütün netcdf-i kliplə, sonra daha kiçik bir netcdf ilə işlətməyə davam etməyin bir yolu var?


Norveç Met ofisində http://thredds.met.no/thredds/ ünvanında bir THREDDS server var, ona görə də oraya daxil olmağa çalışdığınız proqnozu görsəniz, sadəcə istədiyiniz alt hissəni NetCDF4- olan OPeNDAP URL-dən çıxara bilərsiniz. Python yerli bir netcdf faylı kimi davranır.

Misal üçün:

import netCDF4 url ​​= 'http://thredds.met.no/thredds/dodsC/arome25/arome_norway_default2_5km_latest.nc' nc = netCDF4.Dataset (url) ncv = nc.variables ncv.keys () # alt set and subval sub lon = ['boylam'] [10: -10: 2,20: -10: 2] lat = ncv ['enlem'] [10: -10: 2,20: -10: 2] # birinci addım addım vaxtını oxuyun = 0 tair = ncv ['air_temperature_2m'] [itime, 10: -10: 2,20: -10: 2] pcolormesh (lon, lat, tair); colorbar ();

bu süjet istehsal edir:

Alt məlumatı / alt nümunəni bu şəkildə işləyə bilər və ya OPeNDAP urlini toplamaq üçün NCO alətlərindən istifadə edə bilərsiniz:

çeklər -d x, 10,30 -d y, 20,40 -d vaxt, 0 http://thredds.met.no/thredds/dodsC/arome25/arome_norway_default2_5km_latest.nc subset.nc

Oradan çevirmək üçün GDAL istifadə etməli və ya lazım olan hər hansı bir şeyə çevrilmək üçün sənədə daxil edilmiş proj4 parametrləri ilə pyproj istifadə etməlisiniz.


netCDF4-python, diskdəki bütün məlumatları oxumadan məlumat dəyişənlərini alt-üstə qoymağınıza imkan verir (numpy dilimləmə sintaksisindən istifadə edərək).


Videoya baxın: Read and write raster files with GDAL in Python (Sentyabr 2021).