Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add znlgis/opengis-skills --skill projgit clone --depth 1 https://github.com/znlgis/opengis-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/znlgis/opengis-skills/proj)<a href="https://agentmods.dev/skills/znlgis/opengis-skills/proj"><img src="https://agentmods.dev/badge/skills/znlgis/opengis-skills/proj/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/znlgis/opengis-skills/proj"><img src="https://agentmods.dev/badge/skills/znlgis/opengis-skills/proj.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00091 | $0.04406 |
| Opus 5.5 | $0.00036 | $0.01762 |
| Sonnet 5.5 | $0.00018 | $0.00881 |
| Haiku 4.5 | $0.00009 | $0.00441 |
Grade A, and why
proj scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 347 lines — stays where its author put it; the contents beside it link to each section on GitHub.
项目地址: https://github.com/OSGeo/PROJ
官方文档: https://proj.org/
命令行文档: https://proj.org/en/stable/apps/index.html
最新版本: 9.9.0(截至 2026-10,PROJ 版本号即其数据版本)
许可证: MIT
概述
PROJ 是 OSGeo 维护的坐标转换与投影库,也是 GDAL、QGIS、PostGIS 等软件坐标运算的底层引擎。它将坐标系与转换参数存储于 SQLite 数据库 proj.db,并通过命令行工具暴露查询与转换能力:
projinfo— 查询 CRS 定义、查找两坐标系之间的转换操作、导出 WKT/PROJJSONcs2cs— 在任意两个可定义的坐标系之间做坐标转换(含基准面转换)proj— 在同一基准面内做地理坐标与投影坐标的正反算cct— 4D(含时间)坐标转换,输入为点列表projsync— 从 PROJ CDN 下载基准面转换所需的网格文件proj.db— SQLite 数据库,内含 EPSG 数据集与坐标转换记录
环境准备
验证安装
projinfo --version # 输出版本与 proj.db 路径,推荐用于验证
projinfo --searchpaths # 列出资源搜索路径
proj 直接执行会进入交互模式,不作为版本检查命令。
安装方法
Linux (Debian/Ubuntu)
apt-get update
apt-get install proj-bin proj-data
Linux (CentOS/RHEL/Fedora)
yum install proj proj-devel # 或 dnf install proj proj-devel
macOS (Homebrew)
brew install proj
Conda(跨平台)
conda install -c conda-forge proj
Docker
docker run -it osgeo/proj:latest bash
Windows
安装 OSGeo4W 或 conda 发行版;GDAL/QGIS 的 Windows 安装包已内置 PROJ,无需单独安装。
数据与网络配置
# PROJ 9.1 起使用 PROJ_DATA(旧名为 PROJ_LIB,9.1 仍兼容)
export PROJ_DATA=/usr/share/proj
# 允许按需从 CDN 下载转换网格
export PROJ_NETWORK=ON
proj.db 必须可读,库才能正常工作;若报 Cannot find proj.db,请核对 PROJ_DATA 指向的目录。
核心 API/命令
projinfo — CRS 与转换操作查询
查询单个对象(默认按 CRS 解释,-k 可指定 crs|operation|datum|ensemble|ellipsoid):
# 查询 CRS,输出 PROJ 字符串与 WKT2:2019
projinfo EPSG:4326
# 以 PROJJSON 输出(-q 仅输出字符串本体)
projinfo GDA94 -o PROJJSON -q
# WKT1:GDAL 单行输出
projinfo -o WKT1:GDAL --single-line EPSG:25832
# 按名称识别,给出最接近数据库对象的概率
projinfo --identify EPSG:4326
# 将 2D CRS 提升为 3D
projinfo EPSG:4326 --3d
查找两坐标系之间的坐标转换操作:
# -s 源 CRS,-t 目标 CRS
projinfo -s EPSG:4326 -t EPSG:32650
# 限定作用范围与输出摘要
projinfo -s NAD27 -t EPSG:4269 --area "USA - Missouri" --summary
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago Changed · -11 lines · +9 tokens per session 9614715a7332
- 10d ago First seen · 358 lines · 82 tokens per session scan A 42d1cb70c732
proj is a skill published in the GitHub repository znlgis/opengis-skills (72 stars, last pushed 6d ago), licensed MIT. It adds 91 tokens to every session and 4,406 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-16.
Other skills, from other repositories
swmm-end-to-end
Top-level orchestration skill for agentic SWMM modelling. Use when an agent needs one entrypoint that decides which module tools to run, in what order, and when to stop, for example to build, run, QA, and optionally calibrate a SWMM case from prepared or partially prepared inputs.
swmm-calibration
Calibration and validation scaffold for EPA SWMM. Use when an agent needs to (1) compare simulated vs observed flow, (2) evaluate candidate parameter sets, (3) rank explicit candidates by an objective, (4) run a bounded random / LHS / adaptive search for the best-fitting parameters, (5) run a publication-grade SCE-UA…
swmm-gis
GIS/DEM preprocessing for SWMM experiments using the user's own QGIS/GRASS layers. Use when the user asks to (1) delineate subcatchments through QGIS/GRASS (standard or entropy-guided), (2) preprocess QGIS-derived subcatchment polygons into builder-ready CSV, (3) identify high-entropy hotspot subcatchments, or (4)…
swmm-uncertainty
Parameter and forcing uncertainty for EPA SWMM. Without observed flow, call propagateparameterranges (global ranges, one SWMM run per sample, peak spread); the Morris/OAT/Sobol tools need an observed series. Use when an agent needs to (1) propagate parameter uncertainty through SWMM (fuzzy alpha-cut or Monte Carlo)…
swmm-anywhere
Synthesize a plausible SWMM drainage network from public data (OSM streets + DEM) when NO real pipe-network data exists — input is just a bbox. Use ONLY when the user has no pipe shapefile/CAD/GIS data, or to establish a baseline before real data arrives; if real pipe data exists, route to swmm-network or swmm-gis…
swmm-network
Network QA of an existing INP (disconnected nodes, missing outfalls, adverse or zero slopes) is one call, networkqa, so call it first. Also builds, validates and routes SWMM pipe-network models from raw municipal shapefiles or structured GIS/CAD exports. Use when handling junctions, conduits, outfalls, xsections…