一般的各种遥感影像都是采用某种地理或投影坐标的栅格影像,对于从事影像相关工作的人来说,得到现有影像的覆盖范围是确定研究内容,购买遥感影像的基础。怎么得到这个覆盖范围呢?当然我们可以在ArcGIS或ERDAS中打开,就可以看到影像范围了。不过当影像数量达到TB级时,这种方式显然是行不通的。这里我们就需要通过一定的办法将每幅影像的范围以矢量图形的方式表示出来。

一般来说,如果需要的精度不高,可以采用AO获得影像的四至范围Extent,对于TB级别的数据,这样处理速度很快,相对来说是一种比较简便的处理方法。

                IWorkspaceFactory rWSF = new RasterWorkspaceFactoryClass();
IRasterWorkspace rWS = (IRasterWorkspace)rWSF.OpenFromFile(folderName, );
rasterDataset = rWS.OpenRasterDataset(datasetName);
nLayer.CreateFromDataset(rasterDataset);
IEnvelope rExtent = nLayer.VisibleExtent as IEnvelope;

接下来就很容易将extent转化为矢量图形。

这里还有一个问题,我们知道影像在很多时候不是规则的,边界并不是正方向的,经过正射纠正的影像一般都是平行四边形,这样得到的影像范围矢量表示势必会大于原本的影像范围。

我们来看Arcobject中的解决方案。

ESRI.ArcGIS.DataSourcesRaster.RasterDomainExtractor就是用来解决这个问题的。这个用起来方法很简单。

                IRasterDomainExtractor nRasterDomainExtractor = new RasterDomainExtractorClass();
IPolygon nPolygon=nRasterDomainExtractor.ExtractDomain(nRaster,true);

这段代码在只有一个波段的全色影像上运行没问题,在我这是不能处理多波段的影像的。不过,一般来说,多波段影像

各个波段的范围都是一样的,所以可以取其中任意一个波段处理。

                IRasterBandCollection rasterBandCollection=(IRasterBandCollection)nLayer.Raster;
if (rasterBandCollection.Count<)
{
return;
}
else if (rasterBandCollection.Count==)
{
nRaster1 = nLayer.Raster;
}
else
{
IRasterBand rasterBand = rasterBandCollection.Item();
IRasterDataset nRasterDataset = (rasterBand as IDataset) as IRasterDataset;
nLayer.CreateFromDataset(nRasterDataset);
nRaster1 = nLayer.Raster;
}
IRasterDomainExtractor nRasterDomainExtractor = new RasterDomainExtractorClass();

这样就可以算是大功告成了。

Nanttery

2014-03-27 18:32

Arcobject获得栅格影像的边界的更多相关文章

  1. Python中使用面状矢量裁剪栅格影像,并依据Value值更改矢量属性

    本文整体思路:在Python中使用Geopandas库,依次读取shp文件的每一个面状要素,获取其空间边界信息并裁剪对应的栅格影像,计算所裁剪影像Value值的众数,将其设置为对应面状要素的NewTY ...

  2. ArcGIS 按多边形区域统计栅格影像的一些信息

    在使用ArcGIS对栅格影像进行分析时,难免要进行一些统计类的分析.如统计框选区域的像素的个数,面积.均值等内容. 下面给出使用“Spatial Analyst Tools -- > Zonal ...

  3. 使用Python以优雅的方式实现根据shp数据对栅格影像进行切割

    目录 前言 涉及到的技术 优雅切割 总结 一.前言        前面一篇文章(使用Python实现子区域数据分类统计)讲述了通过geopandas库实现对子区域数据的分类统计,说白了也就是如何根据一 ...

  4. ArcGIS栅格影像怎么从WGS84地理坐标转成Xian80投影坐标

    事情是这样的,我下载了一个WGS84坐标系的影像图,需要加载到Xian80投影坐标系下,所以需要对影像图进行坐标系的转换 1.因为涉及到两个参考椭球的问题,首先需要计算七参数,如何计算七参数,请参考我 ...

  5. ArcGIS提取影像边界

    基于ArcGIS有多重办法可以提取影像边界,比如常用的有以下几种方式: a.System Toolboxes --> 3D Analyst Tools --> Conversion --& ...

  6. World Wind Java开发之七——读取本地栅格文件(影像+高程)构建三维场景(转)

    http://blog.csdn.net/giser_whu/article/details/41679515 首先,看下本篇博客要达到的效果图: 下面逐步分析如何加载影像及高程文件. 1.World ...

  7. Arcgis栅格时序地图制作---时间轴动态展示多期影像

    转自原文 Arcgis栅格时序地图制作---时间轴动态展示多期影像 效果如何???满意您go on,不满意咱 say goodbye··· 题外话: 为了在这里动态展示下制作结果,也是费了老劲了,转换 ...

  8. ARCGIS多种影像裁剪

    在互联网上下载的遥感影像都进行过分幅处理,下载下来的影像多是规则的四方形,而在进行遥感影像研究时,多是针对特定区域来进行,比如研究北京市的遥感影像,不在北京市范围内的影像对于研究者就没有利用意义,如果 ...

  9. 使用Python脚本批量裁切栅格

    对栅格的裁切,我们通常使用裁切(数据管理-栅格-栅格处理)或按掩膜提取(空间分析-提取分析)来裁切,裁切的矢量要素通常是一个要素图层或Shape文件.如果要进行批量处理,可以使用ToolBox中的批量 ...

随机推荐

  1. KVO - 观察自定义属性值

    1 . 声明属性&注册监听 { BOOL isOk; } [self addObserver:self forKeyPath:@"isOk" options:0 conte ...

  2. Hadoop Hive概念学习系列之什么是Hive?

    参考  <Hadoop大数据分析与挖掘实战>的在线电子书阅读                   http://yuedu.baidu.com/ebook/d128cf8e33687e21 ...

  3. 安装GCC-8.3.0及其依赖

    目录 目录 1 1. 前言 1 2. 安装日期 1 3. GCC国内镜像下载地址 2 4. GCC的依赖库 2 4.1. gmp库 2 4.2. mpfr库 2 4.3. mpc库 2 4.4. m4 ...

  4. 小Q系列故事——最佳裁判

    Time Limit:200MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Description 过去的2012年 ...

  5. abp架构添加实体并使用迁移功能生成表

    参考: https://aspnetboilerplate.com/Pages/Articles/Introduction-With-AspNet-Core-And-Entity-Framework- ...

  6. 制作支持UEFI启动的原装系统安装盘

    目前市面上大多数的计算机主板均支持UEFI,而且默认就是UEFI,会让新手安装系统遇到各种问题,最常见的就是找不到硬盘,通过光盘来安装操作系统,固然不会遇到什么问题,但是现在主流手段都是通过U盘来安装 ...

  7. springboot(一):入门

    什么是springboot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不 ...

  8. Nginx 安装--图片服务器搭建

    1.  nginx 需要依赖以下模块: gzip模块需要 zlib 库 rewrite模块需要 pcre 库 ssl 功能需要openssl库 1.1.安装pcre 1.         获取pcre ...

  9. Lakeshore

    用来做 html5 特效,Egret游戏引擎 为什么用Egret开发的游戏在某些Android设备上特别卡? { 在 Android 早期版本( 4.4 之前) ,Android WebView 并不 ...

  10. ansible 命令详解{图片详解}

    本文内容来至于http://www.zsythink.net 文件操作模块 命令操作模块 cron 包管理模块