国标库到省标汇交:先补结构,再对齐导出
副本升级、只加不减,以及为什么「对齐完」还不等于「能汇交」
城市国土空间监测作业里,有一个几乎每年都要重复的结构问题:国家下发的监测库是国标骨架,省里汇交却要省标图层和字段。 作业员若在源国标库上直接加字段、删图层,出了错难以回溯;若纯手工对照空壳库复制粘贴,又慢又容易漏。
我在河北省 2026 城市国土空间监测相关工具里,把这件事拆成两条可重复的流水线:
- 国标 → 省标副本:复制后只在副本上补图层、补字段,源库只读;
- 标注库对齐 → 导出:用省标空库做结构参照,先把作业库「补齐到能对齐」,再灌进空壳得到汇交库。
两条线解决的不是「算法新不新」,而是作业纪律:哪里可以改、哪里绝不能改、什么叫结构合规、什么叫汇交成果。
说明:具体图层名、字段名以当时省标为准,换年度可能调整;本文保留通用结构与原则,不展开某次任务的内部路径与客户信息。
两条流水线对照
| 国标转省标 | 对齐导出 | |
|---|---|---|
| 输入 | 国家下发的监测 FileGDB | A=省标空库,B=带数据的作业库 |
| 输出 | 原名_省标.gdb(另留备份) | 对齐库(中间)+ …_导出.gdb(汇交) |
| 对源数据 | 源国标只读 | 源作业库 B 只读 |
| 结构策略 | 按省标清单新建/补字段 | 对照 A,对 B 的副本只加不减 |
| 何时用 | 刚拿到国标、要开始按省标填 | 作业库字段杂、要交结构干净的汇交包 |
一、国标转省标:副本上升级,源库当文物
为什么必须复制
机关团体等图层在国标里可能仍要保留;省标又要求产业空间、学校备注、医疗拓展标识等扩展。若直接改源库:
- 机关抽查「是否改动下发库」时说不清;
- 补字段失败或中断,源库处于半新半旧;
- 无法一键回到下发时的状态。
稳妥顺序是:
- 关闭 ArcMap / ArcCatalog 中对该 GDB 的占用;
- 生成源库完整备份(已有则不覆盖);
- 在副本上执行升级,得到作业用省标库;
- 脚本可重复执行:已存在的图层与字段跳过,不覆盖已有数据。
「可重复」比「一次成功」更重要。监测现场经常要试跑、重跑;跳过已补项,才能把工具当成日常按钮,而不是一次性冒险。
会补什么(结构层面)
典型动作分两类:
新建图层(放入细化数据集),例如产业空间面/点,并带上省标要求的标识码、分类、面积、阶段等字段。
在现有图层上补字段,例如:
- 学校:校区类型等备注;
- 医疗:拓展标识、人数等;
- 公用设施:消防站等级、政府专职消防队等;
- 公园绿地、应急避难:类型、容量、分类等。
有些对象不必新建图层:供热厂、广场等仍落在已有设施/绿地层,用分类码区分。这是口径设计,不是偷懒——乱建图层会让后续符号、质检、汇交清单全部膨胀。
环境现实
这类工具往往绑在 ArcGIS Desktop 10.x 自带的 Python 2.7(arcpy)上。对业务人员,正确的交付是「整个文件夹拷走 + 双击 bat」,由脚本自动寻找本机 ArcGIS 的 Python,而不是要求再装一套开发环境。黑窗口编码按中文 Windows 代码页处理,避免日志乱码把「失败原因」淹没。
常见失败几乎总是两类:GDB 仍被占用;或根本不是带细化数据集的城市监测国标库。把原因写进同目录日志,比弹一个模糊的「失败」有用得多。
二、对齐导出:结构合规 ≠ 汇交成果
只做「国标转省标」还不够。作业过程中,县级库常会多出临时字段、缺省标字段、图层齐但字段不齐。汇交方要的是:结构像省标空壳,内容是作业成果。
于是拆成两步。
第一步:对齐(只加不减)
- A:省标空库,只有结构;
- B:带图斑的作业库。
对齐时以 A 为清单,在 B 的副本上补齐缺失的图层与字段。原则是只加不减:
- 省标有、作业库无 → 补上;
- 作业库多出来的县级字段 → 保留,不在对齐阶段删掉。
「只加不减」承认现实:县级现场往往依赖额外字段做过程管理;对齐阶段的任务是「达到省标下限」,不是「格式化成空壳」。真要去掉多余字段,应发生在有明确汇交名单的导出阶段,而不是悄删作业库。
源库 B 始终只读。输出是对齐库;同名已存在时询问覆盖或改名,避免误盖。
第二步:导出(空壳灌数)
导出以 A 当空壳,把对齐库里的数据灌进去,得到汇交用 …_导出.gdb:
- 有作业图斑,不是空库;
- 结构跟省标空壳走;
- 可按配置做抽层、字段名单、空值赋值、查找替换、条件剔除。
很多人停在第一步就去交库,结果是:结构对话能过,汇交质检仍可能因多余字段、缺省值口径、图层名单失败。 对齐解决的是「作业库能不能对着省标继续干」;导出解决的是「交出去的那一份长什么样」。
界面与环境
对业务人员,一个窗口切换「第一流程对齐 / 第二流程导出」即可;输入选到 .gdb,输出选普通文件夹。exe 可以只做启动器,真正读写库仍走 ArcGIS 自带 Python——这是 Desktop 生态里务实的折中:免黑窗口,但不假装可以摆脱 arcpy 许可环境。
三、两步为什么都要「源只读」
| 风险 | 只读副本策略如何挡 |
|---|---|
| 误删国标图层 | 源国标不动,只动省标副本 |
| 对齐失败留下半残作业库 | 动的是 B 的副本 |
| 导出试错覆盖成品 | 输出询问覆盖/改名;源 B 不参与写入 |
| 说不清「下发件是否被改过」 | 备份 + 源只读,审计简单 |
监测类任务的责任链很长:国家下发 → 省级扩展 → 市级作业 → 汇交质检。工具若在任意一环写穿源库,返工成本会从「再跑一遍脚本」变成「政治与合同问题」。
四、和质检类工具的分工
国标/省标工具管结构与灌数;图数质检、上图名称质检管内容对不对。不要指望对齐导出顺便发现「名称与台账不一致」——那是另一条流水线的事。结构流水线越干净,质检流水线越少被「缺字段」这类数据集级问题淹没。
可带走的原则
- 下发库当文物,作业在副本上发生。
- 可重复执行:已有结构跳过,不覆盖业务已填数据。
- 对齐只加不减;删字段是导出阶段的显式决策。
- 对齐完 ≠ 能汇交;空壳灌数才是交件形态。
- 分类码能表达的,不要随意新建图层。
- 环境绑定 arcpy 时,交付「文件夹 + 一键」,不要交付「请先配置 PythonPath」。
换一个省、换一年监测,图层清单会变,但这六条多半仍在。结构工具的价值,是把「正确的胆小」固化成按钮,让作业员不必每次靠记忆决定敢不敢点。