国标库到省标汇交:先补结构,再对齐导出

副本升级、只加不减,以及为什么「对齐完」还不等于「能汇交」

城市国土空间监测作业里,有一个几乎每年都要重复的结构问题:国家下发的监测库是国标骨架,省里汇交却要省标图层和字段。 作业员若在源国标库上直接加字段、删图层,出了错难以回溯;若纯手工对照空壳库复制粘贴,又慢又容易漏。

我在河北省 2026 城市国土空间监测相关工具里,把这件事拆成两条可重复的流水线:

  1. 国标 → 省标副本:复制后只在副本上补图层、补字段,源库只读;
  2. 标注库对齐 → 导出:用省标空库做结构参照,先把作业库「补齐到能对齐」,再灌进空壳得到汇交库。

两条线解决的不是「算法新不新」,而是作业纪律:哪里可以改、哪里绝不能改、什么叫结构合规、什么叫汇交成果。

说明:具体图层名、字段名以当时省标为准,换年度可能调整;本文保留通用结构与原则,不展开某次任务的内部路径与客户信息。

两条流水线对照

国标转省标对齐导出
输入国家下发的监测 FileGDBA=省标空库,B=带数据的作业库
输出原名_省标.gdb(另留备份)对齐库(中间)+ …_导出.gdb(汇交)
对源数据源国标只读源作业库 B 只读
结构策略按省标清单新建/补字段对照 A,对 B 的副本只加不减
何时用刚拿到国标、要开始按省标填作业库字段杂、要交结构干净的汇交包

一、国标转省标:副本上升级,源库当文物

为什么必须复制

机关团体等图层在国标里可能仍要保留;省标又要求产业空间、学校备注、医疗拓展标识等扩展。若直接改源库:

  • 机关抽查「是否改动下发库」时说不清;
  • 补字段失败或中断,源库处于半新半旧;
  • 无法一键回到下发时的状态。

稳妥顺序是:

  1. 关闭 ArcMap / ArcCatalog 中对该 GDB 的占用;
  2. 生成源库完整备份(已有则不覆盖);
  3. 在副本上执行升级,得到作业用省标库;
  4. 脚本可重复执行:已存在的图层与字段跳过,不覆盖已有数据。

「可重复」比「一次成功」更重要。监测现场经常要试跑、重跑;跳过已补项,才能把工具当成日常按钮,而不是一次性冒险。

会补什么(结构层面)

典型动作分两类:

新建图层(放入细化数据集),例如产业空间面/点,并带上省标要求的标识码、分类、面积、阶段等字段。

在现有图层上补字段,例如:

  • 学校:校区类型等备注;
  • 医疗:拓展标识、人数等;
  • 公用设施:消防站等级、政府专职消防队等;
  • 公园绿地、应急避难:类型、容量、分类等。

有些对象不必新建图层:供热厂、广场等仍落在已有设施/绿地层,用分类码区分。这是口径设计,不是偷懒——乱建图层会让后续符号、质检、汇交清单全部膨胀。

环境现实

这类工具往往绑在 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 不参与写入
说不清「下发件是否被改过」备份 + 源只读,审计简单

监测类任务的责任链很长:国家下发 → 省级扩展 → 市级作业 → 汇交质检。工具若在任意一环写穿源库,返工成本会从「再跑一遍脚本」变成「政治与合同问题」。

四、和质检类工具的分工

国标/省标工具管结构与灌数;图数质检、上图名称质检管内容对不对。不要指望对齐导出顺便发现「名称与台账不一致」——那是另一条流水线的事。结构流水线越干净,质检流水线越少被「缺字段」这类数据集级问题淹没。

可带走的原则

  1. 下发库当文物,作业在副本上发生。
  2. 可重复执行:已有结构跳过,不覆盖业务已填数据。
  3. 对齐只加不减;删字段是导出阶段的显式决策。
  4. 对齐完 ≠ 能汇交;空壳灌数才是交件形态。
  5. 分类码能表达的,不要随意新建图层。
  6. 环境绑定 arcpy 时,交付「文件夹 + 一键」,不要交付「请先配置 PythonPath」。

换一个省、换一年监测,图层清单会变,但这六条多半仍在。结构工具的价值,是把「正确的胆小」固化成按钮,让作业员不必每次靠记忆决定敢不敢点。