本文介绍基于ENVI软件,实现栅格遥感影像按照像元行列号与个数进行指定矩形区域裁剪的方法。

  一般的,如果我们需要裁剪某个具体的行政区域,按照对应区域的矢量图层裁剪即可;如果需要裁剪某个大致的区域范围,可以按照文章ArcMap手动新建矢量要素的方式中的方法手动划定区域并裁剪;但是有的时候,我们可能需要依据像元数量来限定裁剪区域的大小(例如需要划出一个200*200像素的裁剪区域),而此时手动划定区域肯定不能很好地确定具体像素数量。因此,就需要用到本文介绍的方法。

  我们以某一区域不同成像时间的两景遥感影像为例进行介绍。打开ENVI Classic 5.3 (64-bit) 软件,将两景图像导入;随后,在其中一景图像的界面中选择“Tools”→“Cursor Location/Value...”。

  接下来,鼠标呈现十字准星的形状;此时在遥感影像中浮动鼠标,可以看到右侧出现了鼠标所指示区域的像元位置空间位置(即经纬度)。其中,下图红色区域即为鼠标对应点的像元位置。

  依据需要选择研究区域的大概位置,并将鼠标停留在区域左上角顶点位置的附近,记住当前对应点的像元位置。随后,选择“File”→“Save Image As”→“Image File”。

  在弹出的窗口中选择“Spatial Subset”。

  首先,将刚刚记住的像元位置填入下图左侧第一列数据格中(也就是18711295所示位置),并按照大家的实际需要填写第二列数据格(也就是红色框内区域);这个“实际需要”就指的是矩形区域行和列对应的像元个数,本文中我们就以400*400像元的区域为例,因此需要分别填写前一列数据+400-1之后的像元数量(-1是因为算头不算尾);最后一列对应的是前两列之间的差值,这里大家暂时不用管。

  填好前两列后选择“OK”退出,此时如果再进入“Spatial Subset”就可以看到最后两列的数据已经更新。

  接下来,选择导出图像的格式、路径等;可以看到,支持导出的图像格式有很多种。

  例如,如果要导出为栅格图像,就可以选择“TIFF/GeoTIFF”。

  对两景图像进行同样的操作(记得起始像元的位置要选择一致),可以看到裁剪得到的区域范围是一致的。

  至此,大功告成。

