ArcGIS|一文彻底搞懂GIS图斑编号

这篇具有很好参考价值的文章主要介绍了ArcGIS|一文彻底搞懂GIS图斑编号。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实际工作中,经常会有对各类图斑进行编号的需求。数据中图斑数比较少时,我们可以手动进行编号,但数据量较大时就必须得想办法自动实现图斑编号。今天,将分享几种常见的图斑自动编号方式,主要包括:图斑顺序编号、按字段属性分类编号、按图斑四至位置编号、分级编号、指定位数编号、加前缀编号等多种编号方法。

由于将要介绍的方法大多数都用到ArcGIS属性表中的【字段计算器】,因此先对【字段计算器】做一简单介绍。

一、字段计算器介绍

在左侧菜单栏任一要素类或者表上右击【打开属性表】,再找到要计算的字段上右击【字段计算器】,即可打开字段计算器。

arcgis图斑编号怎么显示,ArcGIS,arcgis,python

打开【字段计算器】后页面如下图所示:

1是选择脚本语言,默认是VB语言,可以改成Python语言;2是要素字段名,双击会在3和4的代码里显示;3是代码框,勾选【显示代码块】就会出现,用于编写多行的简单脚本。4主代码框,用于简单的代码或字段运算。右边是常用函数,双击即可使用,可用于字段属性字符串切片[:]、大小写转换.isupper()、字符串补齐.zfill()等。

arcgis图斑编号怎么显示,ArcGIS,arcgis,python

二、图斑编号

1.按图斑顺序编号

最简单的编号就是按图斑顺序依次编号,一种是可以借助现有的编号字段,比如FID进行字段运算获得编号,另外一种便是通过编写简单代码的方式进行编号。先看第一种,我们添加一个BH字段,然后打开字段计算器,切换到Python语言,然后双击FID字段再加1(FID编号从0开始)。

arcgis图斑编号怎么显示,ArcGIS,arcgis,python

计算完成后,BH字段里面就有了编号。

arcgis图斑编号怎么显示,ArcGIS,arcgis,python

      接下来,我们通过编写简易代码的方式来实现编号。同样打开字段计算器,切换到Python语言,显示代码块,在里面编写编号函数,然后在下面进行函数调用,同样可以实现上面的效果。

arcgis图斑编号怎么显示,ArcGIS,arcgis,python

完整编号函数代码如下,在字段计算器代码块里面输入时要注意空格,否则容易报错。温馨提示:可以通过点击【保存】按钮将当前函数保存成.cal的函数文件,下次使用时点击【加载】按钮便可直接调用。

 1 rec=0
 2 def autoIncrement():
 3  global rec
 4  pStart = 1 
 5  pInterval = 1 
 6  if (rec == 0): 
 7    rec = pStart 
 8  else: 
 9    rec = rec + pInterval
10  return re

这样我们便实现了简单的顺序编号,但有时候我们需要编号数字位数保持一致,例如:0001、0299这样都是四位数。这就需要用到Python字符串函数.zfill(n)。函数功能:返回长度为n的字符串,原字符串右对齐,前面填充0。

下面,我们以生成5位数编号举例。在BH字段名称上右击打开字段计算器,切换到Python语言,先选择并双击BH字段,再选择并双击.zfill()函数,输入函数参数5,就形成!BH!.zfill(5)代码,表示BH字段字符串向左保留为5位。

arcgis图斑编号怎么显示,ArcGIS,arcgis,python

点击确定,计算完成后生成的结果如下:

arcgis图斑编号怎么显示,ArcGIS,arcgis,python

同样的,如果需要在编号前面再加其他字母等信息,直接在编号前面添加即可。比如5位编号前面加“SM”,为“SM00001”,代码为:"SM"+ !BH!,要注意为英文双引号。另外,也可以通过修改上面编号函数代码的方式实现。

arcgis图斑编号怎么显示,ArcGIS,arcgis,python

2按字段类型编号

有时候,我们在编号时需要按照图层中某一字段属性类型对要素进行编号。比如在卫片图斑中,我们需要按乡镇对图斑进行编号,每个乡镇都从0开始编号。同样可以在字段计算器中采取Python脚本的方式进行实现。我们定义一个isDuplicateIndex(inValue)函数,然后调用即可,同时让编号按3位数对齐。

arcgis图斑编号怎么显示,ArcGIS,arcgis,python

完整Python代码:

