ArcGIS 批量生成 UUID 作为唯一 ID

文章介绍了UUID(全局唯一识别码)的概念及其生成算法,包括基于时间戳的uuid1、基于名字的MD5和SHA-1散列值的uuid3和uuid5,以及基于随机数的uuid4。重点讲述了在ArcGIS中使用Python的uuid模块,通过字段编辑器为矢量数据属性表创建UUID字段的步骤,以确保每个feature具有唯一标识。

UUID

通用唯一识别码(英语:Universally Unique Identifier,缩写:UUID)是用于计算机体系中以识别信息数目的一个 128 位标识符,还有相关的术语:全局唯一标识符(GUID)。根据标准方法生成,不依赖中央机构的注册和分配,UUID 具有唯一性,这与其他大多数编号方案不同。重复 UUID 码概率接近零,可以忽略不计。

UUID 主要有五个算法,也就是五种方法来实现

算法

方式

介绍

uuid1

基于时间戳

由 MAC 地址、当前时间戳、随机数生成。可以保证全球范围内的唯一性,但 MAC 的使用同时带来安全性问题,局域网中可以使用 IP 来代替 MAC。

uuid2

基于分布式计算环境 DCE

算法与 uuid1 相同,不同的是把时间戳的前 4 位置换为 POSIX 的 UID。实际中很少用到该方法。

uuid3

基于名字的 MD5 散列值

通过计算名字和命名空间的 MD5 散列值得到,保证了同一命名空间中不同名字的唯一性,和不同命名空间的唯一性,但同一命名空间的同一名字生成相同的 uuid。

uuid4

基于随机数

由伪随机数得到,有一定的重复概率,该概率可以计算出来。

uuid5

基于名字的 SHA-1 散列值

算法与 uuid3 相同,不同的是使用 Secure Hash Algorithm 1 算法

解决方案

通过上面的介绍,我们可以看出来,为了保证全局的唯一性,我们将使用 uuid1 方法来完成这项工作。

我们用 ArcGIS 打开我们需要创建唯一字段的矢量数据属性表,创建一个类型为 text 的新字段,打开字段编辑器 (Field Calculator)。Parser 选择 Python,勾选 Show Codeblock,分别输入以下内容。

import uuid
def getUUID():
  val=(str(uuid.uuid1())).lower()
  return val

执行UUID = (你刚刚创建的字段名)

getUUID()

点击 OK,等待运算完成,你将能看到所有的 feature 已经被赋予了 UUID。

原文地址为: https://www.iszy.cc/2019/09/06/arcgis-uuid/

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值