今天有客户想实现不规则裁剪以前总是在ArcGIS下操作,而今天手痒了,想在ENVI下搞搞,折腾了半天总算完工,现将在ENVI中裁剪栅格的步骤写下来,以方便参考:
步骤:
将不规则的Shp面状数据在ENVI中打开,然后转成ENVI自己的格式,然后转成ROI最后执行裁剪。
1、打开栅格数据:通过 File -- Open Image
2、打开矢量数据:通过 File -- Open Vector
或者 Vector -- Open Vector,选择 文件类型 Shapefile(*.shp) ,选择矢量文件 ,注意在弹出的Import Vector Files Parameters 对话框选择正确的投影类型。然后OK之后ENVI自动将矢量文件转为EVF格式。如下图:
这里要注意栅格数据和矢量数据的投影系统必须一致。如果不一致就需要重投影使其一致。如下图,坐标系为WGS84
3、将矢量数据转为ROI:在Availabel Vectors List选择数据,在 File 选择 Export Layers to ROI,然后在Select Data File to Associate with new ROIS 中选择需要裁减的栅格数据,再在Export EVF Layers to ROI中选择Convert all records of an EVF layer to one ROI,点击OK。如下图:
4、裁剪栅格数据:在ENVI主菜单Basic Tools 中选择Subset Data via ROIs,在Select Input File to Subset via ROI 中选择需要裁减的栅格数据,OK。然后出现Spatial Subset via ROI Param...对话框,在Slect Input ROIs 中选择建立的 ROI。最后选择输出结果到文件还是内存即可。如下图:
** 这里需要注意 Mask pixels outside of ROI ?这个选项,如果选择 No ,则是以包括ROI在内的最小矩形范围裁剪,得到的结果数据也是矩形。如果选择Yes,则需要在 Mask Background Value 后给出 ROI 范围外的数据值,默认是0 (该值自己随意设定),这样得到的结果就是大家想要的不规则边界裁剪结果。
** 另外矢量数据必须是多边形类型,如果是线类型裁剪,在想要得到按照边界裁剪时就会出错。
结果比较: