收益:
- 能够在代码和工作流程生成中使用 AI,通过 QGIS 和 Python(例如 GeoPandas 等库)进行空间数据处理
- 能够在小样本数据上测试人工智能生成的空间代码,并针对坐标系和几何误差进行验证
- 能够了解数据机密性以及在实际项目数据上运行人工智能生成的脚本之前检查其需要。
规划单元中的重复性空间任务(修剪图层、绘图缓冲区、计算区域、组合表格)需要数小时,并且手动完成时会产生错误。有两种功能强大、免费且开源的工具可以自动执行这些任务:QGIS(一种桌面 GIS 软件)和 Python(一种带有空间数据库的编程语言,例如 GeoPandas、Shapely、Rasterio)。人工智能在为这些工具生成代码和工作流程方面的速度非常快:它根据一句话请求起草一份工作脚本。但人工智能编写的代码带有你看不到的假设——错误的坐标系、错误的单位、默默删除元素的操作。这就是为什么人工智能生成的每个空间代码都必须在小样本上读取和测试,然后才能在实际项目数据上运行。即使您不知道如何编码,本单元也会教授人工智能的安全空间自动化。
为什么选择 QGIS 和 Python
QGIS让您通过点击进行分析;它易于学习并包含一个 Python 控制台。另一方面,Python 允许您编写一次重复任务并在数百个文件中运行它们。 GeoPandas 是规划人员最实用的库,它将表格数据(pandas)与地理相结合:读取图层、过滤器、绘制缓冲区、用一行代码计算面积。 AI 很好地编写了 GeoPandas 代码;但看起来不错的代码并不总是正确的代码。
注意:人工智能编写的脚本可以毫无错误地运行,但仍然会产生完全错误的结果。 “有效”和“正确”是两个不同的东西。验证不是代码失败,而是结果与已知引用匹配。
另一个重要的概念是可重复性:您在公共机构中进行的分析应该能够在几个月后由其他人以相同的步骤重复。手动点击的操作不会被记住,无法审计;而Python脚本既是工作的记录,又重现相同的结果。存储使用人工智能生成的代码及其注释可以增强责任感和企业记忆。因此,目标是“可读、注释和存储的代码”,而不是“工作代码”。一个好习惯是在每个脚本的开头添加一个简短的描述块,说明它运行的数据、日期和目的。
使用人工智能生成代码的黄金规则
- 给出上下文。文件格式、CRS、列名称、您想要执行的操作。
- 求小。只完成一项工作的短代码比庞大的脚本更安全。
- 要求澄清。向AI打印每行代码的作用;不要运行您不理解的代码。
- 在样品上进行测试。首先在 10-20 条记录的样本数据上尝试一下。
- 与参考比较。将面积/距离与已知值进行比较。
- 备份。切勿覆盖主数据;在副本中工作。
一步一步:使用 AI 的安全空间脚本
- 明确任务。 “从地块图层中选择绿色区域,计算其面积,将 5000 平方米以上的面积写入单独的文件中。”
- 识别数据。格式(GeoPackage/Shapefile)、CRS、相关列名称。
- 打印代码+描述给AI。逐行评论。
- 完成 CRS 和单元控制。面积(平方米)或层数(公制 CRS)?
- 在样本数据上运行。目视检查结果。
- 通过参考进行验证。将地块的面积与其地契价值进行比较。
- 在主数据上运行它,将输出写入新文件。
弱提示/强提示
弱提示:“计算地块面积。”
AI在不知道坐标系、格式、列的情况下进行书写;该字段可能以错误的单位或错误的 CRS 出现。
强烈提示:“使用GeoPandas,读取一个GeoPackage图层('parcels.gpkg',公制国家系统,例如CRS:EPSG:5254)并将每个地块的面积(以m²为单位)写入新的'area_m2'列中。注释每一行代码。在面积计算之前添加一行,检查该图层是否采用公制CRS;如果不是,则发出警告。将输出写入新文件,不要更改原创。”
第二个提示会生成可审核的安全代码,因为它包含 CRS、单元、安全输出和描述。
四个可复制模板
任务:编写一段简短的 Python 代码,使用 GeoPandas 执行以下任务。用土耳其语注释每一行。操作:[...]输入文件:[...](格式,CRS:[...],相关列:[...])规则:不要更改原始文件,将输出写入新文件。操作前检查 CRS 是否为公制;如果没有,请警告。
任务:逐行解释以下Python/GeoPandas代码并标记风险:哪一行可以删除/覆盖数据,哪一步操作假设CRS或卷,哪一步在大数据上会很慢。更改代码;只是解释和警告。代码:[...]
任务:在实际数据上运行此代码之前编写一个小型测试计划。用什么样本数据、用什么预期结果、用什么参考价值来验证?给出一个清单。代码/操作:[...]
任务:将以下 QGIS 操作(单击步骤)描述为 QGIS 菜单路径和等效的 Python/GeoPandas 代码。指定差异和兴趣点(CRS、单位)。流程:[...]
表格:频繁的空间操作及其陷阱
交易
什么是
AI代码中的陷阱
验证
现场账户
查找多边形区域
字段在地理 CRS 中没有意义
与已知区域比较
缓冲器
边境地区
单位(度/米)误差
公制 CRS + 测量
空间聚合
关联图层
密钥错误/重复注册
记录计数控制
剪辑
与面积相切
越界数据丢失
比较输入/输出
重投影
CRS 取代
目标 CRS 错误
EPSG代码确认
三个迷你箱子
情况 1 — 无声覆盖。规划器直接在基础层上运行人工智能编写的脚本。该代码错误地应用了过滤器,删除了一半的图层,并将其保存在同一个文件中。由于没有备份,持续数天的数据都会丢失。教训:输出总是到新文件,主数据总是冗余的。
情况 2 — 缓冲区单位错误。一个团队请求为学校提供 500 英尺的通道缓冲区。 AI代码运行在geo CRS上; 500“度”的缓冲区覆盖了整个地图。由于团队在小样本上进行测试,因此它会在错误传递到主要数据之前捕获错误;添加并修复了对公制 CRS 的投影。测试的习惯可以预防灾难。
案例 3——解释性学习。不懂代码的规划者通过让 AI 解释每一行来生成连接代码。他在描述中看到“这一行掉落了无与伦比的记录”,并意识到这会丢失一些包裹;它向 AI 请求一个也保留不匹配项的版本。理解代码是安全使用代码的先决条件。
常见错误
- 直接在主数据上运行。始终处理副本,将输出写入新文件。
- 将“有效”误认为“正确”。无错误的代码可能会产生不正确的结果;对照参考进行验证。
- 假设 CRS 和体积。请务必检查面积和距离操作的公制 CRS。
- 运行你不理解的代码。在不询问解释且不知道这些线路的作用的情况下运行它是有风险的。
- 跳过这个小测试。在不尝试样本数据的情况下转向大数据是最常见的错误来源。
- 不假思索地将机密数据提供给云设备。生成代码时不要共享真实的包裹/人员数据;使用样本/匿名数据。
综上所述
QGIS 和 Python(尤其是 GeoPandas)自动执行规划中的重复空间任务;人工智能可以快速为这些工具生成代码。但人工智能在编写代码时会做出一些你看不到的假设:错误的 CRS、错误的卷、静默删除数据的操作。安全使用基于六项规则:给出上下文、询问一小部分、获得澄清、在示例中进行测试、通过引用进行验证、备份。 “有效”与“正确”不同。即使您不懂代码,您也可以通过理解每一行代码,利用人工智能实现安全的空间自动化,而无需共享机密数据。
应用任务
选择重复的空间任务(例如,计算图层中的面积并分隔阈值的顶部)。 (1) 使用第一个模板将代码+行描述打印到AI。 (2)检查与第二个模板相同代码的风险,找到至少一行“可能擦除数据/假定CRS”行。 (3)用第三个模板输出测试计划:哪些样本数据,哪些参考值。 (4) 写下在实际数据上运行代码之前将采取的三个安全步骤。
清单
- [ ] 我给了 AI 格式、CRS 和列上下文。
- [ ] 我解释了每一行代码;我没有运行我不理解的代码。
- [ ] 我想要简短的、单一功能的代码。
- [ ] 我在小样本数据上进行了测试,并目视检查了结果。
- [ ] 我用已知的参考值验证了结果。
- [ ] 我已备份主数据;我将输出写入新文件。
- [ ] 我没有将实际的机密数据提供给云设备;我使用匿名/样本数据。