本文介绍基于ArcMap软件,自动批量计算矢量图层中各个要素面积的方法。

  一次,遇到一个问题,需要分别计算ArcMap软件中一个图层的所有面要素的面积。如图,这个图层中包括多个省级行政区矢量面要素,现在需要分别计算其中每一个要素各自的面积。

  这里有一个方便的办法。

  首先我们新建一个字段。打开图层属性表,选择“Add Field”。

  在弹出的界面中,配置如下。其中,“Name”大家可以随意,“Type”选择“Float”,下方的字段属性中,“Precision”为字段的所有数字位数,无论是在小数点左边还是右边;“Scale”则为小数点右边的数字位数,也就是保留几位小数。例如:365.20Precision就是5Scale就是2

  可以看到,已经新建了一个字段。

  在新建的字段名称上右键,选择“Calculate Geometry”。

  弹出了一个提示,大概意思是说:我没有在开启编辑模式的情况下进行字段计算,那么这样会让计算变得快一些,但是一旦计算开始,就不能撤回。

  因此,追求计算速度还是追求可以撤回,依据大家的实际情况来就好。因为我这里数据不多,计算也比较简单,因此就直接选择了继续。

  点击“Yes”之后,在弹出的窗口中第一个“Property”下拉框中选择面积,也就是“Area”;此时发现我的“Area”后面跟着一个“Disabled”。为什么处于这种状态呢?

  一般的,出现上述情况都是因为我们的面要素(也就是这个图层)处于地理坐标系,而并不是投影坐标系。二者最简单的区别就是,地理坐标系用经度、纬度作为空间衡量指标,而投影坐标系用米、千米等长度单位作为空间衡量指标。

  那么,我们就来看看我们现在是不是处于地理坐标系状态。在图层列表中,右击我们当前的图层的名称,选择“Properties”。

  选择“Source”,可以看到,图层的地理坐标系统(“Geographic Coordinate System”)为WGS_1984,这是一个地理坐标系,而非投影坐标系。

  因此,如果我们需要计算面积,必须将这一图层转为投影坐标系。

  具体转换的方法,点击查看ArcGIS地图投影与坐标系转换的方法即可,这里就不赘述啦~

  转换为投影坐标系后,打开新图层的属性表,可以看到我们刚刚新建的字段在这里也是存在的。

  依据同样的方法,打开“Calculate Geometry”,可以看到此时“Area”就不再带着“Disabled”了。

  其中,“Coordinate System”选择第一项,也就是图层自身的坐标系,也就是刚刚我们给他投影所选用的投影坐标系;“Units”是单位,大家依据实际情况来就好。我在这里选择平方米~

  点击“OK”。可以看到“Area”字段已经有面积了。

  那么,我们对这个计算出来的面积随机验证一下。用河南来验证,计算面积为165982687427.8129平方米,也就是165982.69平方千米;我们看看实际面积:

  差了大概1000平方千米。不能说很准确,但是还是可以满足基本的大尺度区域分析了。在这里,精度误差可能的来源包括所用省级行政区.shp文件精度、投影坐标系选用等。大家依据各自的研究需要,来决定需不需要对面积数据精度加以提升;可用的提升方法包括更换投影坐标系、采用更精确的行政区图层等方法。

  再用北京试一下。计算的面积为16394318646.91106平方米,也就是16394.32平方千米;实际面积:

  这个就很准确了~

  那么,能不能求出图层中所有矢量要素面积的和呢?可以的——在“Area”字段名称上右键,选择“Statistics”。

  这里可以对全部字段的样本数量、极值、综合、平均值、标准差、Null值个数等加以查看,非常方便。

  至此,大功告成。

