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 opengis-dafgit 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/opengis-daf)<a href="https://agentmods.dev/skills/znlgis/opengis-skills/opengis-daf"><img src="https://agentmods.dev/badge/skills/znlgis/opengis-skills/opengis-daf/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/opengis-daf"><img src="https://agentmods.dev/badge/skills/znlgis/opengis-skills/opengis-daf.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.00110 | $0.05130 |
| Opus 5.5 | $0.00044 | $0.02052 |
| Sonnet 5.5 | $0.00022 | $0.01026 |
| Haiku 4.5 | $0.00011 | $0.00513 |
Grade A, and why
opengis-daf 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 today.
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 — 270 lines — stays where its author put it; the contents beside it link to each section on GitHub.
项目地址: https://github.com/znlgis/opengis-daf
版本: 仓库主线(截至 2026-10,无 Release tag、无 NuGet 包;以
global.json的 .NET SDK 10.0.301 为准)许可证: MIT License
文档: https://github.com/znlgis/opengis-daf/tree/main/docs(快速入门、方案配置指南、算子参考、CLI 参考)
底层依赖: GDAL/OGR 3.x、NetTopologySuite 2.6.0、Npgsql 10.0.3、Serilog 4.4.0(实测各
*.csproj)
概述
OpenGIS Data Analysis Framework(简称 OpenGisDAF / daf)是一个方案驱动、纯配置定义的 GIS 数据分析与数据质检框架:用一个 JSON 方案(AnalysisPlan)描述"输入数据 → 算子处理 → 输出目标"的完整流程,可复用、可版本化。核心能力:
- 方案驱动:纯 JSON 定义分析流程,内置 21 条方案校验规则(参数存在性/类型/范围、绑定完整性、DAG 环检测)
- 空间分析:缓冲区、裁剪、相交检查、包含检查、坐标系转换(CRS 全链路传播,Z 值保留)
- 属性操作:字段计算器(表达式 + 算术解析器)、空值填充
- 数据质检:几何有效性、属性完整性检查,QC 模式自动生成质量评分报告
- DAG 调度:Kahn 拓扑排序,
upstream绑定串联算子,超时/重试/失败策略控制 - 多数据源/多输出:
IFeatureSource(GeoJSON、Shapefile、PostGIS、内存)×IFeatureSink(控制台、GeoJSON、Shapefile、PostGIS) - 插件扩展:
AssemblyLoadContext动态加载算子 DLL,插件算子与内置算子在同一 DAG 中无区别 - 方案管理:list/create/copy/export、版本回退、跨版本 Diff、原子写入
环境要求: .NET SDK 10.0(仓库 global.json 已锁定版本)、Git(克隆时需 --recurse-submodules,子模块 opengis-utils-for-net 提供 GDAL 绑定)。Windows x64 / Linux x64 / macOS。
环境准备与快速上手
# 克隆(必须带子模块)
git clone --recurse-submodules https://github.com/znlgis/opengis-daf.git
cd opengis-daf
dotnet build # 或 .\build.ps1 / ./build.sh
# 验证安装
dotnet run --project src/OpenGisDAF.Cli -- help
# 校验方案(不执行)
daf validate --plan plans/my-analysis.json
# 执行分析/质检
daf run --plan plans/my-analysis.json
测试须分两步(.NET 10 SDK + xunit.v3 工具链下 dotnet test 同命令构建会报"运行了零个测试"并退出码 5):
dotnet build OpenGisDAF.slnx --configuration Release
dotnet test OpenGisDAF.slnx --configuration Release --no-build
仓库自带完全自包含的学习 Demo(demo/,虚构"新星市"合成数据,一键脚本 demo/run-demo.ps1 / run-demo.sh 依次执行构建 → 算子清单 → 校验 → 4 个方案 → 插件演示,并对退出码断言)。
方案配置(核心)
顶层结构
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
id |
string | 是 | 方案唯一标识 |
name |
string | 是 | 方案名称 |
version |
string | 是 | 语义化版本(如 "1.0.0") |
group |
string | 否 | 分组名(方案管理分类用) |
items |
array | 是 | 分析项列表(至少 1 个) |
executionPolicy |
object | 否 | failurePolicy: stopOnAny(默认,遇错即停)/ continueIndependent(继续独立项);maxParallelism 默认 4 |
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.
- today Changed · +1 lines 60596394913b
- 7d ago Changed · -3 lines · +15 tokens per session 03264b143ec4
- 12d ago Changed · +16 lines 3d8c496ecb0c
- 13d ago Changed · +19 lines a5578bc53b26
- 1mo ago Changed · +2 lines f81e30db7200
- 1mo ago First seen · 235 lines · 95 tokens per session scan A b79780029ec9
opengis-daf is a skill published in the GitHub repository znlgis/opengis-skills (75 stars, last pushed today), licensed MIT. It adds 110 tokens to every session and 5,130 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-09-10.
Other skills, from other repositories
geopandas-gis
Vector GIS analysis with GeoPandas: spatial joins, overlays, buffer/dissolve, choropleth maps, and rasterio integration for raster-vector workflows.
archaeological-gis
Use this Skill for archaeological GIS: site catchment analysis, viewshed computation, kernel density estimation, and spatial statistics with GeoPandas.
opentelemetry-net-instrumentation
Provides guidance for implementing OpenTelemetry instrumentation in .NET codebases, covering tracing (Activities/Spans), metrics, logs, naming conventions, error handling, performance, SDK setup, resources, context propagation, and API design best practices.
godot-optimization
Use when optimizing Godot games — profiler, draw calls, physics tuning, memory management, and common bottlenecks.
mcp
Build or consume Model Context Protocol (MCP) servers and clients in .NET using the official MCP C# SDK, including stdio, Streamable HTTP, tools, prompts, resources, and capability negotiation. USE FOR: .NET MCP servers or clients; stdio versus HTTP transport choices; tools, resources, prompts, completions, and…
migrate-xunit-to-xunit-v3
Migrate .NET test projects from xUnit.net v2 to xunit.v3 and fix v3 breaks. Use for package/CPM conversion, OutputType=Exe, preserving the VSTest or MTP runner (including projects currently using YTest.MTP.XUnit2), incompatible TFMs, async void tests, string-to-Type attributes, custom Fact/Theory/BeforeAfterTest…