UniqueDict = {}
def isDuplicateIndex(inValue):
    UniqueDict.setdefault(inValue,0)
    UniqueDict[inValue] += 1
    return UniqueDict[inValue]

计算后结果如下:

arcgis图斑编号怎么显示,ArcGIS,arcgis,python

3按图斑四至编号

有时候,为了工作方便我们需要按照图斑四至位置,按照从左到右、从上到下的顺序给图斑进行编号。按照四至位置编号,首先需要按照上述排序方式对图斑进行重新排序,然后依次编号即可。

首先,需要给大家简单介绍一下几个字段计算器中常用的Python语法:

!shape.area!:图斑要素面积;
!shape.length!:图斑要素周长。
!shape.extent.Xmin!:图斑要素最小外包矩形的左上角X坐标;
!shape.extent.XMax!:图斑要素最小外包矩形的右下角X坐标;
!shape.extent.Ymax!:图斑要素最小外包矩形的左上角Y坐标;
!shape.extent.YMin!:图斑要素最小外包矩形的右下角Y坐标;

具体操作步骤如下:

第一步:给图层添加Xmin和Ymax两个字段。字段添加后,在字段计算器中基于Python语法:!shape.extent.Xmin!和!shape.extent.Ymax!分别计算出Xmin和Ymax坐标。

arcgis图斑编号怎么显示,ArcGIS,arcgis,python

第二步:在【数据管理】模块下的【常规】工具集中找到【排序】工具进行图斑排序。

arcgis图斑编号怎么显示,ArcGIS,arcgis,python

排序规则:从上到下排序意思就是沿纵轴从上到下排序,所以排序字段Ymax在前面降序排列,从左到右排序意思就是沿横轴从左到右排序,所以排序字段Xmin在后面升序排列,从而保证数据按从上到下,从左到右的顺序排列。

arcgis图斑编号怎么显示,ArcGIS,arcgis,python

第三步:排序后会生成一个新的要素图层,给新图层添加编号字段,然后运用上面顺序编号的代码给图斑依次编号就可了。

arcgis图斑编号怎么显示,ArcGIS,arcgis,python

计算完成后我们要的四至编号就成功实现了,如下图所示:

arcgis图斑编号怎么显示,ArcGIS,arcgis,python

需要说明的是,这块没有使用质心坐标是因为图斑形状很长或很宽时,会因为质心的位置导致排序位置偏后。为了避免这种情况,采取Xmin和Ymax进行排序。

4图斑分级别号

实际工作中,有时候需要根据某字段属性值大小划分不同的等级进行编号或赋值,所谓图斑分级编号。比如:按照图斑面积划分不同的等级,相同等级的图斑赋相同的编号或其他属性值。

我们以面积大小为例,采取自定义Python函数的方式演示一下如何进行分级编号。自定义编号函数:按照要素面积大小,将面积小于2000平方米的图斑编号为1,大于2000小于3000平方米的为2,以此类推。

arcgis图斑编号怎么显示,ArcGIS,arcgis,python

完整的函数代码如下:

def bianhao(value):
  bh = ""
  if value <= 2000:
    bh = 1
  elif 2000 < value <= 3000:
    bh = 2
  elif 3000 < value <= 4000:
    bh = 3
  elif 4000 < value <= 5000:
    bh = 4
  else:
    bh = 5
  return str(bh).zfill(3)

函数调用字段为面积字段,计算后结果如下,图斑已经按照面积大小进行了编号。

arcgis图斑编号怎么显示,ArcGIS,arcgis,python

另外,有种笨办法不用写代码也能实现分级编号。还是以面积为例:首先对面积进行升序或降序排序,然后手动选中面积小于2000平方米的所有图斑,再手动将编号赋值为1,以此类推。当然,数据量大时就不太方便了。

以上。如有问题,欢迎关注我的G*Z*H:爬虫与地理信息。

 文章来源地址https://www.toymoban.com/news/detail-676214.html

