c# Arcobject ArcGIS 获得栅格影像的边界IRasterDomainExtractor 使用方法

92 篇文章 5 订阅

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

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

 

 IWorkspaceFactory rWSF = new RasterWorkspaceFactoryClass();
 IRasterWorkspace rWS = (IRasterWorkspace)rWSF.OpenFromFile(folderName, 0);
 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<1)
      {
          return;
      }
    else if (rasterBandCollection.Count==1)
      {
          nRaster1 = nLayer.Raster;
      }
    else
       {
        IRasterBand rasterBand = rasterBandCollection.Item(0);
        IRasterDataset nRasterDataset = (rasterBand as IDataset) as IRasterDataset;
        nLayer.CreateFromDataset(nRasterDataset);
        nRaster1 = nLayer.Raster;
       }
 IRasterDomainExtractor nRasterDomainExtractor = new RasterDomainExtractorClass();
 IPolygon nPolygon=nRasterDomainExtractor.ExtractDomain(nRaster,true);

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

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值