当前位置: 首页 > article >正文

【ArcGIS】ArcGIS AI 助手----复现

github地址

korporalK/Archer-GIS-AI-Assitant:Archer 在 ArcGIS Pro 中将自然语言命令转换为自动化 GIS 工作流。它使用代理框架(计划-验证-执行)构建并由 LLM 提供支持,可简化空间分析、减少手动工作并使 GIS 更易于访问。Archer 具有模块化和可扩展性,可以集成其他工具和 API。

介绍

简介

一个功能强大的 GIS 助手应用程序,它将 ArcGIS Pro 功能与 AI 相结合,以帮助完成 GIS 任务。此应用程序利用 ArcGIS Pro Python 环境并与 Google 的 Gemini API 集成,为 GIS作提供智能助手。

概述

ArcGIS AI Assistant 通过以下方式为 GIS 专业人员和分析师提供帮助:

  • 提供与 GIS 数据和工具交互的聊天界面
  • 自动化常见的 GIS 工作流
  • 协助执行空间分析任务
  • 管理工作区和目录
  • 与外部数据源集成

先决条件

  • 已安装 ArcGIS Pro 3.x(使用其本机 conda 环境)
  • Python 3.11(包含在 ArcGIS Pro 中)
  • ArcPy 3.4(包含在 ArcGIS Pro 中)
  • Windows 10/11作系统
  • Google Gemini API 密钥 (必需)
  • Tavily API 密钥(可选,用于 Web 搜索功能)
  • NASA Earthdata 凭证(可选,用于 Landsat 数据下载)

环境设置

方法一

文件拷贝到pro的安装路径,并点击运行

requirements.txt和conda-requirements.txt都得拷贝

开始创建新环境 arcgis_llm ,并下载相关需求包

方法二

主要解决方法一中无法运行成功的情况

1.克隆环境

克隆环境 arcgis_llm

2.安装包

手动搜索并安装一下包,如果有的话就不需要安装,不需要指定包的版本号

fiona
rasteriolangchain
langchain-google-genai
langchain-community
langchain-core
langchain-text-splitters
python-dotenv
google-generativeaiaiohttp
aiofiles
requests
asyncio
nest-asyncio

3.验证环境是否安装成功

方法三

不断的更新包,包冲突严重

包介绍
fiona:用于读写地理空间数据文件,支持多种矢量格式,如Shapefile、GeoJSON等。
rasterio:用于读取和写入栅格地理空间数据,支持多种格式如GeoTIFF。
langchain:一个用于构建和运行复杂AI应用的框架,支持多种功能模块,如文本处理、模型集成等。
langchain-google-genai:用于将谷歌生成式人工智能模型(如Gemini)集成到LangChain中,实现高级AI应用。
langchain-community:LangChain社区版,包含社区贡献的扩展和工具。
langchain-core:LangChain的核心模块,提供基础的AI功能和组件。
langchain-text-splitters:用于分割文本数据,以便于进一步处理和分析。
python-dotenv:用于加载环境变量,简化配置文件管理。
google-generativeai:谷歌生成式AI模型的Python库,用于调用谷歌的AI服务。
aiohttp:一个基于异步I/O的HTTP客户端和服务器库,支持高并发的Web爬虫和API交互
。
aiofiles:用于在异步编程中处理文件I/O操作,与asyncio配合使用。
requests:用于发送HTTP请求的同步库,常用于Web开发和API调用。
asyncio:Python的异步编程库,支持非阻塞I/O操作,适用于高并发场景
。
nest-asyncio:在特定情况下嵌套使用asyncio事件循环的库,用于解决某些异步编程中的问题。

配置

API 密钥设置(需要翻墙)

也可以在界面进行设置

ArcGIS AI Assistant 需要多个 API 密钥才能实现完整功能:

Google Gemini API 密钥(必需)

AI 功能需要

网址:

Gemini API  |  Google AI for Developers

Tavily API 密钥(可选)

用于增强的 Web 搜索功能

网址:

Tavily AI

NASA Earthdata 凭证(可选)

用于下载 Landsat 影像

修改文件

修改文件名称

工作区配置

这步骤可以在界面进行设置

{"workspace": "E:/ArcGIS/project/MyProject/MyProject.gdb","watched_directories": ["E:/ArcGIS/project/MyProject"],"recent_files": [],"api_keys": {"gemini_api_key": "********","tavily_api_key": "********","earthdata_user": "********","earthdata_pass": "********","earthdata_token": "********"}
}

运行应用程序

设置python解释器

运行

支持的工具

