我能够将MISR(多角度图像光谱辐射仪)级别2(MIL2ASAE)扫描数据中的“ Aerosol_Optical_Depth”数据集批量转换为网格数据,其格式为.nc,使用2维gdal_translate和gdal_warp。我为此使用了以下gdal代码。
# get the reprojection information, stuff it into
a virtual file (.vrt)
gdal_translate -of VRT HDF5:"$1"://4.4_KM_PRODUCTS/"$2" misr.vrt
# delete the bad ground control points
sed '/X=\"-9.999000000000E+03"/d' misr.vrt > final.vrt
# grab the filename without an extension
filename=$(basename "$1") `filename="${filename%.*}"
# reproject the data using the cleaned up VRT file
gdalwarp -overwrite -tr 0.1 0.1 -of GTIFF -tps -r near -t_srs EPSG:4326 final.vrt "/mnt/d/my/output/path/$filename_$1.tif"
我将此代码保存到.sh文件中,并将其放在输入文件所在的文件夹中,并在linux命令提示符下运行以下命令
* .nc中i的/ mnt / d / my / inputfolder $做./gdal_swath2grdmisr.sh $ i Aerosol_Optical_Depth;完成
这将批量处理文件夹中的文件,将我所需的Aerosol_Optical_Depth数据集从条幅转换为网格。但是现在问题出在输入文件中,还有一个名为“ Spectral_AOD_Scaling_Coeff”的数据集,我需要将其从条幅转换为网格,实际上,我希望在660nm处具有MISR的2级AOD,通过使用此变量,我可以做到这一点。我已经用相同的方式尝试过,但是输出显示错误:
输入文件大小为3,496 错误1:无法为final.vrt计算像素/线和地理参考坐标之间基于GCP_TPS的转换
代码正在加载一个大小为输入的文件:输入文件的大小为3、496,但实际上文件的大小为4032 x 496 x 3,这是大小为xyz的3d矩阵,我认为错误是因为代码是采取其y和z尺寸。我已经尝试过将此代码用于modis l2 AOD变量“ Deep_Blue_Spectral_Aerosol_Optical_Depth_Land”,它也是一个3d矩阵,并且代码为此工作得非常好,那么我不知道为什么gdal_translate使用y和z而不是MISR的xy尺寸AOD变量“ Spectral_AOD_Scaling_Coeff”。 gdal_translate是否有任何方式允许用户指定输入数据集的维数。如果有人对我的问题有任何想法或建议,请帮助我。如果知道除使用GDAL以外的其他任何方法来解决我的问题,我也可以使用该方法,我的意图仅仅是将这个变量从条带转换为网格,任何可行的方法。我要附加示例文件(https://drive.google.com/open?id=1Cio_A7OxpPp7p_W35D8DhRH0AtpZWDCI)和代码文件(https://drive.google.com/open?id=1U_RqDulomDoQL15hPVqjz0_qf4TzgULh)