Deepseek+我!写一个ArcGIS Pro批量下载高清影像(谷歌、天地图、ESRI等)工具给大家

深夜,我盯着屏幕上的高清影像(谷歌、天地图、ESRI),手指在键盘上犹豫不决。项目需要下载某县全域0.5米分辨率的影像,但ArcGIS Pro原生的导出工具要么崩溃,要么输出模糊的图片。我打开对话窗口,写下了第一行求助:
“我需要创建一个ArcGIS Pro脚本工具箱,根据矢量范围导出在线影像…”
——这成了我与AI搭档共同攻克技术难题的起点。

    其实关于这个问题,2022年的时候我们用ArcGIS自己写过一个工具,现在只是借助AI在ArcGIS Pro实现,当然吗,现在要实现的更多。如果你需要用ArcGIS的话,请看我么之前的文章。

写了个工具ArcGIS批量下载影像图!分享给大家

    高精度遥感影像已成为GIS分析的基石。本文从需求到代码:一位GIS工程师与AI搭档的影像工具开发之旅,揭秘一款支持分块下载、智能合并的ArcGIS Pro脚本工具开发全流程,解析如何突破在线影像服务的技术限制。

图片

(工具获取见最后)

01 需求到工具开发全流程

   本次一开始,我直接给出Deepseek中给出了需求。可以根据矢量范围去写一个工具,来实现批量导出影像功能,我给了我之前写arcgis工具的案例。

后文会有视频详细介绍:

图片

这是一个arcgis下载在线影像的脚本工具代码,根据一个范围矢量图层下载在线影像为一个个分块,矢量范围图层一个个格网要素,现在需要你分析总结,优化代码,实现根据提供的一个矢量范围,去自动的考虑分块下载在线影像再将分块下载的影像输出,或者你有更好的方法也可以替代,要综合考虑下载分块的时候出现无数据情况等,多线层下载,分块下载并合并输出影像等,综合考虑,请分析总结代码,并全面优化总结,优化改写成一个批量下载在线影像的arcgis pro脚本工具,代码改为pyt的后缀格式就可以直接被arcgis pro识别为工具,不要再次配置工具参数页面

GIS思维与deepseek的对话

    一开始给出的案例工具(当然,是我经过很多次的修改),这个工具会将根据矢量范围和设置的大小导出小块影响,后续合并,但是因为内存和资源占用的问题,一直运行一般软件崩溃,后续就弃用了。

图片

   因此,我考虑分步骤来完成,先根据矢量生成网格,再根据网格导出分块影像,再合并,后续是因为坐标系参数的等问题,报错,导出的数据超出范围,后续也弃用。

图片

最后,是新开会话来写,

我需要创建一个arcgis pro的脚本工具箱,实现根据矢量范围导出当前地图的内容(主要是在线影像),比如我在arcgis pro地图加载了天地图的在线影像,还有一个某个镇或县的矢量范围,工具需要设置参数可以选择导出地表分辨率比如1米或者2米,或者根据根据相应比例尺导出数据,请综合考虑,写一个arcgis pro脚本工具,需要是pyt型的工具,不需要再设置参数的,直接识别运行的。   要综合考虑矢量数据是地理坐标系或者是投影坐标系,考虑导出地图如果直接导出全部范围是不是无法完成,考试是否分块导出再导出,

GIS思维与deepseek的对话

当然,我做了很多的优化最终,得到工具。后续视频会有详细介绍。

图片

(工具获取见最后)

02 工具实现技术逻辑

1. 输入参数标准化处理

矢量范围约束:强制限定输入要素为面状几何要素(Polygon Feature Class),执行拓扑校验确保几何闭合性

动态参数适配:根据用户选择模式(分辨率/比例尺)自动启用对应参数验证:

分辨率模式:约束值域(0.1m ≤ res ≤ 10m)

比例尺模式:构建换算公式 

图片

2. 空间参考一致性保障

自动投影转换:采用动态投影机制(On-the-fly Projection),将输入要素统一转换至地图视图坐标系

WKT格式传递:通过导出空间参考的Well-Known Text(WKT)描述,规避对象序列化异常

地理坐标系预警:当输入为地理坐标系(GCS)时,触发建议转换至Web Mercator(EPSG:3857)的交互提示

3. 动态分块算法

自适应分块策略:

图片

边缘补偿机制:对分块余数区域进行像素级范围扩展,确保全幅覆盖

4. 分块导出控制

视图焦点锁定:通过MapFrame.camera.setExtent()精确控制导出范围

元数据继承:强制写入TIFF_GEOTIFF_TAG(Version:1.8.1)与World File(.tfw)

资源释放:采用上下文管理器(Context Manager)确保游标(SearchCursor)及时回收

5. 多源数据镶嵌

镶嵌参数优化:

arcpy.management.MosaicToNewRaster(    input_rasters=[tile_list],    coordinate_system_for_the_raster=sr_wkt,    mosaic_operator="LAST",  # 重叠区优先最新像素    colormap_mode="FIRST"    # 沿用首个分块色彩映射)

金字塔构建:同步生成Level-7概览图(Overview),提升大范围浏览性能

6. 异常处理机制

图片

7. 性能优化策略

内存池管理:采用分块预加载(Pre-loading)与LRU缓存置换算法

并行计算:通过arcpy.env.parallelProcessingFactor启用多核渲染

存储优化:应用LZW无损压缩(Compression Type: LZW,Predictor: 2)

8. 辅助功能模块

日志系统:生成JSON格式操作日志(含时间戳、坐标参数、性能指标)

元数据归档:自动写入TIFF的XML Metadata(符合ISO 19115标准)

‍‍‍03 视频详细解说

Deepseek+我!写一个ArcGIS Pro批量下载高清影像(谷歌、天地图、ESRI等)工具给大家

‍‍‍04 工具获取与测试数据获取

1、矢量范围必须为闭合多边形(非多部件几何)

2、优先选择投影坐标系(PCS),推荐使用UTM或Gauss-Kruger分带。最好地图的坐标系与矢量数据的坐标系都为投影坐标系(PCS)

3、ArcGIS Pro地图中要先添加高清在线影像(谷歌、天地图、ESRI等)

4、添加高清影像方法推荐学习:
ArcGIS Pro上线!终于和大家见面了······

点赞推荐后

公众号后台消息回复

202504

便可自动获取

Deepseek+我!写一个ArcGIS Pro批量下载高清影像(谷歌、天地图、ESRI等)工具给大家一位GIS工程师与AI搭档的影像工具开发之旅,揭秘一款支持分块下载、智能合并的ArcGIS Pro脚本工具开发全流程,解析如何突破在线影像服务的技术限制。https://mp.weixin.qq.com/s/HF2Yobl1FByqeC7RMYrSnw

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GIS思维

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值