Loaded 33 tools:
- add_field: 6 parameters
- append_features: 3 parameters
- aspect: 2 parameters
- buffer_features: 4 parameters
- calculate_field: 4 parameters
- calculate_ndvi: 3 parameters
- calculate_savi: 4 parameters
- calculate_tpi: 3 parameters
- clip_features: 3 parameters
- create_feature_class: 5 parameters
- define_projection: 2 parameters
- delete_features: 1 parameters
- dissolve_features: 5 parameters
- download_landsat_tool: 10 parameters
- erase_features: 3 parameters
- extract_by_mask: 3 parameters
- hillshade: 5 parameters
- intersect_features: 3 parameters
- list_fields: 1 parameters
- merge_features: 2 parameters
- project_features: 3 parameters
- raster_calculator: 3 parameters
- reclassify_raster: 5 parameters
- scan_external_directory_for_gis_files: 1 parameters
- scan_workspace_directory_for_gis_files: 1 parameters
- search_arcgis_online_content: 14 parameters
- select_features: 3 parameters
- slope: 4 parameters
- spatial_join: 6 parameters
- summary_statistics: 4 parameters
- union_features: 2 parameters
- view_attribute_table_rows: 3 parameters
- zonal_statistics_as_table: 12 parameters

运行示例

输入你好

建立缓冲区

运行结果

中文支持情况(建立缓冲区)

创建矢量

下载Landsat数据

尝试多次没有下载下来,获取我输入的信息较少

特征

  • 聊天界面:使用自然语言与 GIS AI 助手交互
  • Environment Management:配置工作区和目录
  • API 密钥管理:通过 GUI 安全地存储和管理 API 密钥
  • Directory Scanning:自动扫描目录以查找 GIS 文件
  • GIS 工具集成:访问各种 ArcGIS 工具和功能
  • 数据可视化:查看和分析 GIS 数据
  • Spatial Analysis:执行复杂的空间分析任务
  • 数据下载:下载外部数据源,例如 Landsat 影像

数据下载

源文件

https://download.csdn.net/download/qq_39397927/90912240?spm=1001.2014.3001.5501

python环境文件下载(由于包冲突所以花了较多时间去解决)

通过网盘分享的文件:arcgis_llm.zip
链接: https://pan.baidu.com/s/1nWbOXGB6tsH45D2Cy-qglw?pwd=1111 提取码: 1111

相关文章:

【ArcGIS】ArcGIS AI 助手----复现

github地址 korporalK/Archer-GIS-AI-Assitant:Archer 在 ArcGIS Pro 中将自然语言命令转换为自动化 GIS 工作流。它使用代理框架(计划-验证-执行)构建并由 LLM 提供支持,可简化空间分析、减少手动工作并使 GIS 更易于访问。Arch…...

使用 FFmpeg 将视频转换为高质量 GIF(保留原始尺寸和帧率)

在制作教程动图、产品展示、前端 UI 演示等场景中,我们经常需要将视频转换为体积合适且清晰的 GIF 动图。本文将详细介绍如何使用 FFmpeg 工具将视频转为高质量 GIF,包括: ✅ 保留原视频尺寸或自定义缩放✅ 保留原始帧率或自定义帧率✅ 使用调色板优化色彩质量✅ 降低体积同…...

《Java vs Go vs C++ vs C:四门编程语言的深度对比》

引言​​ 从底层硬件操作到云端分布式系统,Java、Go、C 和 C 四门语言各自占据不同生态位。本文从​​设计哲学​​、​​语法范式​​、​​性能特性​​、​​应用场景​​等维度进行对比,为开发者提供技术选型参考。 一、​​设计哲学与历史定位​​…...

充电枪IEC62196/EN 62196测试内容

充电枪IEC62196/EN 62196测试内容 一、机械性能测试 插拔力测试 交流充电接口的插入/拔出力需≤100N,直流接口≤140N。若使用助力装置,操作力仍需满足上述要求。 测试方法:通过弹簧秤或专用试验机(如Sun-CB设备)测…...

有效的字母异位符--LeetCode

题目 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的 字母异位词。 示例 1: 输入: s "anagram", t "nagaram" 输出: true示例 2: 输入: s "rat", t "car" 输出: false 思路一:排序 t 是 s …...

SAP ERP 系统拆分的七大挑战

在企业变革或管理运营风险时,剥离IT系统能带来显著效益,但SAP ERP系统的复杂性使得这项工作充满挑战。如果管理不当,可能会导致数据不一致、运营中断、合规风险和意外成本。由于SAP ERP系统深度集成于企业核心业务流程中,其拆分工…...

