@dsh-gis/dsh-opengis-skill 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/.editorconfig +19 -0
  2. package/CHANGELOG.md +96 -0
  3. package/LICENSE +21 -21
  4. package/README.md +91 -30
  5. package/THIRD_PARTY_NOTICES.md +37 -10
  6. package/assets/gdal/reference/raster-tools.md +538 -538
  7. package/assets/gdal/reference/vector-tools.md +149 -149
  8. package/assets/gdal-api/reference/raster-api.md +424 -424
  9. package/assets/gdal-api/reference/vector-api.md +724 -724
  10. package/assets/geometry-api-net/reference/geometry-types.md +243 -243
  11. package/assets/geopandas/reference/core-api.md +221 -221
  12. package/assets/geotools/reference/raster-rendering.md +108 -108
  13. package/assets/geotools/reference/vector-io.md +149 -149
  14. package/assets/jts/reference/geometry-operations.md +303 -303
  15. package/assets/mapsui/SKILL.md +283 -283
  16. package/assets/opengis-all/reference/data-stages.md +608 -608
  17. package/assets/opengis-all/reference/workflow-cheatsheets.md +324 -324
  18. package/assets/opengis-utils-for-java/reference/common-tasks.md +384 -384
  19. package/assets/opengis-utils-for-net/reference/code-patterns.md +124 -124
  20. package/assets/opengis-utils-for-net/reference/util-classes.md +291 -291
  21. package/assets/pyqgis/reference/processing-rendering.md +292 -292
  22. package/assets/pyqgis/reference/vector-raster-layers.md +318 -318
  23. package/assets/qgis-process/SKILL.md +414 -414
  24. package/assets/qgis-process/reference/algorithm-cheatsheet.md +194 -194
  25. package/assets/shapely/reference/operations-reference.md +199 -199
  26. package/cordis.patch.yml +6 -3
  27. package/lib/catalog.d.ts +50 -0
  28. package/lib/catalog.js +238 -0
  29. package/lib/index.d.ts +47 -6
  30. package/lib/index.js +32 -44
  31. package/lib/markdown-links.d.ts +11 -0
  32. package/lib/markdown-links.js +103 -0
  33. package/lib/skill-file.js +104 -17
  34. package/locale/en.json +1 -1
  35. package/locale/zh.json +1 -1
  36. package/package.json +11 -5
  37. package/upstream.json +64 -2
