【ArcGIS技巧】—村庄规划规划用地规划状态字段生成工具

news2025/6/9 7:31:30

"国土空间规划后续也是走向数据治理,数据建库已经是涉及到城市规划、建筑、市政、农业、地理信息、测绘等等方方面面。不得不说以后数据库建设跟维护,是很多专业的必修课。小编就湖南省的村庄规划建库过程中规划用地用海中规划状态字段写了个小工具,觉得有用的可以下载试试。"

1、数据准备

首先得有现状地类图斑、规划地类图斑两个要素图层,湖南省的村庄规划,这两个图层就是表达现状用地、规划用地。具体的地类图例对应的字段YJDLMC(规划一级地类)。

打开工具箱下面—规划状态字段确定脚本,输入规划地类图斑与现状地类图斑两个参数,确定运行工具即可。

完成后会生成GHZT字段(没有会新建),字段会根据规划地类图斑的YJDLMC字段是否变化做出判断,“10”为现状,“20”为规划。

2、脚本代码

具体代码:

# -*- coding:utf-8 -*-
'''
判断规划用地与现状用地的区别,从而填写规划状态,与现状用地在地类与面积都一致,规划状态为“现状”:“10”,“规划”填“20”,“在(待)建”填“30”,“其他”填“90”。
'''
import sys
import arcpy
import os
reload(sys)
sys.setdefaultencoding('utf-8')

# 设置工作空间
arcpy.env.workspace="in_memory" # 可以使用内存工作空间提高性能
arcpy.env.overwriteOutput=True

# 输入参数
gh_tb=arcpy.GetParameterAsText(0) #规划图斑
xz_tb=arcpy.GetParameterAsText(1) #现状图斑
yjdlmc_field="YJDLMC" #一级地类名称字段
ghzt_field="GHZT" #要添加的规划状态字段

try:
    # 检查规划图斑中是否已存在GHZT字符安,不存在则添加
    fields=arcpy.ListFields(gh_tb)
    has_ghzt=False
    for field in fields:
        if field.name==ghzt_field:
            has_ghzt=True
            break
    if not has_ghzt:
        arcpy.AddField_management(gh_tb,ghzt_field,"TEXT",field_length=255)

    # 创建空间连接临时图层,找出规划图斑与现状图斑相交的部分
    temp_fc="in_memory/temp_identity"
    arcpy.Identity_analysis(gh_tb,xz_tb,temp_fc,join_attributes="ALL")
    # 创建字典存储每个规划图斑的FID及其对应的YJDLMC是否变化
    change_dict={}
    gh_oid_field=None 
    #标识结果中规划图斑的原始ID字段
    for field in arcpy.ListFields(temp_fc):
        if field.name.startswith("FID_"):
            gh_oid_field=field.name
            break

    # 使用游标遍历空间连接结果
    with arcpy.da.SearchCursor(temp_fc,[gh_oid_field,"YJDLMC",yjdlmc_field+"_1"]) as cursor:
        for row in cursor:
            gh_fid=row[0]
            gh_yjdlmc=row[1]
            xz_yjdlmc=row[2]
            # 初始化字典条目
            if gh_fid not in change_dict:
                change_dict[gh_fid]="10"
            # 检查是否发生变化(包含空值判断)
            if xz_yjdlmc is None or gh_yjdlmc!=xz_yjdlmc:
                change_dict[gh_fid] = "20"

    # 更新规划图斑的GHZT字段
    with arcpy.da.UpdateCursor(gh_tb,["OID@",ghzt_field]) as cursor:
        for row in cursor:
            fid = row[0]
            if fid in change_dict:
                row[1]=str(change_dict[fid])
            else:
                row[1]="10"
            cursor.updateRow(row)
    # 清理临时数据
    arcpy.Delete_management("in_memory")
    arcpy.AddMessage("finish")
except arcpy.ExecuteError:
    print(arcpy.GetMessages(2))
except Exception as e:
    arcpy.AddMessage("出现未知错误:%s" % str(e))

3、视频演示

规划状态字段生成工具

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2405109.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【PCIe总线】-- inbound、outbound配置

PCI、PCIe相关知识整理汇总 【PCIe总线】 -- PCI、PCIe相关实现 由之前的PCIe基础知识可知,pcie的组成有:RC(根节点)、siwtch(pcie桥)、EP(设备)。 RC和EP,以及EP和EP能…

分布式锁实战:Redisson vs. Redis 原生指令的性能对比

分布式锁实战:Redisson vs. Redis 原生指令的性能对比 引言 在DIY主题模板系统中,用户可自定义聊天室的背景、图标、动画等元素。当多个运营人员或用户同时修改同一模板时,若没有锁机制,可能出现“甲修改了背景色,乙…

react+taro 开发第五个小程序,解决拼音的学习

1.找一个文件夹 cmd 2.taro init 3.vscode 找开该文件夹cd help-letters 如:我的是(base) PS D:\react\help-letters> pnpm install 4.先编译一下吧。看下开发者工具什么反应。 pnpm dev:weapp 5.开始规则。我用cursor就是不成功。是不是要在这边差不多了&…

kafka(windows)

目录 介绍 下载 配置 测试 介绍 Kafka是一个分布式流媒体平台,类似于消息队列或企业信息传递系统。 下载 Kafka对于Zookeeper是强依赖,所以安装Kafka之前必须先安装zookeeper 官网:Apache Kafka 下载此安装包并解压 配置 新建log…

基于安卓的文件管理器程序开发研究源码数据库文档

摘 要 伴随着现代科技的发展潮流,移动互联网技术快速发展,各种基于通信技术的移动终端设备做的也越来越好了,现代智能手机大量的进入到了我们的生活中。电子产品的各种软硬技术技术的发展,操作系统的不断更新换代,谷歌…

EMC VNXe 存储系统日志收集方法

写在前面 有朋友找来看看VNXe的故障,这种问题总是要收集日志,顺便这里也分享给大家。 注意,VNXe和VNX 属于完全不同的产品,不要看名字很类似,操作系统已经完全重构了,如果说是否有联系,大概就…

从“人找政策”到“政策找人”:智能退税ERP数字化重构外贸生态

离境退税新政核心内容与外贸企业影响 (一)政策核心变化解析 退税商店网络扩容 新政明确鼓励在大型商圈、旅游景区、交通枢纽等境外旅客聚集地增设退税商店,并放宽备案条件至纳税信用M级企业。以上海为例,静安区计划新增1000家退…

以人类演示视频为提示,学习可泛化的机器人策略

25年5月来自清华大学、上海姚期智研究院和星动纪元(RoboEra)公司的论文“Learning Generalizable Robot Policy with Human Demonstration Video as a Prompt”。 最近的机器人学习方法通​​常依赖于从通过遥操作收集的大量机器人数据集中进行模仿学习…

SOC-ESP32S3部分:36-适配自己的板卡

飞书文档https://x509p6c8to.feishu.cn/wiki/RP4UwPrsKi4xuQkKLAAcKxD3n1b 如果你自己画了PCB板,需要把自己绘制的板卡配置小智AI工程,可以参考此文档。 下载源码 克隆或下载源码到本地,这里以1.5.5为例,大家可以自行修改其它版…

LLMs 系列科普文(8)

八、模型的自我认知 接下来我们聊聊另一种问题,即模型的自我认知。 网上经常经常可以看到人们会问大语言模型一些关于认知方面的问题,比如“你是什么模型?谁创造了你?” 说实话,其实这个问题有点无厘头。 之所以这么…

机器学习基础相关问题

机器学习相关的基础问题 K-means是否一定会收敛 K-means是否一定会收敛 K-means算法在有限步数内一定会收敛,但收敛到的可能是局部最优解而非全局最优解。以下是详细分析: K-means 的优化目标是最小化 样本到其所归属簇中心的距离平方和(SSE…

验证负载均衡与弹性伸缩

什么是弹性伸缩(Auto Scaling)? 弹性伸缩是指 云计算平台根据实时负载自动调整计算资源(如服务器实例、容器Pod)数量,以确保系统在高峰时保持稳定,在低谷时节省成本。 什么时候会触发弹性伸缩&…

Three.js中AR实现详解并详细介绍基于图像标记模式AR生成的详细步骤

文档地址 Three.js中AR实现详解 以下是Three.js中实现AR功能的详细解析,涵盖技术原理、实现步骤、核心组件及优化策略: 🧩 一、技术基础 AR.js框架的核心作用 AR.js是Three.js实现AR的基石,提供以下核心能力: 多模…

GeoBoundaries下载行政区划边界数据(提供中国资源shapefile)

要下载山东省济南市各个区的行政区划边界数据,你可以通过 geoBoundaries 提供的数据来实现。下面是详细步骤,包括网页操作和可选的 Python 自动化方式。 目录 ✅ 一、通过 geoBoundaries 官网手动下载1. 打开官网:2. 查找中国数据&#xff1a…

大模型如何选型?嵌入模型如何选型?

欢迎来到啾啾的博客🐱。 记录学习点滴。分享工作思考和实用技巧,偶尔也分享一些杂谈💬。 有很多很多不足的地方,欢迎评论交流,感谢您的阅读和评论😄。 目录 引言模型优劣认知与模型选择大模型(L…

开源大模型网关:One API实现主流AI模型API的统一管理与分发

以下是对One API的简单介绍: One API是一个使用go语言开发的大语言模型 API 管理与分发系统支持Docker一键快速部署,且资源占用小,高性能开箱支持多平台大模型快速接入,包括OpenAI、Gemini、xAI、Grop、Anthropic Claude、Ollama…

智慧充电:新能源汽车智慧充电桩的发展前景受哪些因素影响?

全球能源结构转型与碳中和目标的推进,新能源汽车产业迎来爆发式增长,而智慧充电桩作为其核心基础设施,发展前景备受关注。智慧充电不仅关乎用户充电体验的优化,更是电网平衡、能源效率提升的关键环节。 然而,其发展并…

【网站建设】不同类型网站如何选择服务器?建站项目实战总结

做了几个建站项目后,深刻体会到一件事:不同类型的网站,所采用的服务器策略是完全不同的。 如果选错了服务器方案,可能带来过高的成本、过低的性能,甚至上线失败。 这篇文章分享一下我在实战中的经验,供正在做建站项目的朋友参考。 🚩 1️⃣ 纯展示型网站 —— 静态服务…

iptables实验

实验一:搭建web服务,设置任何人能够通过80端口访问。 1.下载并启用httpd服务器 dnf -y install httpd 开启httpd服务器 systemctl start httpd 查看是否启用 下载并启用iptables,并关闭firewalld yum install iptable…

前后端分离开发 和 前端工程化

来源:黑马程序员JavaWeb开发教程,实现javaweb企业开发全流程(涵盖SpringMyBatisSpringMVCSpringBoot等)_哔哩哔哩_bilibili 前后端混合开发: 需要使用前端的技术栈开发前端的功能,又需要使用Java的技术栈…