Envi调用MODISReprojectionTool(MRT)对MODIS产品进行批处理拼接、重投影、裁切1熟悉MRTMODIS产品的类型不同,一景HDF格式的影像包含的波段也各不相同。MRT处理时需要选择处理波段,0表示不作处理,1表示处理,首先要确定影像的波段数。1、拼接Mrtmosaic.exe程序用来拼接影像。调用方式为:mrtmosaic-ig:\n%1.txt-s0000000000000000000000000001110000-og:\temp.hdf命令行帮助如下Usage:mrtmosaic-iinput_filenames_file-t-h-ooutput_filename-sspectral_subsetb1b2...bN-gfilenameforthelogfile需要指定三个参数:-I指定输入文件,可以采取两种方式1、1.hdf2.hdf3.hdf2、把影像的完整路径保存到txt文件中,作为input参数。如-IMOD092008001.txt。-s指定需要处理的波段,同样可以采用两种方式1、直接给出,如–s“000000000000”,注意英文引号;2、指定一个txt路径,让程序读取;-o指定输出路径,一般直接给出1、直接给出,如–og:\tmp.hdf。注意直接存为HDF格式,便于后续处理。2、重投影、裁切Resample.exe用来重投影、裁切是MRT程序的核心。调用方式为:命令行帮助如下:Usage:resample-pparameter_file[options]Optionsthatoverrideparameterfilespecifications:-iinput_file_name-ooutput_file_name-rresampling_type[NNBICCNONE]-tprojection_type[AEAERGEOHAMIGHISINLALCCMERCATMOLPSSINTMUTM]-jprojection_parameter_listp1p2...p15-sspectral_subsetb1b2...bNIfusingthe-sswitch,theSDSsshouldberepresentedasanarrayof0sand1s.A'1'specifiestoprocessthatSDS;'0'specifiestoskipthatSDS.UnspecifiedSDSswillnotbeprocessed.Ifthe-sswitchisnotspecified,thenallSDSswillbeprocessed.-aspatial_subset_type[INPUT_LAT_LONGINPUT_LINE_SAMPLEOUTPUT_PROJ_COORDS]-lspatial_subsetULlatULlongLRlatLRlong-or-ULlineULsampleLRlineLRsample(0-based)-or-ULprojxULprojyLRprojxLRprojyNOTE:line/samplemustbespecifiedforthehighestresolutionofallSDSsspecifiedtobeprocessedintheproduct.-uUTM_zone-xpixel_size-gfilenameforthelogfile可以只指定1个参数:用–p读入prm参数文件,进行处理。例如resample-pg:\prrmMOD092008001.prm,prm文件如下:INPUT_FILENAME=g:\tmp_%1.hdf输入文件SPECTRAL_SUBSET=(1111)前面mrtmosaic拼接结果有4个波段SPATIAL_SUBSET_TYPE=INPUT_LAT_LONG经纬度裁切方式SPATIAL_SUBSET_UL_CORNER=(33.0108.0)左上纬经度SPATIAL_SUBSET_LR_CORNER=(28.0117.0)右下纬经度OUTPUT_FILENAME=F:\MRT_out\myd%1.tif输出路径,不同波段自动区分RESAMPLING_TYPE=NEAREST_NEIGHBOR最近邻采样方法OUTPUT_PROJECTION_TYPE=UTM输出文件投影方式utmOUTPUT_PROJECTION_PARAMETERS=(投影参数0.00.00.00.00.00.00.00.00.00.00.00.00.00.00.0)DATUM=WGS84大地水准面UTM_ZONE=50投影分带带号如果不会设置,可以先在图形界面里设置一次,把设置的结果保存下来。打开刚刚保存的参数文件去掉以#号打头的注释,文件显示如下:INPUT_FILENAME=G:\TmpMosaic.hdfSPECTRAL_SUBSET=(111111111111)SPATIAL_SUBSET_TYPE=INPUT_LAT_LONGSPATIAL_SUBSET_UL_CORNER=(32.0107.0)SPATIAL_SUBSET_LR_CORNER=(29.0116.0)OUTPUT_FILENAME=G:\mod092001001.tifRESAMPLING_TYPE=NEAREST_NEIGHBOROUTPUT_PROJECTION_TYPE=UTMOUTPUT_PROJECTION_PARAMETERS=(0.00.00.00.00.00.00.00.00.00.00.00.00.00.00.0)DATUM=WGS84UTM_ZONE=50如果研究区的经纬度范围不同,可以修改SPATIAL_SUBSET_UL_CORNER=(32.0107.0)SPATIAL_SUBSET_LR_CORNER=(29.0116.0)两行如果需要不同的投影,如经纬度投影,可以修改OUTPUT_PROJECTION_TYPE=UTMOUTPUT_PROJECTION_PARAMETERS=(0.00.00.00.00.00.00.00.00.00.00.00.00.00.00.0)DATUM=WGS84UTM_ZONE=50如果拼接时只选择了1个波段,可以修改SPECTRAL_SUBSET=(1)当然这句INPUT_FILENAME=G:\TmpMosaic.hdf批处理是必须改掉的了关于像素分辨率,一般留空,也就是默认不改变影像的像素大小。2关于DOS批处理裁切MOD产品单次处理Dirg:\mod11*A%1*.hdf/s/bg:\n%1.txtf:\mrt\modis\bin\mrtmosaic-ig:\n%1.txt-s0000000000000000000000000001110000-og:\temp_%1.hdff:\mrt\modis\bin\resample-pg:\prm%1.prmdelg:\prm%1.prm/q/fdelg:\n%1.txt/q/fdelg:\temp_%1.hdf/q/f批量处理for/f%%iin(e:\lis.txt)do@单次处理文件名%%i如果双击运行,用%%i号表示变量。在命令行中%i表示变量。其中e:\lis.txt是年份及天数2008001200800920080172008025200803320080412008049G:\n%1.txt在运行时为g:\n2008001.txt,其中包括2008年第1天的多景MODIS产品影像名。Dirg:\mod11*A%1*.hdf/s/bg:\n%1.txt用来列出g盘(数据存储盘)以mod11打头的指定日期的的hdf格式文件,即MODIS影像。这里要说明一下,MODIS产品命名的规则MYD11A2.A2002185.h27v05.005.2007221162948.hdf从左至右,前7位表示产品类型MYD11指下午星(MYD)第11号产品(landsurfacetemperature),A2表示处理级别。A2002185表示过境时间是2002年第185天,h27v05是MODIS产品在全球的轨道行列号,中国一般是h27v05、h27v06、h28v05、h28v06,005表示HDF5文件格式,早期MODIS采用HDF4格式存储,所以有时也可见到004的产品。2007等一串数字表示影像处理的年月日时分秒,hdf表示存储格式为EOS-HDF。了解了MODIS产品命名规则之后,可以用DOSdir命令来挑选符合条件的MODIS产品路径了。g:\n%1.txt表示把结果转存为g:\n%1.txt%1表示接收的第一个参数,即20080013Envi生成时间列表2008001200800920080172008025这样的列表文件可以用在Envi中定义一个pro来生成:prodaylist,startdate,enddate,result_txt_path;exampledaylist,2008001,2008013,'example.txt';;a=(startdatemod1000)/8*8+(startdate/1000)*1000+1b=((enddatemod1000)/8+1)*8+(enddate/1000)*1000+1help,a,bstep=8openw,lun,result_txt_path,/get_lunres=a;fori=a,b,stepdobeginprintf,lun,string(res,format='(%%7d)')res=res+stependforfree_lun,lunprint,'done';close,/allend在命令行窗口敲入daylist,2009001,2009033,'f:\g4.txt'打开f:\g4.txt如下:2009001200900920090172009025200903320090414Envi平台下整合前面工作留给读者思考提示:spawn函数