ENVI指定像元数量(行数与列数)裁剪栅格图像的更多相关文章

  1. 如何获取ResultSet的行数和列数

    当我们执行数据库查询返回一个ResultSet的时候,很多情况下我们需要知道这个ResultSet的大小,即它的行数和列数.我们知道它的列数可以通过resultSet.getMetaData().ge ...

  2. 网格布局(GridLayout) 行数与列数

    1.如果网格布局对象未指定具体的“行数”和“列数”,那么它将拥有1行和动态的列数. import java.awt.Button; import java.awt.Frame; import java ...

  3. StringGrid 实例2:1、获取 StringGrid 的行数、列数; 2、给单元赋值.

    实例2: 本例功能: 1.获取 StringGrid 的行数.列数; 2.给单元赋值. 运行效果图:

  4. 用VBA计算WPS 表格ET EXCEL中的行数和列数的多重方法

    用VBA计算WPS 表格ET EXCEL中的行数和列数 每种方法中上面的是Excel的行数,下面的是Excel的列数. 方法1: ActiveSheet.UsedRange.Rows.Count Ac ...

  5. VBA取得EXCEL表格中的行数和列数

    VBA取得EXCEL表格中的行数和列数 初学EXCEL宏的童鞋,总是很想知道表格中含有数据的行数和列数,尤其是行数和列数不确定的情况下.这样可以避免很多的错误,并且可以提高效率.但每次用到的时候到网上 ...

  6. Office EXCEL VBA如何取得EXCEL中的行数和列数

    VBA取得EXCEL表格中的行数和列数 请注意不要使用Columus等关键字作为变量,例如"Columus = ActiveSheet.UsedRange.Columns.Count&quo ...

  7. 【2017-06-29】在登录页面自动返回上次请求页面、Js获取table中的行数与列数

    一.在登录页面自动返回上次请求页面 Request.UrlReferrer比如 if (Request.UrlReferrer != null) { //如果能获取来路地址 Response.Redi ...

  8. python如何输出矩阵的行数与列数?

    Python如何输出矩阵的行数与列数? 对于pyhton里面所导入或者定义的矩阵或者表格数据,想要获得矩阵的行数和列数有以下方法: 1.利用shape函数输出矩阵的行和列 x.shape函数可以输出一 ...

  9. python DataFrame获取行数、列数、索引及第几行第几列的值

    print df.columns.size#列数 2 print df.iloc[:,0].size#行数 3 print df.ix[[0]].index.values[0]#索引值 0 print ...

  10. C#中如何获取一个二维数组的两维长度,即行数和列数?以及多维数组各个维度的长度?

    如何获取二维数组中的元素个数呢? int[,] array = new int[,] {{1,2,3},{4,5,6},{7,8,9}};//定义一个3行3列的二维数组int row = array. ...

随机推荐

  1. 【经验分享】RTC 技术系列之视频编解码

    要了解什么是视频编解码,首先我们需要了解什么是视频. 视频归根结底是一系列连续的图像帧,当这些图像以一定速率播放时,人眼就会判断其是连续活动的,这样就构成了视频. 那为什么要进行视频编解码呢,因为视频 ...

  2. Maven安装详解

    Maven Maven是apache软件基金会旗下的一个开源项目,是一款用于管理和构建Java项目的工具. Maven的作用? 先来简单介绍一下Maven的作用 (1)依赖管理 方便快捷的管理项目依赖 ...

  3. C++ 用户输入验证

    在编写程序时,请考虑用户将如何滥用您的程序,尤其是在文本输入方面.对于每个文本输入点,请考虑: 会不会提取失败? 用户可以输入比预期更多的输入吗? 用户可以输入无意义的输入吗 用户可以溢出输入吗? 以 ...

  4. Nginx主要功能

    Nginx主要功能: 1.反向代理2.负载均衡3.HTTP服务器(包含动静分离)4.正向代理 一.反向代理 反向代理应该是 Nginx 做的最多的一件事了,什么是反向代理呢,以下是百度百科的说法:反向 ...

  5. 基于SqlSugar的开发框架循序渐进介绍(25)-- 基于SignalR实现多端的消息通讯

    基于ASP.NET Core SignalR 可以实现客户端和服务器之间进行即时通信.本篇随笔介绍一些SignalR的基础知识,以及结合对SqlSugar的开发框架的支持,实现SignalR的多端处理 ...

  6. el-menu使用递归组件实现多级菜单组件

    1. 效果: 2. 实现: 创建外层菜单AsideMenu.vue组件和子菜单项AsideSubMenu.vue组件,在AsideSubMenu中进行递归操作. AsideMenu.vue文件内容如下 ...

  7. Redis(八)redis新功能

    redis6新功能 1 ACL Redis ACL是AccessControlList(访问控制表)的缩写,该功能允许根据可以执行的命令和访问的键来限制某些连接. 2 基本命令 acl help &g ...

  8. 【Vue2.x源码系列06】计算属性computed原理

    上一章 Vue2异步更新和nextTick原理,我们介绍了 JavaScript 执行机制是什么?nextTick源码是如何实现的?以及Vue是如何异步更新渲染的? 本章目标 计算属性是如何实现的? ...

  9. springboot-poi ---封装注解式导入导出

    此demo 是基于poi封装对象式注解导入导出,项目框架为springboot项目! 简单的说明一下此demo涉及到的知识点,希望能给初学者带来方便! poi-excel 基本操作(工具) 自定义注解 ...

  10. 如果你项目使用了MyBatis-Plus你一定要用它

    还是先举个例子,魂斗罗小游戏应该很多90后都玩过,那个时代没有Iphone,没有各种电子产品(小学初中时代),这种小游戏应该就是很多90后的青春,反正那个时候只要放假就白天黑夜得玩.它就是那种2个好基 ...