ArcMap分别求取矢量要素各区域的面积的更多相关文章

  1. ArcGIS中如何导出单个矢量要素图形

    原文:ArcGIS中如何导出单个矢量要素图形 在ARCGIS中载入了一张含有省界的中国地图,是SHP文件.现在我只想要其中一块地区的,实现方法如下: 加入到ArcGIS后,右击图层,打开属性表(att ...

  2. 使用C#版OpenCV进行圆心求取

    OpenCVSharp是OpenCV的.NET wrapper,是一名日本工程师开发的,项目地址为:https://github.com/shimat/opencvsharp. 该源码是 BSD开放协 ...

  3. java 求取某一段时间内的每一天、每一月、每一年

    1.求取某一段时间内的每一天 Date date0 = new SimpleDateFormat("yyyy-MM-dd").parse("2014-01-01" ...

  4. OpenCV 最小二乘拟合方法求取直线倾角

    工业相机拍摄的图像中,由于摄像质量的限制,图像中的直线经过处理后,会表现出比较严重的锯齿.在这种情况下求取直线的倾角(其实就是直线的斜率),如果是直接选取直线的开始点和结束点来计算,或是用opencv ...

  5. php自定义函数求取平方根

    <?phpfunction sqare($a, $left, $right){ $mid = ($left + $right)/2; if($mid * $mid == $a || (abs($ ...

  6. oracle 当前年到指定年的年度范围求取

    如下面公式所示,求取2015到当前年(2018)的年度范围,当前年是由系统获取的,用到了sysdate和函数to_char,to_date. 当然,当前年也可以换成指定年份 SELECT TO_CHA ...

  7. poj 1523Tarjan算法的含义——求取割点可以分出的连通分量的个数

    poj 1523Tarjan算法的含义——求取割点可以分出的连通分量的个数 题目大意:如题目所示 给你一些关系图——连通图,想要问你有没有个节点,损坏后,可以生成几个互相独立的网络(也就是连通分量), ...

  8. python 库 Numpy 中如何求取向量范数 np.linalg.norm(求范数)(向量的第二范数为传统意义上的向量长度),(如何求取向量的单位向量)

    求取向量二范数,并求取单位向量(行向量计算) import numpy as np x=np.array([[0, 3, 4], [2, 6, 4]]) y=np.linalg.norm(x, axi ...

  9. K:求取数组中最大连续子序列和的四个算法

    相关介绍:  求取数组中最大连续子序列和问题,是一个较为"古老"的一个问题.该问题的描述为,给定一个整型数组(当然浮点型也是可以的啦),求取其下标连续的子序列,且其和为该数组的所有 ...

  10. 第3节 mapreduce高级:8、9、自定义分区实现分组求取top1

    自定义GroupingComparator求取topN GroupingComparator是mapreduce当中reduce端的一个功能组件,主要的作用是决定哪些数据作为一组,调用一次reduce ...

随机推荐

  1. 理解LLMOps: Large Language Model Operations

    理解LLMOps: Large Language Model Operations 对于像我一样的小白来说,本文是一篇非常不错的LLMs入门介绍文档.来自:Understanding LLMOps: ...

  2. 八: Mysql配置文件的使用

    # Mysql配置文件的使用 1. 配置文件格式 与在命令行中指定启动选项不同的是,配置文件中的启动选项被划分为若干个组,丽个组有一个组名, 用中括号 [ ]扩起来,像这样: 像这个配置文件里就定义了 ...

  3. Java 接口:比较对象的大小

    1 package com.bytezreo.interfacetest; 2 3 /** 4 * 5 * @Description 接口:比较对象的大小 6 * @author Bytezero·z ...

  4. Educational Codeforces Round 158 (Rated for Div. 2)C. Add, Divide and Floor(思维/数学)

    C. Add, Divide and Floor 这里我们选择固定最小数不变,然后每次让其他数向最小数靠近,模拟一下可以发现,只要最大值变为和最小值一样,其他都会和最小值一样. #include &l ...

  5. TLS原理与实践(三)tls1.3

    主页 个人微信公众号:密码应用技术实战 个人博客园首页:https://www.cnblogs.com/informatics/ 引言 tls1.2作为主流的网路安全协议,被广泛应用,但tls1.2仍 ...

  6. vuecli-vite-vue3-init 项目架子 快速开发 webpack打包

    要vite的开发的快速 和 webpack打包 开发的时候 用vite,可以打包一个本地可以直接双击,不用起服务的代码 这个架子的缺点就是 vite和vuecli 两套双配置 正式公司项目 还是vue ...

  7. Android Studio源码导入与调试

    从事Android开发都需要涉及到Android源码的阅读,特别是系统应用或者Framework开发,读代码的时间远远比写代码的时间更多. 一. 生成iml与ipr 在Android Studio中导 ...

  8. 10_PCM转WAV

    播放器是无法直接播放PCM的,因为播放器并不知道PCM的采样率.声道数.位深度等参数.当PCM转成某种特定的音频文件格式后(比如转成WAV),就能够被播放器识别播放了. 本文通过2种方式(命令行.编程 ...

  9. Android 开发Day8

    /* AUTO-GENERATED FILE. DO NOT MODIFY. * * This class was automatically generated by the * gradle pl ...

  10. UE干货| UE虚幻引擎调试神器—控件反射器

    一.打开控件反射器 可以通过窗口→开发者工具→控件反射器 打开: 也可以在umg编辑器上方控件反射器打开. 二.UE控件反射器使用方法 运行项目后,点击控件反射器的"选择可测试命中控件&qu ...