单位 4 / 11

GIS/GIS 分析和空间查询

收益:

  • 能够利用AI设计缓冲区、交叉口、空间组合、邻里等GIS分析并逐步构建
  • 能够从自然语言生成属性和空间查询(SQL/表达式)并使它们适应QGIS/PostGIS环境
  • 能够验证 GIS 分析输出的拓扑一致性、投影适用性和面积/长度逻辑

GIS(地理信息系统;英文GIS)是存储、查询、分析和绘制位置数据的系统的总称。勘测工程师的大部分日常工作都在这里进行:“哪些地块距离这条溪流不到 50 米?”、“这两层重叠的区域在哪里?”、“每个街区有多少栋建筑物?”给出问题的答案,例如使用空间分析。在本单元中,我们将介绍如何使用人工智能来设计这些分析,从自然语言生成查询,并使它们适应 QGIS/PostGIS 环境。原理:AI构建分析并编写查询;结果的有效性仍然由工程师通过投影、拓扑和逻辑控制来保证。

先说基本术语。矢量数据用点、线和多边形(地块、道路、水井)来表示世界。栅格数据以单元/像素网格(高程模型、卫星图像)表示世界。属性是与几何形状相关的表信息(地块面积、所有者、岛屿/地块编号)。缓冲区是在几何体周围一定距离处创建的区域。空间连接根据空间关系(每个建筑物及其邻居)匹配两个图层。拓扑是几何图形之间的邻域/重叠/间隙规则。

人工智能在 GIS 分析中的作用

AI 在三个具体方面加速 GIS:

  1. 分析设计。 “以什么顺序处理哪些层,用什么工具来回答问题?”它针对这个问题提出了一个逐步的计划。这减少了思维负担,尤其是在复杂的多步骤分析中。
  2. 查询生成。将自然语言请求转换为 QGIS 表达式、SQL 或 PostGIS 函数。它将请求“面积小于 500 平方米且具有农业性质的地块”放入过滤器表达式中。
  3. 工作流程和代码生成。它将迭代分析转换为 Python/PyQGIS 脚本(我们在第 10 单元和第 11 单元中深入研究这个主题)。

但人工智能有一个严重的盲点:它看不到数据,它只看到你的食谱。它不知道该图层位于哪个CRS、属性列的确切名称、数据是否干净。因此,它生成的查询在语法上是正确的,但在您的数据上可能是错误的。

注意:距离和面积计算仅在公制(投影)CRS 上准确。由于度数计混淆,直接在地理坐标(度)中获取 50 m 缓冲区会给出完全不准确的结果。在分析之前将图层置于适当的投影中。

一步一步:构建空间分析

示例问题:“查找距溪流 100 m 以内且具有建筑许可的地块。”

  1. 澄清输入和 CRS。流层(线)、地块层(多边形),两者都必须采用公制 CRS(例如 TUREF/TM33)。
  2. 计划好步骤。到 AI:100 m 缓冲区到流→与图相交/选择→从属性过滤“许可”→结果计数。让它写出每个步骤的序列和输出。
  3. 生成查询。将过滤器表达式(“status”=“licensed”)和选择逻辑转换为 QGIS/PostGIS。
  4. 小样本测试。对一小部分数据而不是整个数据运行分析,并目视检查结果。
  5. 验证结果。计数是否合理(排名)?所选地块是否真的靠近河流(目视/拓扑检查)?这些字段有意义吗?

三个迷你案例:从数字来看

案例1——学位暴跌灾难。实习生将 100 单位缓冲区直接应用于 WGS84 geo CRS 中的地块图层;结果产生了半径约为 11 公里(1 度~111 公里)的荒谬区域。等级检查(“缓冲区面积不能是包裹大小的数千倍”)立即显示错误。当图层导入公制 CRS 时,缓冲区正确为 100 m。

情况 2 — 列名称不正确。 AI 为“符合农业条件的地块”生成了“qualified”=“agriculture”的表述;而列的真实名称是 PLOT_VASF,值是 FIELD。查询返回 0 个结果,没有任何错误。当工程师打开属性表并将实际的列名和值提供给AI时,查询得到了改善。教训:AI可以编出列名;给出实际原理图。

