zoukankan      html  css  js  c++  java
  • arcgis如何求两个栅格数据集的差集

    栅格数据集没有擦除功能,现在有栅格A和栅格B,怎么求两个栅格的差集C

    具体步骤如下:

    1、首先利用栅格计算器,把栅格B中的value全部赋值为0

    输入语句:"栅格B" * 0
    

     

    2  建立一个面图层:在ArcCataLog中选择存放面图层的文件夹,点击右键,选择Shapefile,选择要素类型为面,点击确定,即可建立新的面状图层。

                                        

                                       

    3    单击编辑器,选择‘开始编辑’,选中 ‘处理范围D’ 图层后确定

      4   单击创建要素图标,然后在处理范围中单击‘处理范围0’图层(注意,如果不点的话,下面的构造工具就不会显示出来),选择矩形,绘制一个矩形(矩形能够覆盖住栅格A的范围)

    5    绘制的面如下图所示,绘制完成之后单击‘停止编辑‘,保存编辑内容

    6    修改‘处理范围D’图层的填充颜色和边框颜色,结果如下: 

     

     7    对‘栅格B归零’图层进行栅格计算,单击‘环境’按钮,对‘处理范围’进行设置,选择‘与图层  处理范围D 相同’,单击确定开始进行栅格计算。

    输入内容:   Con(IsNull("栅格B归零"),1,"栅格B归零")
    

      

    8   计算结果如下:‘栅格B扩展数据集中,栅格B的部分value为0,其他部分value为1,这是因为我们在步骤7的计算中将空值部分全部设为1的原因。

    9   将栅格B扩展与栅格A进行栅格乘法运算,这样‘栅格B’的部分全部都为0值,而栅格A的其它部分还为栅格A的值,如下图所示

    输入内容:  "栅格B扩展" * "栅格A"

    10  使用栅格计算器,筛选栅格值大于0的区域,就得到最终的结果,即栅格C。 

    输入内容:   Con("栅格乘集">0,"栅格乘集")

    11   完事了,最终结果如下所示:

     

    -------------------------------------------------------------------------------------------------

    QQ群:871934478

    版权所有,转载请注明源地址                          

    -------------------------------------------------------------------------------------------------

  • 相关阅读:
    运维文档的几点看法
    cmpp短信网关对接MSGID问题
    一文带解读C# 动态拦截覆盖第三方进程中的函数(外挂必备)
    C#中的解构
    如何科学破解慢SQL?
    c# HttpClient 上传文件并带参
    React 页面跳转传值
    Mysql 优化:status这类字段适合加索引吗?
    PHP数组高效去重
    PHP unset()、array_unique()的坑
  • 原文地址:https://www.cnblogs.com/yiliangmi/p/10075285.html
Copyright © 2011-2022 走看看