pro Part_2
compile_opt idl2, hidden
for k=1, 91, 1 DO BEGIN
kk=strtrim(string(k),1)
file_mkdir,"D:\Lansat_Data_分区切割\"+kk+"\"
endfor
e=envi(/headless)
filearr_1 = file_search("D:\Lansat_Data_波段合成",'*.dat',count=num)
for i=0,num-1,1 do begin
;if (i le 41) then continue
;if (i ge 87) then continue
envi_file=filearr_1[i]
raster = e.OpenRaster(envi_file)
for j=1,91,1 do begin
jj=strtrim(string(j),1)
shp_name="C:\Users\l_j_w\OneDrive\毕业设计\ROI_shp\"+jj+"\"+jj+".shp"
file_shp = e.OpenVector(shp_name)
CATCH, errorStatus
IF (errorStatus NE 0) THEN BEGIN
CATCH, /CANCEL
PRINT, !ERROR_STATE.MSG,j
CONTINUE
ENDIF
maskedRaster = ENVIVectorMaskRaster(raster, file_shp)
outFile_temp = e.GetTemporaryFilename()
maskedRaster.Export, outFile_temp, 'ENVI', DATA_IGNORE_VALUE=0
x = (file_shp.data_range[3]-file_shp.data_range[1])/30;行数
y = (file_shp.data_range[2]-file_shp.data_range[0])/30 ;列数
Grid = ENVIGridDefinition(file_shp.Coord_Sys, $
PIXEL_SIZE=[30.0D,30.0D], $ ;像元大小30M
TIE_POINT_PIXEL=[0.0D,0.0D], $
TIE_POINT_MAP=[file_shp.data_range[0],file_shp.data_range[3]], $
NROWS=x, $
NCOLUMNS=y)
outFile = "D:\Lansat_Data_分区切割\"+jj+"\"+strmid(envi_file,24,49)+".dat"
regrid = ENVISpatialGridRaster(Raster,GRID_DEFINITION=Grid)
regrid.export,outFile,'envi'
file_delete, outfile_temp
endfor
print,i
print,"------------------------------------------------------------------------------------------------------------"
endfor
end