案例 3 — 拓扑问题。两个相邻区域边界层存在小间隙(条子)和重叠。由于这些错误,人工智能驱动的“总面积”分析与真实总面积的偏差约为 2%。经过拓扑控制和校正后,区域变得一致。教训:分析结果与输入几何图形一样清晰。

弱提示/强提示

弱提示:

编写一个查询来查找流附近的地块。

强力提示:

任务:为 QGIS 生成空间分析结构和表达式。上下文:-stream_layer:线,CRS EPSG:5256 (TUREF/TM33)-parcel_layer:多边形,CRS EPSG:5256,属性列:ADA_NO,Plot_NO,STATUS(值:'许可','未许可'),AREA_M2Question:选择距流近 100 m 且 STATUS = '许可'的地块,给出其编号和总面积。请求: 1) 对步骤进行排序(缓冲区 -> 空间选择 -> 属性过滤器)。 2) 写出每一步将使用哪个工具。 3) 提醒我距离/面积的公制 CRS 要求。 4)验证结果步骤(排名+视觉控制)。添加。

强大的提示给出实际的列名、CRS、值集和验证步骤;输出适合您的数据。

四个可复制模板

1) 创建分析计划:

编写分步 GIS 工作流程来回答以下空间问题:指定每个步骤的输入图层、使用的工具和输出图层。检查需要公制 CRS 的步骤。问题:[问题]。图层:[列表]

2)QGIS自然语言表达:

将以下过滤器转换为 QGIS 属性表达式。仅使用给定的列名和值;柱配件。询问是否存在不确定性。列/值:[方案]。请求:[过滤器]

3)PostGIS查询:

编写PostGIS SQL进行以下空间分析(ST_函数)。假设几何图形的SRID [srid];距离必须是公制的。解释查询并添加哈希查询以进行验证。分析:[定义]

4)结果合理性检验:

检查以下 GIS 分析结果的合理性:结果计数排名、字段/长度逻辑、空/重复记录、CRS 合规性。列出可疑点并写出可能的原因。结果总结:[总结]

GIS 分析工具比较

车辆

什么是

典型用法

注意

缓冲器

周围距离区域

保护带、接近度

需要公制 CRS

相交

减去公共区域

冲突分析

拓扑必须干净

空间连接

按地点匹配

楼宇邻里关系

关系类型(内部/交叉)

溶解(合并)

融合相同的属性

边界简化

属性选择

剪辑

根据限制进行切割

工作空间限制

边界几何是否正确?

常见错误

  • 计算 geo CRS 中的距离/面积。在分析之前不切换到公制投影。
  • 使用 AI 组成的列名称。没有给出真实的方案;沉默 0 个结果。
  • 对拓扑损坏的数据进行分析。间隙/重叠会导致空间和计数错误。
  • 混淆空间关系的类型。 “内部”和“相交”给出不同的结果。
  • 不对结果进行等级控制。没有注意到荒谬的字段/数字。
  • 盲目地浏览所有数据。适用于大数据,无需小样本测试。

总之

GIS 分析中的人工智能;它是规划工作流程、将自然语言请求转换为查询和生成代码的强大助手。但人工智能看不到数据;它看不到数据。您必须提供 CRS、实际列名称和拓扑质量。最关键的规则是距离和面积计算仅在公制 CRS 中准确。检查每个结果的顺序、拓扑一致性和逻辑;未经小样本测试,请勿将其应用于大数据。

应用任务

选择一个空间问题(例如“距离道路小于 25 m 的建筑物”)。输入图层、其 CRS 和实际属性列名称。 AI逐步生成分析方案和QGIS表达;然后通过三项检查来测试输出:(1) 是使用的指标 CRS,(2) 列名是否与实际模式匹配,(3) 是按顺序合理的结果数量。

清单

  • [ ] 我将图层导入公制 CRS(用于距离/面积)。
  • [ ]我把实际的属性列名称和值给了AI。
  • [ ] 我已经计划好了分析步骤和工具。
  • [ ] 我已正确选择空间关系类型(内/相交)。
  • [ ] 我检查了输入几何体的拓扑。
  • [ ] 我首先在一个小样本上测试了分析。
  • [ ] 我检查了结果的排名和逻辑。
  • [ ] 我保留了最终意见以供工程师批准。