
点击蓝字 关注我们

学地理的写代码,逃不掉——批处理 NetCDF、调 GDAL 参数、改论文复现代码、跑 GEE 脚本
你们的流程是不是:遇到问题 → 打开浏览器 → ChatGPT → 复制代码 → 粘贴到终端 → 报错 → 再复制报错信息 → 再问 → 再粘贴。来回切窗口,来回复制粘贴,一个简单的数据处理脚本能折腾一上午。
新出的一个东西——Pi。直接在终端里跟它说话,它自己读你的代码、改你的文件、跑你的命令。不用切窗口。

01
OpenClaw 的底层,其实是它
先说一下 Pi 怎么被大家注意到的。
今年 GitHub 上最火的 AI 项目 OpenClaw,38.4 万 Star。很多人去翻它的源码,发现它的第三方声明里写了一句话:部分实现由 Pi(原名 pi-mono)改造而来。

顺着这条线索找过去,发现 Pi 自己也拿了 7.7 万 Star。还催生了一个 2 万 Star 的衍生项目 Oh My Pi,VS Code 里有 Pendant 插件,Emacs 有独立前端,社区还做了桌面端和移动端。

Pi 的作者 Mario Zechner,也是游戏开发框架 libGDX 的作者。他自己用 Claude Code 写代码,后来觉得功能越加越多,系统提示词和默认行为频繁变化——于是动手做了一套更小、更可控的东西。
GitHub:github.com/earendil-works/pi
02
四个工具,不到 1000 Token 的系统提示词
Pi 默认只给 AI 四个能力:
read:读文件write:创建或重写文件edit:精确改某几行bash:跑终端命令
就这四个。没有 MCP、没有子 Agent、没有计划模式、没有待办列表。作者的观点很简单——现在的模型已经非常熟悉怎么当 Coding Agent 了。给太多工具反而占上下文,留给项目代码的空间就少了。
它的系统提示词和工具描述加在一起,不到 1000 Token。
需要更复杂的功能?Pi 的答案是扩展系统。用 TypeScript 写一个扩展,注册新工具、新命令、快捷键、新的上下文压缩方式,甚至可以接管 Bash 执行。写完 /reload,当前会话直接生效。
这种设计的核心逻辑是:让工具适应你,不是你适应工具。 做地理数据处理的,可能只需要 read + bash + Python 环境就够了。做前端开发的,可能需要浏览器预览工具。每个人的核心不一样,没必要默认装一堆用不上的东西。

03
举个地理学人实际用的场景
假设你手上有 20 年的 VODCA CXKu 数据,2003 到 2021,每年 365 个 NetCDF 文件。你想把中国区域的数据提取出来,按月平均,画一张时间序列图。
以前的做法:打开 Jupyter → 写 xarray 代码 → 调试路径 → 处理内存 → 调 matplotlib 参数 → 出图。中间大概要 StackOverflow 三四次。
用 Pi 的做法:在数据目录里打开终端,启动 Pi,说一句话——
这个目录里是 2003 到 2021 年的每日 VODCA CXKu NetCDF 文件,按年份放在子文件夹里。帮我写一个 Python 脚本,提取中国区域(lat 18-55, lon 73-135)的 VOD 值,按月平均,画一张时间序列折线图。Pi 会自己打开几个文件看结构,确认变量名是 VODCA_CXKu,确定维度是 time/lat/lon,然后写脚本、跑起来、出图。如果中间报错——比如内存不够——它会自己改代码,把逐日读取改成按月循环。
实测下来,这种"把思路说出来,它自己搞定"的体验,比来回切网页问 ChatGPT 流畅太多。
04
怎么装上
Pi 是命令行程序,Node.js 22.19+ 就能跑。准备好环境后,通过 npm 全局安装:
npm install -g --ignore-scripts @earendil-works/pi-coding-agentmacOS 和 Linux 也可以使用官方安装脚本:
curl -fsSL https://pi.dev/install.sh | sh安装完成后,进入你希望 Pi 操作的项目目录:
cd /path/to/your-project pi第一次启动需要配置模型。进入 Pi 后输入:
/login它支持 Claude Pro/Max、ChatGPT Plus/Pro 和 GitHub Copilot 等订阅登录,也可以选择 API Key Provider。
如果你习惯使用环境变量,可以在启动前设置密钥:
export ANTHROPIC_API_KEY=sk-ant-....pi进入会话后,可以先让它熟悉项目:
阅读这个项目,告诉我它的目录结构、启动方式和测试命令。
输入 /model 可以切换模型。会话会自动保存,后面使用下面的命令继续:
pi -c需要在脚本或 CI 中运行一次性任务,可以使用:
pi -p "检查这个项目最近的改动,并列出可能的问题"
Pi 很小,但已经把 Agent 最重要的几层都准备好了。
你可以把它当成一个轻量 Coding Agent——帮你写遥感数据处理脚本、改论文复现代码、批量跑分析——也可以沿着它的 SDK 和扩展系统,继续造出你自己的地理学 AI 工具。
05
说清楚:它不是什么都能干
Pi 没有沙箱。它跑在你当前用户权限下,能读你的文件、执行你的命令、访问你的网络。处理陌生代码或者敏感数据时,建议放 Docker 或虚拟机里用。
它也不是万能的——轻量的代价是功能少。你需要什么就得自己装扩展,或者手写一个。如果你习惯了 Claude Code 那种开箱全配齐的体验,Pi 一开始会让你觉得"怎么什么都没有"。
但这也意味着你可以从一个很小的核心开始,只放进自己真正需要的东西。做地理数据处理的话,read+bash+Python——这三个就够 90% 的场景了。
06
点击下方卡片,关注 地理资料库
每天分享地理学/遥感/GIS 方向的 AI 工具、开源项目和科研效率技巧。
Pi 仓库:github.com/earendil-works/pi
你平时写遥感数据处理脚本用什么工具?Claude Code、Cursor、还是 ChatGPT?评论区聊聊。

点个赞吧

分享让更多人看看

点个喜欢吧
夜雨聆风