随着ENVI/IDL版本的更新,IDL对矢量和栅格数据的处理也变得越来越简单化。其提供了很多方便的接口,使得用户调用和学习练习便捷成为了可能。
最近接触IDL,发现好多网上的代码都是延后的,新的接口代码理解和编写起来都比较方便,尤其是在做大量数据研究和应用时,使用批处理的方式显得尤其重要。新的接口还在摸索中,后续会推出,既是学习记录,也是分享。
使用IDL实现裁剪。其思路是:对栅格区域确定裁剪矢量范围,进行栅格掩膜(裁剪),然后重新定义多边形范围显示输出。
1.读取栅格和矢量文件:
raster=e.OpenRaster(input)
file_shp=e.OpenVector(input_shp)
2.进行掩膜(裁剪)处理:
Task_MASK=ENVITASK('VectorMaskRaster')
Task_MASK.data_ignore_value=0
Task_MASK.input_Mask_vector=file_shp
Task_MASK.input_raster=raster
Task_MASK.Execute
3.重新格框,输出文件:
Task = ENVITask('RegridRaster')
Task.INPUT_RASTER = raster
Task.GRID_DEFINITION = Grid
4.效果图:
IDL(裁剪)代码下载地址:https://download.csdn.net/download/qq_33356563/10568978