Skip to content
keros68Public

About

Windows tool for semi-automatic vectorization of scanned geologic section maps into DXF/GeoJSON candidates for human review, with a MapGIS 6.7 .WL/.WT bridge.

Resources

Stars

11 stars

Watchers

0 watching

Forks

Repository files navigation

GeoScan

GeoScan 是一个 Windows 桌面工具,把扫描的地质剖面图半自动矢量化成线和文字候选,导出 DXF 与 QGIS 对齐文件,或经本机 MapGIS 6.7 转成 .WL / .WT。

程序只出草稿。候选一律写成 checked=no,代码里没有一处写 checked=yes;成果要在 MapGIS、QGIS 或 CAD 里逐项人工确认。

中文为主,English summary below.

License: MIT Python tests

运行环境

Windows。MapGIS 桥接靠 Win32 消息驱动本机 MapGIS 的界面,在其他系统上不可用。

  • 安装版自带运行时和精简 GDAL,不需要 Python 或 QGIS,界面需要 WebView2(Win11 自带)。
  • 源码运行:Python 3.12+,numpy、opencv-python-headless、pillow;可选 extras ocr(rapidocr + onnxruntime)、mapgis(pywin32)、dev。
  • DXF 导出要 ogr2ogr,源码运行时用 MAPGIS_OGR2OGR / MAPGIS_GDAL_DATA 指向本机 GDAL。
  • 转 .WL / .WT 还要本机 MapGIS 6.7(W60_Conv.exe)和它的加密狗。

功能

矢量化:单张接受 tif/jpg/png/bmp,批量只扫文件夹里的 tif。线候选可选 hough(只出直线)或 trace(含曲线和闭合环)引擎;文字候选走 rapidocr,OCR 不可用时退回内置区域检测,只给位置不给文字。

输出:结果集中在输出目录的 MAPGIS_LOAD_READY:源 dpi 底图、同名 .tfw、毫米坐标 GeoJSON、线和文字的 DXF。区候选走 Shapefile,要显式开启。

MapGIS 转换:--conversion-mode cli 时程序拉起 W60_Conv.exe,用 Win32 菜单消息和剪贴板操作它的界面完成 DXF → .WL/.WT,再核对磁盘上确实有非空产物才算成功。转换期间它抢占前台窗口,不能在后台运行。

AI(可选,默认关):填任意 OpenAI 兼容的 chat/completions 接口。模型只从固定词表里提名操作(补断线、改 OCR 错字),不给坐标;坐标由代码算出并要求栅格上有墨迹佐证,地层代码一类内容一律拒绝。结果写进单独一层,原始候选不动,要不要用这层导出由 --line-export-source 决定。

快速开始

安装版:从 Releases 下载 GeoScanSetup.exe。不需要管理员权限,默认装在 %LOCALAPPDATA%\Programs\GeoScan;设置在 %LOCALAPPDATA%\GeoScan\config\,升级卸载都不删。点【检查更新】就地升级。

源码:

pip install -e ".[dev,ocr]"
pytest

python -m geoscan.production_program run --source-raster <图>.tif --map-id T01_0001 --conversion-mode cli
python -m geoscan.batch_runner run --project-root <工作目录> --source-dir <tif 文件夹>
cd ui && npm install && npm run tauri dev   # 控制台界面,需 Node + Rust/MSVC

打包与发布见 release/README.md。

自动化程度

  • 文字候选保证位置,不保证内容:认不出的写成 TXT_0001 这类占位,人工在 MapGIS 里改字。
  • 不判断地质含义,不猜边界、标注或地层代码。
  • 每次运行从冻结的原图重来,不复用上一轮的候选或转换产物。
  • 增强底图只为看图更清楚,矢量化和 OCR 不读它。
  • 界面只能看候选,不能在里面改;复核在 MapGIS / QGIS / CAD 里做。
  • 测试通过不等于图件合格。

隐私

  • API Key 用 Windows DPAPI 按当前用户加密,单独存成 mapgis_ai_key.dat,不进设置文件、源码或日志,复制到别的机器或账户上也解不开。
  • AI 默认关闭。一旦选了 provider,之后每次运行都会把整图的缩略 JPEG 发到你填的接口。
  • 更新检查只在点【检查更新】时发生,先问镜像 aidraw.cv,失败再回退 GitHub Releases。
  • 仓库不放地图、扫描件、标准文档、符号库或运行输出。

已知限制

  • 程序文件夹必须在全英文路径下,路径含中文时 GDAL 会失败;工作目录和输出目录不受限。
  • MapGIS 桥接是界面自动化,菜单项和命令 ID 按 MapGIS 6.7 写死,自动化测试覆盖不到,换版本可能失效。
  • 加密狗检查只看进程(默认 dog67.exe)在不在,不验证授权。

License

MIT,见 LICENSE。


English summary

GeoScan is a Windows desktop tool that semi-automatically vectorizes scanned geologic section maps into line and text candidates, exporting DXF and QGIS alignment files (.tfw + millimetre-unit GeoJSON), or — with MapGIS 6.7 installed locally — .WL / .WT.

It drafts; it does not decide. Every candidate is written checked=no. Text candidates carry reliable positions and unreliable content. The MapGIS step drives the vendor's GUI over Win32 messages and holds the foreground while it runs. AI is off by default and never supplies coordinates.

Windows users: download GeoScanSetup.exe from Releases. Developers: pip install -e ".[dev,ocr]" then pytest. License: MIT.

About

Windows tool for semi-automatic vectorization of scanned geologic section maps into DXF/GeoJSON candidates for human review, with a MapGIS 6.7 .WL/.WT bridge.

Resources

Stars

11 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages