ArcGIS | 02小技巧-三调地类转换

本文介绍如何使用ArcGIS及Python脚本从第三次国土调查数据中提取建设用地信息,并进一步转换为农用地和未利用地等三大类土地类型。
该文章已生成可运行项目,

本节将介绍在ArcGIS中如何将三调中的土地利用分类转换为土地管理中的三大类。

问题

问题:现有一个区域的三调数据,如何从中提取出对应的建设用地数据
细路:本质上也是一个分类问题,根据两个分类对应关系,建立分类规则,是上一节ArcGIS | 01小技巧-矢量按某个字段重分类的延申
数据自制

(数据自制)

三调地类与三大类对应关系

关键:建立两个用地类型的对应关系

关于三调中的土地利用现状分类与土地管理中的三大类分类(农用地、建设用地、未利用地)的对应关系,主要依据为国标文件,然后后面又对部分地类代码进行调整细化,具体如下:

  1. 首先是国标文件-土地利用现状分类
    在这里插入图片描述
    在这里插入图片描述
  2. 其次,后又发布相关工作方案调整文件等,如下图所示,对05地类进行细化调整
    在这里插入图片描述
    按照最新调整后的用地分类标准,可知建设用地主要包括以下地类代码:
建设用地 = ['05','06','07','08','09','10'(除去1006村路),'1109','1201']

步骤

字段计算器-Python

  1. 新建三大类字段,然后运行以下代码,即可提取三调中的建设用地地类,具体如下:
# 提取建设用地
def converse(dlbm):
    jsyd=['05H1','0508','0601','0602','0603','0701','0702','08H1','08H2','0809','0810','0901','0902','0903','0904','0905','0906','1001','1002','1003','1004','1005','1007','1008','1009','1109','1201']
    if dlbm in jsyd:
        return "建设用地"
    else:
        return "非建用地"

在这里插入图片描述
2. 结果如下图:
在这里插入图片描述
4. 基于提取建设用地步骤,添加农用地和未利用地对应关系即可实现三调地类转换为三大类:

# 转为三大类
def converse(dlbm):
    jsyd = ['05H1','0508','0601','...']
    nyd  = ['0101','0102','0103','...']
    wlyd = ['1101','1102','1105','...']
    if dlbm in jsyd:
        return "建设用地"
    elif dlbm in "nyd":
        return "农用地"
    elif dlbm in wlyd:
        reutrn "未利用地"
    else:
        return dlbm

将.py代码生成工具箱

代码包装成工具:新建工具箱-添加脚本

# 制作工具箱 注意编码问题
# -- coding:cp936 -*-
from imp import reload
import sys
reload(sys)
sys.setdefaultencoding("UTF-8")
import arcpy

inTable = arcpy.GetParameterAsText(0) # 输入
fieldvalue = arcpy.GetParameterAsText(1)  # dlbm
fieldName = arcpy.GetParameterAsText(2) # 三大类

expression_1 = "converse(!"+fieldvalue+"!)"
codeblock_1 = """
def converse(dlbm):
    jsyd = ['05H1','0508','0601','0602','0603','0701','0702','08H1','08H2','0809','0810','0901','0902','0903','0904','0905','0906','1001','1002','1003','1004','1005','1007','1008','1009','1109','1201']
    if dlbm in jsyd:
        return u"建设用地"
    else:
        return u"非建设用地"
"""
arcpy.CalculateField_management(inTable, fieldName, expression_1, "PYTHON_9.3", codeblock_1)

结果如下,依次输入数据和对应的字段即可:
在这里插入图片描述

参考资料

# 部分参考资料
https://openstd.samr.gov.cn/bzgk/gb/index
https://zrzyt.ah.gov.cn/xwdt/bzyw/114063281.html
https://www.edrawmax.cn/templates/file/1027920
https://www.docin.com/p-2147263041.html

下一节预告

本节通过ArcGIS-Python实现三调地类向三大类的转换。下一节,可能是多个数据库的合并或标记某个字段下重复的行。


在这里插入图片描述