AcrelEMS 3.0智慧能源管理平台:构建企业微电网数智化中枢

安科瑞电气顾强 在"双碳"目标驱动下,企业能源管理正从粗放式运营向精细化、智能化转型。AcrelEMS 3.0智慧能源管理平台以微电网为核心载体,通过"感知-分析-决策-控制"的全链路数字化能力,助力工商企业、医疗机构、教育机…...

【HTML-12】HTML表格常用属性详解:从基础到高级应用

表格是HTML中最强大且常用的元素之一,它能够以结构化的方式展示数据。本文将全面介绍HTML表格的常用属性,帮助您创建美观、响应式且语义化的数据表格。 1. HTML表格基础结构 在深入了解属性之前,我们先回顾一下HTML表格的基本结构&#xff…...

Word转PDF--自动生成目录

1-Word文档中已经包含自动生成的目录; 2-选择“文件”; 3-另存为,PDF; 4-选择“选项”按钮,在弹出的窗口中,勾选“创建书签时使用标题”。...

MySQL组合索引优化策略

优化MySQL组合索引需要综合考虑查询模式、索引结构及数据库特性。以下是关键优化策略及示例: 1. 遵循最左前缀原则 策略:确保查询条件包含组合索引最左侧列。示例:索引(a,b,c)生效场景:WHERE a1 AND b2 -- ✔️ 使用a和b W…...

Spring MVC 的的核心原理与实践指南

一、Spring MVC 概述 Spring MVC 是 Spring 框架中的一个重要模块,用于构建基于 Java 的 Web 应用程序。它遵循模型-视图-控制器(MVC)设计模式,提供了一种结构化的方式来开发灵活、松耦合的 Web 应用。 Spring MVC 的特点&#xf…...

轻量级视觉语言模型 Dolphin:高效精准的文档结构化解析利器

在数字化办公和学术研究日益普及的今天,如何高效、准确地处理各类文档图像成为了一个亟需解决的问题。Dolphin 应运而生,作为一款基于异构锚点提示的多模态文档图像解析模型,它不仅打破了传统手动整理文档的繁琐流程,更以远超主流…...

如何安全配置数据库(MySQL/PostgreSQL/MongoDB)

数据库是许多应用程序的核心组成部分,因此保护数据库的安全性至关重要。无论是MySQL、PostgreSQL还是MongoDB,都需要经过适当的安全配置才能防止潜在的安全威胁。本文将介绍如何安全配置这些流行的数据库管理系统,以确保数据的保密性、完整性…...

将 Docker 镜像从服务器A迁移到服务器B的方法

在日常工作中,我们有时会需要将服务器 A上的镜像上传至服务器B上,下面给出具体操作方式,以镜像 postgres:15 为例进行讲解。 首先在服务器A上拉取 镜像 postgres:15 ,命令如下: docker pull postgres:15下面再将服务…...

git merge解冲突后,add、continue提交

git merge解冲突后,add、continue提交 git merge操作冲突后,需要手动解冲突,解完冲突后,需要: git add . 然后,进入一般的正常git代码提交流程。 git合并‘merge’其他分支的个别文件到当前branch_gitbash 合并branc…...

Lines of Thought in Large Language Models

Lines of Thought in Large Language Models 《Lines of Thought in Large Language Models》(大语言模型中的思维链)聚焦于分析大语言模型(LLMs)在生成文本时,其内部向量轨迹的统计特性。 核心目标是揭示LLMs复杂的“思维过程”(即文本生成时的隐藏状态变化)能否被简…...

八股战神-JVM知识速查

1.JVM组成 JVM由那些部分组成,运行流程是什么? JVM是Java程序的运行环境 组成部分: 类加载器:加载字节码文件到内存 运行时数据区:包括方法区,堆,栈,程序计数器,本地…...

机试 | STL | string | 文字处理软件

题目&#xff1a; P5734 【深基6.例6】文字处理软件 - 洛谷 不使用库函数 #include<stdio.h> #include <iostream> #include<string> using namespace std;int main() {int q;//第一行输入一个正整数q&#xff0c;表示操作次数string content;//第二行输入一…...

运动规划实战案例 | 图解基于状态晶格(State Lattice)的路径规划(附ROS C++/Python仿真)

目录 1 控制采样 vs 状态采样2 State Lattice路径规划2.1 算法流程2.2 Lattice运动基元生成2.3 几何代价函数2.4 运动学约束启发式 3 算法仿真3.1 ROS C仿真3.2 Python仿真 1 控制采样 vs 状态采样 控制采样的技术路线源自经典的运动学建模思想。这种方法将机器人的控制指令空…...

