告别手动转格式!GIS+AI Agent,200条乱数据转清晰地图
工作中最头疼的,莫过于处理各地提交上来的混乱数据。在整理一份黄河流域生态保护的工程数据时,我就被五花八门的经纬度格式彻底“打败”了。为了解决这个高频痛点,我动手封装了一个经纬度格式转换 Agent。本文案例中的数据,已对原始敏感信息进行了脱敏处理,仅截取了一个市的数据作为案例。【GIS与AI】
太原市 200 个点位的坐标,打开文件一看,血压直接上来了。同一列"经度"里,有五种写法:
112°23′46.4″E
112.496222
112 23 46.4
112.23.46
112°23'46"
五个部门,五种混乱。最绝的是用小数点分隔度分秒那种——我真不知道他们怎么想的。
按照以前的做法,我得写正则表达式、调试边界情况、跑一遍、改Bug、再跑一遍,大半天就没了。但这次我没这么干——我直接在 WorkBuddy 里建了个经纬度转换 Agent,把这套流程封装成技能包。半小时不到,200 条乱格式数据全转成十进制度,生成交互地图,清晰可查。
今天把这套思路拆解开,讲给你听。
第一步:先在 WorkBuddy 里建 Agent
WorkBuddy 支持自定义 Skill,本质就是把你常用的代码流程封装起来,以后直接调用。
我建的这个 Skill 叫coord-batch-toolkit,核心就三件事:
|
步骤 |
功能 |
|---|---|
|
① 格式识别与转换 |
DMS/DM/DD 混合格式 → 统一十进制度 |
|
② 转 Shapefile |
十进制度 CSV → 点 Shapefile(EPSG:4326) |
|
③ 生成交互地图 |
Folium 一键出 HTML 地图 |
Skill 里内置了parse_coord()核心函数,能自动识别这些格式:
|
格式名 |
示例经度 |
示例纬度 |
|---|---|---|
|
十进制度(DD) |
112.496222E |
38.138581N |
|
度分(DM) |
112°29.7734′E |
38°8.3489′N |
|
度分秒(DMS) |
112°29′46.4″E |
38°8′20.9″N |
|
混合分隔符 |
112 23 46.4 |
38 8 20.9 |
|
异常格式 |
112.23.46(小数点分隔) |
38.8.20.9 |
识别完之后自动转换,公式是:
DMS 转 DD:DD = 度 + 分/60 + 秒/3600
DM 转 DD:DD = 度 + 分/60
第二步:直接调用 Agent 处理数据
有了 Skill 之后,处理数据就简单了。把太原那 200 条数据丢给 Agent:

Agent 自动执行三步流程:
① 格式转换
Agent 内部调用 convert_csv()

转换完之后,200 条数据全部统一格式:
|
原始格式 |
转换结果 |
|---|---|
|
112°23′46.4″E |
112.496222 |
|
112.496222 |
112.496222 |
|
112 23 46.4 |
112.496222 |
|
112.23.46 |
112.496222 |
② 转 Shapefile
Agent 内部调用 coords_to_shp()

生成太原市采样点.shp,共 200 个点,带属性表。
③ 生成交互地图
Agent 内部调用 folium 生成地图

浏览器打开太原市采样点地图.html,地图自动居中太原,200 个点标出来,每个点点击能看到坐标。当然你也可以更新让它后续出图格式为png、jpg等,且制图这一块,我倾向让它调用R语言绘图包制图,比调用Python的出图结果更美观。

第三步:异常值检查
Agent 自动做了范围检查——经纬度必须在合法范围内:
经度:-180 ~ 180 纬度:-90 ~ 90
超出范围的会单独标记出来,我这份太原数据有 3 条异常(经度超过 180),查了一下是录入时多输了一位小数点,手动改完重新跑一遍就行了。且它会根据本地提供的行政区边界数据反向检查点位数据是否超出行政区,并给出结果。
这一步不要跳过。我之前有次没检查,结果有几个点跑到太平洋里去了——经纬度列反了。
为什么用 WorkBuddy 而不是纯 Python?
你可能会问:这些功能用Python也能写,何必整个Agent?
三个字:省、稳、易。
省(复用性):第一次搭这个Agent花了半天功夫。之后管它来的是300条还是500条,五种格式还是八种格式,我都是同一句指令调用。上周又来一份山西的数据,我两分钟就搞定指令,剩下的时间喝茶等结果。
稳(可维护性):如果坐标解析规则以后要升级(比如支持新格式),我只需要在这个Agent里改一次。要是散落在十个不同的脚本里,光找齐它们就能让人头秃。
易(上手门槛):对于不太熟悉编程或GIS全流程的同事,他们只需要知道这个Agent的存在,把数据喂给它,就能拿到结果,不需要理解背后的所有技术细节。
完整流程总结
整个流程:
建 Agent
→ 在 WorkBuddy 里建coord-batch-toolkitSkill(一次性投入)
调用 Agent
→ 喊一声@skill://coord-batch-toolkit,给数据路径
自动处理
→ 格式转换 → Shapefile → 交互地图
人工检查
→ 异常值处理(可选)
200 条乱格式数据,从原始文件到可查看的地图,半小时搞定。
福利包:经纬度转换 Skill 源码
我把这套 Agent 的源码打包了,包含:
coord_converter.py —— 格式识别与转换核心函数
coords_to_shp.py —— CSV 转 Shapefile
map_generator.py —— Folium 交互地图生成
SKILL.md —— 在 WorkBuddy 里安装用的配置文件
安装方法很简单:把整个coord-batch-toolkit文件夹放到~/.workbuddy/skills/目录下,重启 WorkBuddy 就能用。
获取方式:点赞 + 关注本号【GIS与AI】,私信发送「坐标转换」,我把完整源码发给你。
写在最后
GIS 这行,很多工作是重复性的——格式转换、坐标统一、批量处理。这些活以前得手写脚本,现在有了 WorkBuddy 这种工具,把它封装成 Agent,一次投入,长期复用。
若私信较多,下一篇我会将workbuddy如何搭建GIS助手完整教程整理出来,和大家交流学习,后续,也会从数据裁剪到分析出图全流程自动跑——如果你感兴趣,或者有其他想做的 GIS 自动化场景,留言告诉我。【GIS与AI】
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)