当前位置: 首页 > news >正文

农村土地承包经营权二轮延包—生成地块的KJZB字段

"关于地块的空间坐标(KJZB)字段,可能稍微复杂一点,用脚本生成较好。空间坐标,目前有两种表达:方案一,根据地块上界址点的个数依次填上(如4个为J1/J2/J3/J4);方案二,根据地块上的界址点的界址点号填的(从编号1开始)。由于之前生成界址点是按照顺时针排的,采用方案一。"

1、数据准备

根据地块(DK.shp)要素图层上界址点(JZD.shp)要素图层中点的个数,给地块要素图层“KJZB”字段填写数据。要素图层:DK.shp、JZD.shp,地块要素图层“KJZB”字段如果不存在,会新建该字段。

地块的矢量数据如果有“KJZB”字段的,涉及到更新。建议将“KJZB”字段先都改为''。方便更新字段。

接下来打开工具的脚本,单击鼠标右键,选择属性,找到源,将源的路径替换你下载的py文件的路径。这样脚本才能使用。

2、脚本代码

脚本工具打开后,将地块、界址点填入,确定就能执行。

具体代码:

# -*- coding: utf-8 -*-
import arcpy
import sys
# 设置默认编码为UTF-8
reload(sys)
sys.setdefaultencoding('utf-8')# 设置工作空间和输入图层
arcpy.env.workspace = "C:/data"
dk_layer = arcpy.GetParameterAsText(0)  # 地块图层
jzd_layer = arcpy.GetParameterAsText(1)  # 界址点图层try:# 确保KJZB字段存在if "KJZB" not in [f.name for f in arcpy.ListFields(dk_layer)]:arcpy.AddField_management(dk_layer, "KJZB", "TEXT", field_length=255)# 使用空间连接统计每个地块包含的界址点temp_table = "in_memory/temp_join"arcpy.SpatialJoin_analysis(dk_layer, jzd_layer, temp_table,"JOIN_ONE_TO_ONE", "KEEP_ALL",match_option="CONTAINS")# 创建字典存储地块ID与点数量的映射count_dict = {}with arcpy.da.SearchCursor(temp_table, ["TARGET_FID", "Join_Count"]) as cursor:for row in cursor:count_dict[row[0]] = row[1]# 更新KJZB字段with arcpy.da.UpdateCursor(dk_layer, ["OID@", "KJZB"]) as cursor:for row in cursor:if row[0] in count_dict:count = count_dict[row[0]]jzd_list = ["J{}".format(i+1) for i in range(count)]row[1] = "/".join(jzd_list)cursor.updateRow(row)# 清理临时数据arcpy.Delete_management(temp_table)arcpy.AddMessage( u"处理完成!")except arcpy.ExecuteError as e:arcpy.AddError("地理处理失败: {}".format(e))
except Exception as e:arcpy.AddWarning("其他错误: {}".format(e))

3、视频演示

具体的操作视频:

生成地块的空间坐标

http://www.xdnf.cn/news/725707.html

相关文章:

  • React---day5
  • Flutter 4.x 版本 webview_flutter 嵌套H5
  • 自证式推理训练:大模型告别第三方打分的新纪元
  • GitHub 趋势日报 (2025年05月29日)
  • FPGA管脚类型,及选择
  • Vue3处理number输入框避免NaN
  • 2025年渗透测试面试题总结-匿名[校招]攻防研究员(应用安全)(题目+回答)
  • 【解决办法】Git报错error: src refspec main does not match any.
  • 使用 SymPy 操作三维向量的反对称矩阵
  • STL解析——vector的使用及模拟实现
  • 缺页中断(Page Fault)详解
  • Marshalling与Demarshalling深度解析
  • PyTorch学习(1):张量(Tensor)核心操作详解
  • Trust Tickets(跨域信任票据):内网渗透中的Kerberos信任票据滥用技术
  • MacOs 安装局域网 gitlab 记录
  • VSCode无法转到定义python源码(ctrl加单击不跳转)
  • React 项目中封装 Excel 导入导出组件:技术分享与实践
  • TF 卡 U1 与 U3 的核心差异解析:从速度标准到应用场景
  • 单细胞注释前沿:CASSIA——无参考、可解释、自动化细胞注释的大语言模型
  • docker笔记
  • AI对软件工程的影响及未来发展路径分析报告
  • AI与软件工程结合的未来三年发展路径分析
  • MySQL数据归档利器:pt-archiver原理剖析与实战指南
  • Hive的JOIN操作如何优化?
  • 针对Helsinki-NLP/opus-mt-zh-en模型进行双向互翻的微调
  • 解决 maven编译项目-Fatal error compiling: 无效的目标发行版: 21 -> [Help 1]
  • 1.3HarmonyOS NEXT统一开发范式与跨端适配:开启高效跨设备应用开发新时代
  • 【TTS】基于GRPO的流匹配文本到语音改进:F5R-TTS
  • 搭建最新版开源监控平台SigNoz踩的坑
  • 从收货到上架,海外仓系统如何智能优化入库管理?