資源簡介
讀取MODIS的MAIAC AOD 1km產品小程序,從自帶的Sinusoidal投影轉為常用的經緯度,注釋詳細,如果需要可能需要自行修改。

代碼片段和文件信息
#?liding?2019.12.30
#+++++++++++++++讀取MAIAC.hdf數據++++++++++++++++++++++
#該數據比較怪異,一個是組織結構
#?(MAIAC的反演算法造成的,一個數據里有多軌數據,這里使用了均值)
#另一個是投影,無經緯度信息?(使用了投影包)
#+++++++++++++++讀取MAIAC.hdf數據+++++++++++++++++++++++
#from?osgeo?import?gdalosr
import?pyproj
from?pathlib?import?Path
import?xarray?as?xr
import?numpy?as?np
in_dir?=?Path(‘./dat‘)
ot_dir?=?Path(‘./result‘)
k?=?0
for?i?in?in_dir.glob(‘*.hdf‘):
????inp?=?i
????print(inp)
????with?xr.open_dataset(inpengine?=?‘netcdf4‘)?as?ds:
????????AOD_1k?=?ds[‘Optical_Depth_055‘].values??#讀取數值
????????attr_?=?ds.attrs??#讀取坐標
????#數據是多軌的,需要進行平均
????aod_550?=?np.full([AOD_1k.shape[1]AOD_1k.shape[2]]np.nan)
????for?ii?in?range(AOD_1k.shape[1]):
????????for?jj?in?range(AOD_1k.shape[2]):
????????????aod_550[iijj]?=?np.nanmean(AOD_1k[:iijj])?#需要使用避免nan的均值
????#投影是GCTP_SNSOID的,需要轉化,只有左上角和右下角坐標
????for?key_val?in?attr_.items():
????????if?key_?==?‘Structmetadata.0‘:
????????????s_val?=?val.split()
????for?ii?in?s_val:
????????if?‘pperLeftPointMtrs‘?in?ii:
????????????x_up?=?float(ii[ii.index(‘(‘)+1:ii.index(‘‘)])
????????????y_up?=?float(ii[ii.index(‘‘)+1:-1])
????????if?‘LowerRightMtrs‘?in?ii:
????????????x_down?=?float(ii[ii.index(‘(‘)+1:ii.index(‘‘)])
????????????y_down?=?float(ii[ii.index(‘‘)+1:-1])
????#坐標網格化
????grid_xgrid_y?=?np.meshgrid(np.linspace(x_upx_downAOD_1k.shape[1])np.linspace(y_upy_downAOD_1k.shape[2]))
????p?=?pyproj.Proj(‘+proj=sinu?+lon_0=0?+x_0=0?+y_0=0?+a=6371007.181?+b=6371007.181?+units=m?+no_defs‘)??#modis坐標投影系統(可替換,還有2個一樣的),查找https://spatialreference.org/ref/
????lat?=?np.full(grid_x.shapenp.nan)?#經緯度空矩陣,便于存放數據
????lon?=?np.full(grid_x.shapenp.nan)
????#循環計算每個格點的投影,注意檢查是否符合規律,避免弄反
????for?l?in?range(lat.shape[0]):
????????for?r?in?range(lat.shape[1]):
????????????lon[lr]?lat[lr]?=?p(grid_x[lr]?grid_y[lr]?inverse=True)
????#保存(注意名字)
????ot_file?=?ot_dir/(i.name[9:16]+‘_‘+i.name[-8:-5])
????np.savez(ot_filelon=lonlat=lataod550=aod_550)
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????2342??2020-05-22?10:09??read_MAIAC.py
評論
共有 條評論