@@ -1,194 +1,194 @@
1
- # QGIS Process Algorithm Cheatsheet Reference
2
-
3
- Built-in algorithm cheatsheet, parameter types and typical workflow examples split from SKILL.md.
4
-
5
- ---
6
-
7
- ## 常用内置算法速查
8
-
9
- 以下列出常用的内置算法分类及代表性 ID:
10
-
11
- ### 矢量通用(native)
12
-
13
- | 算法 ID | 说明 |
14
- |---------|------|
15
- | `native:buffer` | 缓冲区分析 |
16
- | `native:clip` | 裁剪 |
17
- | `native:dissolve` | 融合 |
18
- | `native:intersection` | 交集 |
19
- | `native:union` | 联合 |
20
- | `native:difference` | 差集 |
21
- | `native:symmetricaldifference` | 对称差 |
22
- | `native:centroids` | 质心 |
23
- | `native:convexhull` | 凸包 |
24
- | `native:simplifygeometries` | 简化几何 |
25
- | `native:reprojectlayer` | 重投影 |
26
- | `native:mergevectorlayers` | 合并矢量图层 |
27
- | `native:splitvectorlayer` | 拆分矢量图层 |
28
- | `native:extractbyattribute` | 按属性提取 |
29
- | `native:extractbylocation` | 按位置提取 |
30
- | `native:joinattributesbylocation` | 按位置连接属性 |
31
- | `native:fixgeometries` | 修复几何 |
32
- | `native:countpointsinpolygon` | 多边形内点计数 |
33
- | `native:voronoipolygons` | 泰森多边形 |
34
- | `native:delaunaytriangulation` | Delaunay 三角剖分 |
35
- | `native:creategrid` | 创建网格 |
36
- | `native:randomextract` | 随机抽样 |
37
- | `native:addautoincrementalfield` | 添加自增字段 |
38
- | `native:fieldcalculator` | 字段计算器 |
39
-
40
- ### 栅格分析(native / gdal)
41
-
42
- | 算法 ID | 说明 |
43
- |---------|------|
44
- | `native:rasterlayerstatistics` | 栅格统计 |
45
- | `native:rastersurfacevolume` | 栅格曲面体积 |
46
- | `gdal:cliprasterbyextent` | 按范围裁剪栅格 |
47
- | `gdal:cliprasterbymask` | 按掩膜裁剪栅格 |
48
- | `gdal:merge` | 栅格合并 |
49
- | `gdal:warpreproject` | 栅格重投影 |
50
- | `gdal:contour` | 等值线提取 |
51
- | `gdal:polygonize` | 栅格转矢量 |
52
- | `gdal:rasterize` | 矢量转栅格 |
53
- | `gdal:hillshade` | 山体阴影 |
54
- | `gdal:slope` | 坡度分析 |
55
- | `gdal:aspect` | 坡向分析 |
56
- | `gdal:roughness` | 粗糙度 |
57
- | `gdal:buildvirtualraster` | 构建虚拟栅格(VRT) |
58
-
59
- ### 坐标参考系
60
-
61
- | 算法 ID | 说明 |
62
- |---------|------|
63
- | `native:reprojectlayer` | 矢量重投影 |
64
- | `gdal:warpreproject` | 栅格重投影 |
65
- | `native:assignprojection` | 指定投影(不变换坐标) |
66
-
67
- ### 点云(pdal)
68
-
69
- | 算法 ID | 说明 |
70
- |---------|------|
71
- | `pdal:info` | 点云信息 |
72
- | `pdal:clip` | 点云裁剪 |
73
- | `pdal:merge` | 点云合并 |
74
- | `pdal:thin` | 点云抽稀 |
75
- | `pdal:tile` | 点云瓦片化 |
76
- | `pdal:boundary` | 点云边界 |
77
- | `pdal:density` | 点云密度 |
78
- | `pdal:exportraster` | 点云转栅格 |
79
- | `pdal:exportvector` | 点云转矢量 |
80
-
81
- ---
82
-
83
- ## 参数类型参考
84
-
85
- `qgis_process` 支持的常见参数类型及命令行传值方式:
86
-
87
- | 参数类型 | 说明 | 命令行值示例 |
88
- |----------|------|-------------|
89
- | `source` / `vector` | 矢量数据源 | 文件路径 `input.shp`、`input.geojson` |
90
- | `raster` | 栅格图层 | 文件路径 `dem.tif` |
91
- | `sink` | 矢量输出目标 | 文件路径 `output.shp`、`output.gpkg` |
92
- | `rasterDestination` | 栅格输出目标 | 文件路径 `output.tif` |
93
- | `number` / `distance` / `area` | 数值 | `10`、`2.5` |
94
- | `string` | 字符串 | `"my_value"` |
95
- | `boolean` | 布尔值 | `true` / `false` |
96
- | `enum` | 枚举 | 数字索引 `0`、`1`、`2` |
97
- | `crs` | 坐标参考系 | `EPSG:4326`、`EPSG:3857` |
98
- | `extent` | 空间范围 | `xmin,xmax,ymin,ymax [EPSG:code]` |
99
- | `point` | 点坐标 | `x,y [EPSG:code]` |
100
- | `field` | 字段名 | 字段名字符串 |
101
- | `expression` | QGIS 表达式 | `"field_name * 2"` |
102
- | `multilayer` | 多图层 | 多次指定同一参数 |
103
- | `file` | 文件路径 | `/path/to/file` |
104
- | `folder` | 文件夹路径 | `/path/to/folder` |
105
-
106
- ---
107
-
108
- ## 典型工作流示例
109
-
110
- ### 示例 1:矢量数据格式转换(SHP → GeoJSON)
111
-
112
- ```bash
113
- # 使用 ogr2ogr 风格的转换,利用 QGIS 重投影能力
114
- qgis_process run native:reprojectlayer -- \
115
- INPUT=input.shp \
116
- TARGET_CRS=EPSG:4326 \
117
- OUTPUT=output.geojson
118
- ```
119
-
120
- ### 示例 2:批量缓冲区 + 融合
121
-
122
- ```bash
123
- # 第一步:缓冲区分析
124
- qgis_process run native:buffer -- \
125
- INPUT=points.shp \
126
- DISTANCE=1000 \
127
- SEGMENTS=16 \
128
- OUTPUT=/tmp/buffered.gpkg
129
-
130
- # 第二步:融合
131
- qgis_process run native:dissolve -- \
132
- INPUT=/tmp/buffered.gpkg \
133
- OUTPUT=dissolved.gpkg
134
- ```
135
-
136
- ### 示例 3:栅格裁剪 + 坡度分析
137
-
138
- ```bash
139
- # 裁剪 DEM
140
- qgis_process run gdal:cliprasterbymask -- \
141
- INPUT=dem.tif \
142
- MASK=boundary.shp \
143
- OUTPUT=/tmp/clipped_dem.tif
144
-
145
- # 坡度分析
146
- qgis_process run gdal:slope -- \
147
- INPUT=/tmp/clipped_dem.tif \
148
- OUTPUT=slope.tif
149
- ```
150
-
151
- ### 示例 4:使用 JSON 传参(适合 AI 自动化)
152
-
153
- ```bash
154
- cat <<'EOF' | qgis_process run native:buffer -
155
- {
156
- "ellipsoid": "EPSG:7030",
157
- "distance_units": "meters",
158
- "inputs": {
159
- "INPUT": "/data/roads.shp",
160
- "DISTANCE": 50,
161
- "SEGMENTS": 10,
162
- "END_CAP_STYLE": 0,
163
- "JOIN_STYLE": 0,
164
- "MITER_LIMIT": 2,
165
- "DISSOLVE": false,
166
- "OUTPUT": "/data/roads_buffer_50m.gpkg"
167
- }
168
- }
169
- EOF
170
- ```
171
-
172
- ### 示例 5:在脚本中解析 JSON 输出
173
-
174
- ```bash
175
- # 运行算法并捕获 JSON 输出
176
- RESULT=$(qgis_process run native:buffer --json -- \
177
- INPUT=source.shp DISTANCE=100 OUTPUT=buffered.shp)
178
-
179
- # 使用 jq 提取输出文件路径
180
- OUTPUT_PATH=$(echo "$RESULT" | jq -r '.results.OUTPUT')
181
- echo "输出文件: $OUTPUT_PATH"
182
- ```
183
-
184
- ### 示例 6:需要 QGIS 项目文件的算法
185
-
186
- ```bash
187
- qgis_process run native:printlayouttopdf \
188
- --project_path=/path/to/project.qgs -- \
189
- LAYOUT="My Layout" \
190
- OUTPUT=/output/map.pdf
191
- ```
192
-
193
- ---
194
-
1
+ # QGIS Process Algorithm Cheatsheet Reference
2
+
3
+ Built-in algorithm cheatsheet, parameter types and typical workflow examples split from SKILL.md.
4
+
5
+ ---
6
+
7
+ ## 常用内置算法速查
8
+
9
+ 以下列出常用的内置算法分类及代表性 ID:
10
+
11
+ ### 矢量通用(native)
12
+
13
+ | 算法 ID | 说明 |
14
+ |---------|------|
15
+ | `native:buffer` | 缓冲区分析 |
16
+ | `native:clip` | 裁剪 |
17
+ | `native:dissolve` | 融合 |
18
+ | `native:intersection` | 交集 |
19
+ | `native:union` | 联合 |
20
+ | `native:difference` | 差集 |
21
+ | `native:symmetricaldifference` | 对称差 |
22
+ | `native:centroids` | 质心 |
23
+ | `native:convexhull` | 凸包 |
24
+ | `native:simplifygeometries` | 简化几何 |
25
+ | `native:reprojectlayer` | 重投影 |
26
+ | `native:mergevectorlayers` | 合并矢量图层 |
27
+ | `native:splitvectorlayer` | 拆分矢量图层 |
28
+ | `native:extractbyattribute` | 按属性提取 |
29
+ | `native:extractbylocation` | 按位置提取 |
30
+ | `native:joinattributesbylocation` | 按位置连接属性 |
31
+ | `native:fixgeometries` | 修复几何 |
32
+ | `native:countpointsinpolygon` | 多边形内点计数 |
33
+ | `native:voronoipolygons` | 泰森多边形 |
34
+ | `native:delaunaytriangulation` | Delaunay 三角剖分 |
35
+ | `native:creategrid` | 创建网格 |
36
+ | `native:randomextract` | 随机抽样 |
37
+ | `native:addautoincrementalfield` | 添加自增字段 |
38
+ | `native:fieldcalculator` | 字段计算器 |
39
+
40
+ ### 栅格分析(native / gdal)
41
+
42
+ | 算法 ID | 说明 |
43
+ |---------|------|
44
+ | `native:rasterlayerstatistics` | 栅格统计 |
45
+ | `native:rastersurfacevolume` | 栅格曲面体积 |
46
+ | `gdal:cliprasterbyextent` | 按范围裁剪栅格 |
47
+ | `gdal:cliprasterbymask` | 按掩膜裁剪栅格 |
48
+ | `gdal:merge` | 栅格合并 |
49
+ | `gdal:warpreproject` | 栅格重投影 |
50
+ | `gdal:contour` | 等值线提取 |
51
+ | `gdal:polygonize` | 栅格转矢量 |
52
+ | `gdal:rasterize` | 矢量转栅格 |
53
+ | `gdal:hillshade` | 山体阴影 |
54
+ | `gdal:slope` | 坡度分析 |
55
+ | `gdal:aspect` | 坡向分析 |
56
+ | `gdal:roughness` | 粗糙度 |
57
+ | `gdal:buildvirtualraster` | 构建虚拟栅格(VRT) |
58
+
59
+ ### 坐标参考系
60
+
61
+ | 算法 ID | 说明 |
62
+ |---------|------|
63
+ | `native:reprojectlayer` | 矢量重投影 |
64
+ | `gdal:warpreproject` | 栅格重投影 |
65
+ | `native:assignprojection` | 指定投影(不变换坐标) |
66
+
67
+ ### 点云(pdal)
68
+
69
+ | 算法 ID | 说明 |
70
+ |---------|------|
71
+ | `pdal:info` | 点云信息 |
72
+ | `pdal:clip` | 点云裁剪 |
73
+ | `pdal:merge` | 点云合并 |
74
+ | `pdal:thin` | 点云抽稀 |
75
+ | `pdal:tile` | 点云瓦片化 |
76
+ | `pdal:boundary` | 点云边界 |
77
+ | `pdal:density` | 点云密度 |
78
+ | `pdal:exportraster` | 点云转栅格 |
79
+ | `pdal:exportvector` | 点云转矢量 |
80
+
81
+ ---
82
+
83
+ ## 参数类型参考
84
+
85
+ `qgis_process` 支持的常见参数类型及命令行传值方式:
86
+
87
+ | 参数类型 | 说明 | 命令行值示例 |
88
+ |----------|------|-------------|
89
+ | `source` / `vector` | 矢量数据源 | 文件路径 `input.shp`、`input.geojson` |
90
+ | `raster` | 栅格图层 | 文件路径 `dem.tif` |
91
+ | `sink` | 矢量输出目标 | 文件路径 `output.shp`、`output.gpkg` |
92
+ | `rasterDestination` | 栅格输出目标 | 文件路径 `output.tif` |
93
+ | `number` / `distance` / `area` | 数值 | `10`、`2.5` |
94
+ | `string` | 字符串 | `"my_value"` |
95
+ | `boolean` | 布尔值 | `true` / `false` |
96
+ | `enum` | 枚举 | 数字索引 `0`、`1`、`2` |
97
+ | `crs` | 坐标参考系 | `EPSG:4326`、`EPSG:3857` |
98
+ | `extent` | 空间范围 | `xmin,xmax,ymin,ymax [EPSG:code]` |
99
+ | `point` | 点坐标 | `x,y [EPSG:code]` |
100
+ | `field` | 字段名 | 字段名字符串 |
101
+ | `expression` | QGIS 表达式 | `"field_name * 2"` |
102
+ | `multilayer` | 多图层 | 多次指定同一参数 |
103
+ | `file` | 文件路径 | `/path/to/file` |
104
+ | `folder` | 文件夹路径 | `/path/to/folder` |
105
+
106
+ ---
107
+
108
+ ## 典型工作流示例
109
+
110
+ ### 示例 1:矢量数据格式转换(SHP → GeoJSON)
111
+
112
+ ```bash
113
+ # 使用 ogr2ogr 风格的转换,利用 QGIS 重投影能力
114
+ qgis_process run native:reprojectlayer -- \
115
+ INPUT=input.shp \
116
+ TARGET_CRS=EPSG:4326 \
117
+ OUTPUT=output.geojson
118
+ ```
119
+
120
+ ### 示例 2:批量缓冲区 + 融合
121
+
122
+ ```bash
123
+ # 第一步:缓冲区分析
124
+ qgis_process run native:buffer -- \
125
+ INPUT=points.shp \
126
+ DISTANCE=1000 \
127
+ SEGMENTS=16 \
128
+ OUTPUT=/tmp/buffered.gpkg
129
+
130
+ # 第二步:融合
131
+ qgis_process run native:dissolve -- \
132
+ INPUT=/tmp/buffered.gpkg \
133
+ OUTPUT=dissolved.gpkg
134
+ ```
135
+
136
+ ### 示例 3:栅格裁剪 + 坡度分析
137
+
138
+ ```bash
139
+ # 裁剪 DEM
140
+ qgis_process run gdal:cliprasterbymask -- \
141
+ INPUT=dem.tif \
142
+ MASK=boundary.shp \
143
+ OUTPUT=/tmp/clipped_dem.tif
144
+
145
+ # 坡度分析
146
+ qgis_process run gdal:slope -- \
147
+ INPUT=/tmp/clipped_dem.tif \
148
+ OUTPUT=slope.tif
149
+ ```
150
+
151
+ ### 示例 4:使用 JSON 传参(适合 AI 自动化)
152
+
153
+ ```bash
154
+ cat <<'EOF' | qgis_process run native:buffer -
155
+ {
156
+ "ellipsoid": "EPSG:7030",
157
+ "distance_units": "meters",
158
+ "inputs": {
159
+ "INPUT": "/data/roads.shp",
160
+ "DISTANCE": 50,
161
+ "SEGMENTS": 10,
162
+ "END_CAP_STYLE": 0,
163
+ "JOIN_STYLE": 0,
164
+ "MITER_LIMIT": 2,
165
+ "DISSOLVE": false,
166
+ "OUTPUT": "/data/roads_buffer_50m.gpkg"
167
+ }
168
+ }
169
+ EOF
170
+ ```
171
+
172
+ ### 示例 5:在脚本中解析 JSON 输出
173
+
174
+ ```bash
175
+ # 运行算法并捕获 JSON 输出
176
+ RESULT=$(qgis_process run native:buffer --json -- \
177
+ INPUT=source.shp DISTANCE=100 OUTPUT=buffered.shp)
178
+
179
+ # 使用 jq 提取输出文件路径
180
+ OUTPUT_PATH=$(echo "$RESULT" | jq -r '.results.OUTPUT')
181
+ echo "输出文件: $OUTPUT_PATH"
182
+ ```
183
+
184
+ ### 示例 6:需要 QGIS 项目文件的算法
185
+
186
+ ```bash
187
+ qgis_process run native:printlayouttopdf \
188
+ --project_path=/path/to/project.qgs -- \
189
+ LAYOUT="My Layout" \
190
+ OUTPUT=/output/map.pdf
191
+ ```
192
+
193
+ ---
194
+