深入浅出对抗学习:概念、攻击、防御与代码实践

深入浅出对抗学习&#xff1a;概念、攻击、防御与代码实践 近年来&#xff0c;深度学习在图像识别、自然语言处理等领域取得了巨大成功。然而&#xff0c;研究表明&#xff0c;这些看似强大的模型却异常脆弱&#xff0c;容易受到**对抗样本&#xff08;Adversarial Examples&a…...

Neo4j(二) - 使用Cypher操作Neo4j

文章目录 前言一、Cypher简介二、数据库操作1. 创建数据库2. 查看数据库3. 删除数据库4. 切换数据库 三、节点、关系及属性操作1. 创建节点与关系1.1 语法1.2 示例 2. 查询数据2.1 语法2.2 示例 3. 更新数据3.1 语法3.2 示例 4. 删除节点与关系4.1 语法4.2 示例 5. 合并数据5.1…...

09、供应商管理数字化转型:从潜在评估到战略合作的系统化方法

在全球化竞争和供应链日益复杂的商业环境下&#xff0c;供应商管理已成为企业核心竞争力的关键组成部分。优秀的供应商管理体系不仅能确保物料和服务的稳定供应&#xff0c;更能成为企业创新、降本增效的战略资源。本文将系统性地介绍供应商管理的完整框架&#xff0c;从潜在供…...

AI时代新词-AI增强现实(AI - Enhanced Reality)

一、什么是AI增强现实&#xff08;AI - Enhanced Reality&#xff09;&#xff1f; AI增强现实&#xff08;AI - Enhanced Reality&#xff09;是指将人工智能&#xff08;AI&#xff09;技术与增强现实&#xff08;Augmented Reality&#xff0c;简称AR&#xff09;技术相结合…...

批量转存夸克网盘内容并分享实操教程

批量转存夸克网盘内容并分享 经常使用我AI工具&#xff08;圈友互联AI&#xff09;的应该在每日资源这里看到&#xff0c;会每天自动更新最新资源信息&#xff0c;这些资源是自动从各处爬取出来再批量转存进行分享处理的&#xff01; 今天就和大家分享下&#xff0c;如何对夸克…...

Swagger与go-zero框架生成和展示API文档详解

在现代API开发中&#xff0c;清晰、准确的接口文档是前后端协作的重要基础。作为一款功能强大的Go语言微服务框架&#xff0c;go-zero提供了简便的方式来生成Swagger文档&#xff0c;极大地提高了API开发的效率与质量。今天&#xff0c;我们将深入探讨Swagger的作用以及如何通过…...

“安康杯”安全生产知识竞赛活动流程方案

一、竞赛组织部门&#xff1a;排水公司安全生产办公室 二、竞赛说明&#xff1a; 1、由安全生产办公室组编辑、整理&#xff0c;安全生产领导小组审核。竞赛时由公司领导及各部门负责人对本次知识竞赛进行监督评比&#xff0c;以保证竞赛活动的公平、公正。本次竞赛活动由闫红…...

特征分解:线性代数在AI大模型中的核心工具

🧑 博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,10年以上C/C++, C#, Java等多种编程语言开发经验,拥有高级工程师证书;擅长C/C++、C#等开发语言,熟悉Java常用开发技术,能熟练应用常用数据库SQL server,Oracle,mysql,postgresql等进行开发应用…...

sqlite的拼接字段的方法(sqlite没有convert函数)

我在sqlserver 操作方式&#xff1a; /// <summary>///获取当前门店工资列表/// </summary>/// <param name"wheres">其他条件</param>/// <param name"ThisMendian">当前门店</param>/// <param name"IsNotU…...

【SSL部署与优化​】​​OCSP Stapling配置指南:减少证书验证延迟​​

以下是 通过 Nginx 和 Apache 启用 OCSP Stapling 的详细配置指南&#xff0c;帮助您减少证书验证延迟并提升 HTTPS 性能&#xff1a; 一、OCSP Stapling 核心原理 • 目的&#xff1a;服务器定期从 CA 获取 OCSP&#xff08;在线证书状态协议&#xff09;响应&#xff0c;缓存…...

【C#】Invalidate()的使用

Invalidate()的使用 Invalidate() 是 C# 中用于通知控件需要重新绘制的方法。它通常用于 Windows Forms 应用程序中&#xff0c;当想要更新控件的显示内容时使用。调用 Invalidate() 方法后&#xff0c;系统会安排对该控件进行重绘&#xff0c;这将导致后续调用 OnPaint 方法&…...