shp在MATLAB中裁剪数据,ENVI中利用Shape文件裁剪栅格数据

在利用ENVI进行遥感影像处理的过程中,按照研究区范围对遥感影像进行裁剪几乎是必须的步骤,现在我就来说一下在ENVI中如何利用最常见的Shape区文件来裁剪遥感影像。

我们以ENVI安装目录下的World_DEM数据作为被裁减的栅格数据,以中国边界图China_BND.shp作为边界控制的矢量数据。两个数据的坐标系统都为经纬度坐标的WGS_1984。需要说明的是:ENVI中对于坐标系统的控制是比较严格的,只有具有完全相同坐标系统的两个图才能叠加在一起进行裁剪操作。裁剪步骤如下:

(1)在ENVI中打开World_DEM数据(这个是废话,不打开怎么进行裁剪操作)。

(2)打开China_BND.shp文件。在File菜单中选择Open Vector Files,在打开对话框中选择文件类型为“Shapefiles(*.shp)”,找到China_BND.shp文件将其打开。之后弹出Import Vector Files Parameter对话框,设置导出的EVF文件的路径并设置输出文件的坐标系统。

e5278887a747c2ae6ad51bfe04d7b6bb.png图一    导入Shape文件设置

(3)导入成功后在Available Vectors List中可以看到导入的shape文件,点击Load Selected,在弹出的对话框中选择world_dem所在的窗口,点确定就可以看到矢量数据加载到窗口中了。

65325a857ea5d0a64f7e860442209afc.png图二    导入的矢量数据

ae0136e84ba185afa51ef5f2b4145337.png图三    选择矢量数据加载的图层

(4)在Vector Parameter对话框中依此选择File->Export active layer to ROIs,将导入的矢量数据转化为ROI。

b154379e14be9fa9dc6e75c296ef01df.png图四    将导入的矢量数据转为ROI

(5)在ENVI的主菜单上,依此选择Basic Tools->Subset Data via ROIs,打开Select Input File to Subset via ROI对话框,在其中选择World_dem数据,作为被裁减的栅格数据。点击确定,接着在弹出的Spatial Subset via ROI Parameter对话框中选择刚才转换的ROI文件,Mask Pixels outside of ROI设置为Yes,Mask Background Value默认为0即可,让然,如果需要设置为特殊的值那么在这里设置即可。设置好输出路径后点击确定即可完成裁剪。

328279628ec870ed230cb7dc31a2e2b9.png图五    裁剪设置

大家可以将图五中的Mask Pixels outside of ROI设置为No试一下,看看裁剪的效果与设置为Yes时有何不同。下面是叠加了裁剪边界之后的裁剪结果。

0b36345e4597a65ca53f15dfdfc891bf.png图六    叠加了裁剪边界的裁剪结果

### ENVI 软度批量导入点数据方法 在ENVI软件中,批量导入点数据可以通过编写脚本或者利用批处理功能来实现。对于特定的任务需求,如批量导入点数据,通常会涉及到使用ENVI自带的IDL编程环境来进行定制化操作[^1]。 #### 使用 IDL 编写脚本批量导入点数据 通过编写IDL (Interactive Data Language) 脚本来自动化这一过程是一个有效的方式。下面提供了一个简单的例子用于演示如何读取CSV文件中的坐标并将其转换成矢量格式: ```idl ; 定义输入 CSV 文件路径 file_path = 'path_to_your_csv_file.csv' ; 读取 CSV 文件内容到数组 data = READ_CSV(file_path) ; 提取 X 和 Y 坐标列作为点位置 x_coords = data[*,'X_COLUMN_NAME'] y_coords = data[*,'Y_COLUMN_NAME'] ; 创建新的内存矢量对象存储这些点 vector_obj = OBJ_NEW('ENVIVector', $ NAME='Imported Points', $ SPATIAL_REF=spatial_reference, $ ; 需要指定空间参考系 GEOMETRY=[0], $ ; 初始化几何属性为空列表 DATA_TYPE=4 ; 设置为浮点数类型 ) ; 添加每一个点到矢量对象里 FOR i = 0, N_ELEMENTS(x_coords)-1 DO BEGIN point_geom = OBJ_NEW('ENVIPointGeometry') point_geom->SetProperty, COORDINATES=[[x_coords[i]], [y_coords[i]]] vector_obj->AddFeature(point_geom) ENDFOR ; 导出最终的结果到 ESRI Shapefile 或其他支持的格式 ExportVectorFile, file_name='output.shp', VECTOR_OBJ=vector_obj ``` 此代码片段展示了怎样从外部CSV文件加载地理坐标,并创建相应的`ENVIVector`实例保存这些点的位置信息。最后一步是将构建好的矢量特征集导出为标准的空间数据交换格式,比如ESRI Shapefiles。 为了更高效地完成这项工作,建议查阅官方文档获取更多细节和支持函数说明;同时也可以探索社区资源寻找现成解决方案或求助于经验丰富的开发者分享最佳实践案例[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值