• ArcGIS中ArcMap求取点要素在栅格图像中的行列号的方法


      本文介绍在ArcMap软件中,求取点要素栅格图像中所处行号列号的方法。

      如下图所示,我们已知一张栅格图像以及其上的几个点要素;本文就以此数据为例,介绍获取点要素所处行列号的方法。

    在这里插入图片描述

      其中,本文所用的栅格图层与点要素图层都不含有任何地理参考信息。如下图所示,其为栅格图像的属性面板,这里“Spatial Reference”显示的是,且“XY Coordinate System”显示的是Unknow(如下图红色区域部分);且图像的空间范围是用四个没有任何单位、没有任何意义的数据表示(如下图绿色区域部分)。

    在这里插入图片描述

      如下图所示,其为点要素图层的属性面板;可以看到该图层同样不含任何地理参考信息,且图层的空间范围亦是用四个没有任何单位、没有任何意义的数据表示。

    在这里插入图片描述

      这里需要注意,如果大家的数据(栅格图像与点要素图层)含有地理参考信息(比如同时含有地理坐标系同时含有投影坐标系),同样是可以求取点要素所处行列号的。但如果大家的数据是一个含有地理参考信息一个不含有(比如栅格图像含有地理参考信息,而点要素图层不含有),那么需要首先对不含有地理参考信息的图层添加坐标系,保持两个图层坐标系一致,才可以进行下面的操作;同样,如果是两个图层一个含有投影坐标系一个含有地理坐标系,那么也需要进行坐标系的统一才可以。简单来说,要么两个图层都没有任何坐标系,要么两个图层都有地理坐标系,要么两个图层都有投影坐标系,才可以进行后面的操作。

      首先,我们在点要素图层名称处右键,选择“Open Attribute Table”选项。

    在这里插入图片描述

      接下来,在属性表左上方选择“Table Options”→“Add Field…”选项。

    在这里插入图片描述

      在弹出的“Add Field”窗口中,配置字段名称。这个字段是我们后期用来存放点要素在图像中的X值,因此命名为X类似的名称即可;字段类型为“Float”或“Double”,下面的精度可以配置也可以不配置。

    在这里插入图片描述

      再次执行同样的操作,建立第二个字段,后期存放点要素在图像中的Y值。

    在这里插入图片描述

      配置完毕后,如下图所示。

    在这里插入图片描述

      随后,在刚刚建立的第一个字段名称处右键,选择“Calculate Geometry…”。

    在这里插入图片描述

      在弹出的“Calculate Geometry”窗口中,“Property”选择为“X Coordinate of Point”,不要选中最下方的“Calculate selected records only”勾选项(如果该项可选的话)。

    在这里插入图片描述

      对另一个字段执行同样的操作,但是“Property”选择为“Y Coordinate of Point”即可。

    在这里插入图片描述

      随后,可以看到这两个字段都已经有了具体的数值;这两个数值就表示每一个点在栅格图像中的位置。若要准确来说,这两个值其实是每一个点在ArcMap软件当前坐标下的XY值。

    在这里插入图片描述

      接下来,我们即可开始计算。这里有两种方法,一种是在ArcMap软件的字段计算器中直接计算,还有一种是将属性表导出后到Excel等软件中计算。这里因为我要对多个图像中的点要素进行计算,因此就选择用第二种方法。

      首先,在属性表左上方选择“Table Options”→“Clear Selection”选项,确保我们导出数据时没有遗漏。

    在这里插入图片描述

      随后,在ArcMap软件选择“Toolboxes”→“System Toolboxes”→“Conversion Tools.tbx”→“Excel”→“Table To Excel”。

    在这里插入图片描述

      选择我们需要导出属性表的点要素,并配置输出路径与文件名称。

    在这里插入图片描述

      接下来,我们需要在ArcMap软件左侧的图层列表中,右键选择栅格影像图层,并选择“Properties…”进行查看。首先,需要记录一下栅格影像的像素大小,如下图所示。

    在这里插入图片描述

      随后,记录栅格影像的最顶处坐标值最左侧坐标值;如下图所示。

    在这里插入图片描述

      随后,在Excel中分别用公式=INT(ABS((B$3-G3)/E$3)+1)=INT(ABS((C$3-H3)/E$3)+1)来计算点要素所处的行列号。如下图所示,其中,B$3表示我们刚刚记录的栅格图像最左侧坐标值(也就是-0.5),C$3表示栅格图像最顶处坐标值(也就是0.5);E$3表示栅格图像的像素大小(取一个边长即可,也就是1);G列与H列分别为刚刚我们为点要素图层新建的两个字段XYJ列与K列分别为两个公式计算得到的结果。大家对照着下图与上方两张图来看应该会更加清楚。

    在这里插入图片描述

      随后,上述第一个公式计算得到的就是点要素在栅格图像中的列号,第二个公式得到的就是点要素的行号

    欢迎关注:疯狂学习GIS

  • 相关阅读:
    C++ 三大特性之多态(二) 多态的实现原理
    通过接口抓取公众号信息并群发
    电脑入门:电脑硬件入门到精通
    vue中addEventListener监听不到,原来是最外层没有设置长宽
    快速傅里叶变换(FFT)
    警惕U盘、FTP等传统文件摆渡方式的7大弊端
    基于JAVA旅游足迹记录系统计算机毕业设计源码+数据库+lw文档+系统+部署
    SMFL 教程&个人笔记
    QTableWidget 详细使用指南
    css自学框架之消息弹框
  • 原文地址:https://blog.csdn.net/zhebushibiaoshifu/article/details/126870676