github地址
介绍
简介
一个功能强大的 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
rasterio
langchain
langchain-google-genai
langchain-community
langchain-core
langchain-text-splitters
python-dotenv
google-generativeai
aiohttp
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 搜索功能
网址:
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