name: cadastral-to-vector description: 把宗地图(栅格 PNG)转为矢量面要素类(FileGDB/Shapefile)。当用户需要把宗地图/地籍图转成 GDB/shp 面文件、从界址点坐标表生成宗地多边形、或判定 CGCS2000 高斯投影带号(EPSG)时使用。流程: OCR 提取界址点坐标表 → 自动判定 CGCS2000 3 度带带号与坐标轴 → 按序连成闭合多边形 → 写 FileGDB/Shapefile, 并用图上面积闭环自检。权属登记级精度。
Cadastral to Vector(宗地图转矢量)
把宗地图 PNG 转成权属登记可用的矢量面要素类。路线:OCR 提取界址点坐标表 → 自动判定 CGCS2000 3 度带带号+坐标轴 → 按序连成闭合多边形 → 写 FileGDB/Shapefile,用图上面积做闭环自检。
When to Use
- 宗地图/地籍图(PNG/JPG) → GDB 或 shp 面要素类
- 已有界址点坐标表文本 → 面要素类
- 需判定 CGCS2000 高斯投影带号(EPSG)
- 权属登记级精度(坐标精确、拓扑闭合)
Workflow
- 确认输入:宗地图 PNG(主) 或坐标表文本/CSV(备选)。问清是否权属登记级精度。
- OCR 提坐标+属性:
- 优先用
analyze_imageMCP(多模态,最准),prompt 要求逐位精确提取坐标表+属性(权利人/宗地号/面积/用途/四至),看不清标"不清"不臆测。 - 无 MCP 则跑
scripts/ocr_coords.py --method auto(paddleocr→tesseract)。 - 都不行让用户手动转录。
- 优先用
- 列坐标表给用户核对:OCR 结果必须先列给用户逐个核对(权属级不盲信)。核对后的坐标存为
pts.txt(每行点号,列A,列B,按界址线连接顺序)。 - 自动判定带号/轴/坐标系:跑
scripts/coords_to_feature.py --coords pts.txt --source <图> --detect-only,或按规则解释:- 带号前缀(8 位数,前 2 位∈25-45)的列 = 东坐标,另一列 = 北
- 带号 N → EPSG = 4488 + N,中央经线 = 3N
- 两列都无前缀 → 让用户提供带号 + 轴顺序
- 判定结果必须给用户确认(流程硬步骤):列出带号/中央经线/EPSG/东列/北列,用户确认后才继续。
- 属性字段:问用户要不要业务字段(权利人/宗地号/面积等,从 OCR 结果勾选);
source_file字段自动加(记录源文件路径,可追溯)。 - 写 GDB/shp:跑
scripts/coords_to_feature.py --out xxx.gdb --fig-area <图上面积> [--attrs-json ...]。arcpy 优先,无 arcpy 回退 GDAL;GDB 写不了回退 shp。 - 自检+交付:检查脚本输出的面积自检(PASS/FAIL);FAIL 则核对坐标。交付
.gdb/.shp,提示属性表含source_file。
Dependencies
- Python 3
- 写 GDB:arcpy(ArcGIS Pro 自带 arcgispro-py3)或 GDAL/osgeo ≥3.6(OpenFileGDB 驱动可创建)
- OCR:analyze_image MCP(优先) / paddleocr / tesseract(chi_sim) / 手动转录
Scripts
scripts/coords_to_feature.py— 坐标表 → GDB/shp 面要素类(自动判定 + arcpy/GDAL 回退 + source_file + 面积自检)scripts/ocr_coords.py— PNG → 坐标表+属性(paddleocr/tesseract 备选链)
Notes
- 权属登记级:坐标错一位是事故。OCR/自动判定结果一律经用户确认。
- 面积自检:计算面积 vs 图上面积,误差>0.5% 告警。轴搞反面积不变,自检查不出,靠步骤 5 人工确认轴顺序。
- 多宗地:当前支持单宗地(一图一面);多宗地未来扩展。
- shapefile 字段名限 10 字节,中文业务字段名会被截断,建议用 GDB 或英文字段名。