农经权数据整合到省包:字典兜底、字段归一与不能代填的边界
源是 SHP + 农经 MDB,交件是省标矢量与汇交库;空值、农田码和面积单位怎么处理
农经权汇交现场常见的输入是两套东西:地块矢量(多为 Shapefile)和权属库(农经 MDB)。省里要的却是另一套形态——列名按省标、字典按省码、面积用平方米,再外加一份按模板生成的汇交 MDB。中间若靠人工改字段名、手填空字典,错一次就是整县返工。
我在农经权数据整合工具里,把目标收成一句话:先把源数据转化成列名已对齐省标的中间结果,再同名透传导出矢量,最后按配置挂接生成汇交 MDB;能配置的兜底可以做,不能合法代填的身份字段绝不做。
说明:文中按通用流程写,不出现具体乡镇与内部路径;字段码以当时省汇交要求为准,换地区需重对字典与模板。
流水线一览
| 步骤 | 做什么 | 产出 |
|---|---|---|
| 导入 | 地块 SHP + 农经 MDB | 作业工程 |
| (建议)标识码回写 | 权属编码写回矢量侧 | 后续挂接更稳 |
| 可视化配置 | 字典、字段映射、MDB 源列 | 可改的 XML 配置 |
| ① 数据转化 | 源 → 中间 Result(列名=省标) | Result_ZD_* 等 |
| ② 省汇交矢量 | 绑定 Result,同名透传 + 系统补全 | 省标矢量包 |
| ③ 省汇交 MDB | Result 属性 + 农经表 → 模板库 | {区县码}…mdb + 报告 |
交件时通常是:矢量数据 + 汇交 MDB + 报告。中间 Result 不是多余一层——它把「乱七八糟的源列名」和「省标准列名」隔开,后面两步才敢做同名透传。
一、为什么要先转化成 Result
早期若直接「源 SHP → 省矢量」,映射表会同时承担:
- 源字段叫什么;
- 省字段叫什么;
- 缺了怎么补;
- 单位怎么换。
换一个县,源字段名一变,整张映射一起抖。更稳的拆法是:
- 转化:只负责把源变成「列名已经是省标」的 Result;
- 矢量导出:Result 上同名列自动透传,程序只补区县码、ID、界址地码等系统项;
- MDB 生成:按「省表要哪些列、从 Result 还是农经表读」另配一张表。
界址点/线在县级 SHP 上常缺地籍编码类字段时,导出阶段可以自动按规则补全,避免逼作业员手工改几千条界址表。补全规则要写进报告,不能静默到无人知晓。
二、字典空值兜底:省质检要码,源表经常是空的
省质检对权属人、农用地所有权等表有一批字典必填项。源数据里却经常空着,例如:
- 共有情况、性别;
- 土地所有权性质;
- 水域滩涂类型、养殖业方式(耕地场景下本就常空)。
若程序什么都不做,汇交报告会刷几百条「字典为空」。若程序写死「男 / 单独所有」又无法改,换项目口径就不适用。
做法是:字典默认值进配置文件,界面可改,空值时才落入默认,并在报告中可追溯。
默认值本身带业务假设(例如共有情况取「单独所有」、性别取某一码),必须允许甲方改成符合当地填写习惯的省码。程序提供的是「可配置的过检策略」,不是替人做权属认定。
三、基本农田:多源字段名,写入时归一成省码
「是否永久基本农田」在不同来源里可能叫一串相近名字。导出若只认某一个字段名,换县就会大面积空值,省侧又常把该字段当强校验。
更稳的约定:
- 配置里维护候选源字段列表,按实际图层勾选或指定;
- 读到的值再归一成省标码(例如 1=是 / 2=否),兼容「是/否、Y/N、1/2」等写法;
- 挂接失败时明确报「未读到农田字段」,不要静默留空却声称已处理。
这和监测里「国标字段 / 省标字段」是同一类问题:名字民主,码值专制——读的时候容忍多名,写的时候只出一种省码。
四、面积单位:亩和平米不能靠猜
省标面积只要平方米。源矢量有的县用亩,有的已经是平米。混用是面积类汇交错误的经典来源。
配置上应显式二选一(或按图层声明):
- 源是亩 → 乘换算系数再写入;
- 源是平米 → 直通。
不要做「看数值大小猜单位」。猜错一次,整县面积系统性偏移,比空字段更难发现。
五、程序不能代填的边界
有一类字段程序绝不脑补:合法证件号等身份关键项。源表为空或位数不合法时,应在报告里列清单,由甲方补全后再生成,而不是生成「看似完整」的假号。
说明书里写清「仍须甲方补全」,比上线后被质疑篡改身份数据安全。工具的信用,有时来自明确拒绝做什么。
同理,省模板里某些表根本不该从权属人表硬塞字段(例如模板结构变更后,某证号列已改挂到其它表)。映射要跟着模板走,过时映射应删掉,而不是继续 INSERT 导致整库失败。
六、配置两步化与可视化工作台
对业务人员,侧栏里至少要分得开:
| 配置页 | 管什么 |
|---|---|
| 字段映射 / 字典 | 权利类型、登记机关、共有情况、所有权性质等 |
| 省汇交矢量 | 地块 / 界址点 / 界址线字段对应;系统补全项 |
| 省汇交 MDB | 各汇交表从农经表或 Result 读哪些列 |
改配置应反写 XML,下次打开仍在。把项目值写死在程序里,换县就要发版——汇交工具最忌讳这件事。
生成 MDB 前做一次模板列宽 / 结构自检,把「模板与当前程序假设不一致」提前打在报告上,比跑到一半 OLE 报错友好。
七、和质检、结构类工具怎么分工
| 类型 | 农经权汇交里管什么 |
|---|---|
| 整合转化 / 省包导出 | 字典、映射、单位、中间 Result、交件形态 |
| 图数或结构质检 | 交件前内容体检(另文) |
| 国标省标结构工具 | 监测类库结构(另一业务线) |
整合工具不必假装能做完整省质检;质检工具也不必懂「Result 列名策略」。职责切开,现场培训才训得会。
可带走的原则
- 先对齐列名,再透传导出。 中间 Result 是隔舱,不是浪费。
- 字典空值可配置兜底,默认值必须可改、可追溯。
- 基本农田:多名读入,一码写出。
- 面积单位显式声明,禁止数值猜单位。
- 证件号等身份字段不代填;报告列清单。
- 映射跟着省模板走,过时映射宁可删掉。
农经权汇交看起来全是表格,骨子里仍是 GIS 数据工程:主键与挂接、编码体系、单位制、以及「机器可以补到哪一步、人必须签到哪一步」。把这几条边界写进工具和说明书,比再堆一个导出按钮更值钱。