到了这里,关于ArcGIS|一文彻底搞懂GIS图斑编号的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ArcGIS学习(八)基于GIS平台的控规编制办法

    上一任务我们学习了”如何进行图片数据的矢量化?\\\" 这一关我们来学习一个比较简单的案例一一”如何在ArcGIS中录入控规指标,绘制控规图纸?\\\" 首先,先来看看这个案例的分析思路以及导入CAD格式的控规图纸。 接着,来看看如何录入控规地块的各项指标,包括地块用地面

    2024年02月21日
    浏览(50)
  • 解读GIS软件:从ArcGIS到山海鲸可视化的全方位介绍

    在现代社会, 地理信息系统(GIS) 的应用已经渗透到了各个领域,为我们提供了丰富的地理数据分析和可视化工具。下面介绍几款常见的GIS工具软件,一起来了解它们的特点和优势。 1. ArcGIS:   ArcGIS由Esri公司开发,是全球领先的 商业GIS软件 。它提供了强大的数据处理、分

    2024年02月11日
    浏览(53)
  • GIS杂记(二):Arcgis对采样点进行裁剪,获取指定区域内的采样点

        有时候需要对栅格数据进行采样处理,如果采样点过多则会使得采样时间过长,今天在进行数据采样时,使用了1km*1km的渔网建立的采样点,大概有1百万个点,程序运行时间大概4个小时,但是其中有绝大部分数据都是空值或者是不需要的数据,因此可以对采样点数据

    2024年02月13日
    浏览(60)
  • 金仓数据库 KingbaseES V8 GIS数据迁移方案(3. 基于ArcGIS平台的数据迁移到KES)

    本章主要介绍基于ArcGIS/GeoScene 平台的两种数据迁移方案,首先是基于KDTS的迁移,主要应用在数据图层较多且数据体量巨大的情况,另一种为利用ArcGIS/GeoScene 平台的异构数据库迁移,主要是一些少量图层或者小数据量的迁移需求。 3.1.1. KDTS迁移步骤 下面讲述通过KDTS工具完成

    2024年02月13日
    浏览(76)
  • 一文彻底搞懂JSON数据

    什么是JSON,为什么需要JSON,JSON的3种形式,JSON常用的方法等 TIP JSON指的是全称是:javascript对象表示法 JSON是Ajax发送和接收数据的一种格式 JSON是一种轻量级的数据交互格式, 其为字符串类型 (面试题会考到) JSON是一种语法,用来序列化对象、数组、数值、字符串、布尔值和

    2024年02月06日
    浏览(52)
  • 【算法】一文彻底搞懂ZAB算法

    最近需要设计一个分布式系统,需要一个中间件来存储共享的信息,来保证多个系统之间的数据一致性,调研了两个主流框架Zookeeper和ETCD,发现都能满足我们的系统需求。 其中ETCD是K8s中采用的分布式存储,而其底层采用了RAFT算法来保证一致性,之前已经详细分析了Raft算法

    2024年02月02日
    浏览(61)
  • 一文彻底搞懂Maven配置(终结版)

    下载安装 提示:安装之前需要先确认好自己需要哪个版本的maven,避免浪费时间。 官网下载:https://maven.apache.org/download.cgi 历史版本下载:https://archive.apache.org/dist/maven/maven-3/ maven配置setting.xml localRepository 该值表示构建系统本地仓库的路径 interactiveMode 表示maven是否需要和用

    2024年02月04日
    浏览(46)
  • 一文彻底搞懂ssh的端口转发

    端口转发是突破网络域隔离的一个手段。在学习这个知识的时候需要不断自问 为什么需要端口转发? 应用场景是什么呢? SSH 隧道或 SSH 端口转发可以用来在 客户端和服务器之间建立一个加密的 SSH 连接 如下图,通过它来把本地流量转发到服务器端,或者把服务器端流量转发

    2023年04月22日
    浏览(48)
  • 一文带你彻底搞懂Nginx反向代理

    举一个通俗的例子,因为众所周知的原因,我们无法访问谷歌,但是因为某些原因,我们必须要访问谷歌,这时候我们会买一个“梯子”,既然我们无法直接访问谷歌,我们就去麻烦“梯子”帮助我们访问。 事实上我们还是没法访问谷歌,只是这个“梯子”能够访问,它只是

    2024年02月04日
    浏览(45)
  • 一文彻底搞懂BJT及其放大特性(图解说明)

    前置知识:PN结 一文彻底搞懂PN结及其单向导电性(图解说明)-CSDN博客 BJT的基本结构如上图所示,在左侧是宽度较窄,浓度非常高的N型离子参杂。中间是非常窄的P型离子参杂。而左侧是浓度较低的N型离子参杂。 在N型参杂区和P型参杂区之间会形成PN结,因此BJT实际上内部是

    2024年02月08日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包