本文章已经生成可运行项目
一、数据预处理阶段(都做) 1. OSM路网拓扑修复 导入路网: 菜单栏:文件→添加数据→添加XY数据(选择OSM导出的.csv,指定经纬度字段) 右键图层→数据→导出要素为shp格式 拓扑检查: python # ArcPy脚本批处理(需先创建拓扑规则) import arcpy arcpy.CreateTopology_management("Transportation.gdb", "Road_Topology") arcpy.AddFeatureClassToTopology_management("Road_Topology", "Roads", 1) arcpy.AddRuleToTopology_management("Road_Topology", "Must Not Have Dangles", "Roads") arcpy.ValidateTopology_management("Road_Topology") 2. 公交GPS数据时空连接 时间字段格式化: 右键GPS图层→属性→字段计算器: vb 将Unix时间戳转为ArcGIS可读格式 [Time_Formatted] = DateAdd("s", [timestamp]/1000, #1/1/1970#) 创建时空立方体: 工具箱→空间统计工具→创建时空立方体(间隔设为15分钟) 二、核心分析模块实现(秦,沈) 1. 动态等时圈生成(早高峰示例) 操作步骤: 打开Network Analyst工具栏→新建服务区 右键服务区图层→属性设置: 阻抗:TravelTime 默认中断值:5 10 15(分钟) 时间窗口:08:00 AM(勾选"使用时间") 2. 站点-人口失配分析 热点制图: 工具箱→空间统计工具→热点分析(Getis-Ord Gi*) 输入要素:公交站点 输入字段:客流量 邻域半径:500米 结果解读: 红点(高值聚类):需求未被满足区域 蓝点(低值聚类):站点过剩区域 维可视化实现(李,周) 1. ArcScene基础设置 高程基准设置: 菜单栏:场景属性→垂直 exaggeration设为3 右键图层→属性→基本高度选择:"浮动在自定义表面" 2. 换乘枢纽立体建模 python # 字段计算器生成维高度(Python解析器) def set_height(passenger, base=50): return base + (passenger / 1000) * 30 表达式:set_height(!日均客流量!) 四、自动化工具开发(张,彭) 1. ModelBuilder构建分析流程 模型示例:站点优化工具箱 新建模型→拖入以下工具: 创建缓冲区(500米) 空间连接(连接人口数据) 计算字段(服务评分) 设置迭代器:要素类迭代器遍历所有站点 2. Python工具箱模板 python import arcpy class Toolbox(object): def __init__(self): self.label = "公交优化工具" self.alias = "" self.tools = [StationOptimizer] class StationOptimizer(object): def __init__(self): self.label = "站点优化" def execute(self, parameters, messages): arcpy.Buffer_analysis(parameters[0], "buffer.shp", "500 Meters") arcpy.AddMessage("分析完成!") return 五、关键问题解决方案 1. 网络数据集构建报错 常见错误:未找到有效的路径 解决方法: 检查边线方向:网络数据集属性→方向→边线类型(需设为双向) 重建连通性:网络数据集属性→连通性→高程策略 2. 大数据处理优化 性能提升技巧: 启用后台处理:地理处理→地理处理选项→启用后台处理 分块处理脚本示例: python # 分块处理大型路网 for i in range(0, feature_count, 1000): arcpy.Select_analysis("Roads", f"Roads_{i}", f"OBJECTID >= {i} AND OBJECTID < {i+1000}") 六、成果输出示例 1. 等时圈动态图导出 布局视图→插入→时间滑块 设置时间间隔:6:00 AM - 10:00 PM 导出动画:文件→导出地图→选择GIF格式 2. 公交盲区报告自动生成 (扩展) 以下是针对城市公交网络优化分析的完整技术方案展开说明,包含专业级实施细节和进阶技巧: 一、数据预处理阶段增强方案 1. OSM路网拓扑修复(工业级处理流程) - 悬挂节点处理:采用缓冲区融合法自动延伸断头路(设置20米容差阈值) - 伪节点检测:使用ArcGIS拓扑检查器识别不应存在的中间节点(如道路交叉口缺失) - 道路等级标准化:根据OSM的highway标签统一转换为我国道路分类标准 2. 公交GPS数据时空立方体优化 - 动态时间间隔算法:基于AIC准则自动确定最佳时间分段(通常早晚高峰采用10分钟,平峰期30分钟) - 异常轨迹清洗:结合DBSCAN聚类算法剔除漂移点(参数建议:eps=50米,min_samples=3) 二、核心分析模块专业实现 1. 动态等时圈生成(多模式交通版) - 复合阻抗设置: - 步行阶段:速度1.2m/s,过街惩罚2分钟 - 公交阶段:结合实时到站数据动态计算 - 换乘惩罚:物理距离×1.5倍系数 - 时段敏感参数: ```markdown | 时段 | 车速系数 | 发车间隔 | 换乘惩罚 | |------------|----------|----------|----------| | 早高峰 | 0.7 | 5min | +30% | | 晚高峰 | 0.8 | 6min | +20% | | 平峰 | 1.0 | 10min | 基准值 | ``` 2. 站点-人口失配分析(多指标评估) - 空间匹配指数(SMI)计算: ``` SMI = (实际服务人口 - 预期服务人口) / 预期服务人口 ``` - 动态热点图渲染:按工作日/周末分别生成热力图层 维可视化高级技巧 1. 换乘枢纽立体建模(参数化设计) - 高度映射公式: ``` 立体高度 = 基础高度50m + log(客流量)×20 + 换乘线路数×10 ``` - 动态纹理映射:根据拥挤程度加载不同颜色材质(红/黄/绿) 2. 客流模拟动画制作 - 粒子系统参数设置: - 粒子大小:2-5px(根据乘客量缩放) - 流动速度:早高峰1.5倍速,平峰1倍速 - 颜色梯度:绿色(0-50人)→黄色(50-100)→红色(>100) 四、自动化工具开发规范 1. ModelBuilder质检流程 - 输入数据校验:自动检测坐标系一致性 - 中间结果清理:设置临时数据自动删除开关 - 日志记录:生成带时间戳的XML格式处理日志 2. Python工具箱企业级标准 - 错误代码体系: ```markdown | 代码范围 | 错误类型 | |----------|--------------------| | 1000-1999 | 数据输入错误 | | 2000-2999 | 空间分析异常 | | 3000-3999 | 系统资源不足 | ``` - 多语言支持:通过配置文件实现中英文切换 五、关键问题解决方案深化 1. 网络数据集构建专家建议 - 高程处理策略选择: - 平坦城市:忽略高程 - 山地城市:使用真实高程模型 - 高架道路:手动设置Z值覆盖 - 转弯特征优化:针对公交专用道设置禁止左转规则 2. 大数据处理性能白皮书 - 实测性能对比: ```markdown | 数据量 | 传统方法 | 分块处理 | 内存优化 | |----------|----------|----------|----------| | 50万节点 | 2.5h | 45min | 67% | | 200万路段| 8h+ | 2.1h | 75% | ``` - 分布式计算方案:推荐使用ArcGIS GeoAnalytics Server 六、成果输出专业标准 1. 等时圈动态图制作规范 - 时间轴标注:采用24小时制+AM/PM双标注 - 图例分级:使用Jenks自然断裂法分为5-7级 - 版权声明:在布局中嵌入数据来源说明 2. 公交盲区报告内容框架 ```markdown # 报告结构 1. 执行摘要(关键发现) 2. 分析方法论 - 数据来源表 - 分析流程图 3. 主要结果 - 盲区分布地图(1:5000) - 优先改造排名表 4. 实施建议 - 短期方案(3个月) - 长期规划(3年) ``` 行业应用案例参考: - 深圳福田中心区优化:通过等时圈分析发现晚高峰盲区,新增3条支线巴士后覆盖提升42% - 重庆山地公交系统:采用维网络分析优化8D立交站点布局,换乘时间减少28% - 北京朝阳区微循环:基于Voronoi分析整12个站点,接驳步行距离缩短至300米内 扩展建议: 1. 移动端验证:将优化结果导入ArcGIS Field Maps进行现场核查 2. 公众参与:通过Experience Builder创建公众意见收集平台 3. 持续监测:部署实时仪表盘监控优化效果(更新频率≥15分钟)
最新发布
06-02
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值