基于Python的ArcGIS(ArcPy)多进程自动出图

基于Python的ArcGIS(ArcPy)多进程自动出图

流程化、自动化、集中化是计算机的优势项,电脑能干的就让电脑干,不仅仅干的更好还能全部干完。

解放人类,摸鱼万岁!

什么是ArcPy

官方文档

ArcPy 是一个安装 ArcGIS 会附带的站点包,通过 Python(安装 ArcGIS 的时候也会安装 python ) 实现。
简言之,能通过 Python 直接调用 arcpy 执行地理数据分析、数据转换、数据管理和地图自动化以及多种客制化的需求和功能。

说人话就是,你买了一个超大的“工具台”名叫 ArcGIS;
“工具台“”上附赠了一个叫 Python 的“工具箱”;
“工具箱“”中的一把螺丝刀就叫 ArcPy。

什么是多进程

官方文档

单进程就是一件事情一个人干活,多进程就是几个人一起干活

我们通过使用”工具箱“中一把叫做 multiprocessing 的螺丝刀实现多进程。

简单来说:

  • 普通出图就是一个人干活,干完一件事就摸鱼去了,得有其他人告诉他下一件事他才去干。
  • ArcPy单进程自动出图 就是一个人不摸鱼使劲干,把一堆事情都干完。
  • ArcPy多进程自动出图 就是几个人不摸鱼使劲干,可以把一堆事情更快的干完。

为什么要实现多进程出图?

为什么要自动出图,解放人类啊!

使用 arcgis 制图完成然后导出,我们知道通常,一张图片对应一个 mxd 文件。

在生产环境或者学习实验中,能遇到一个县级行政区下辖的所有村都需要出一张某方面的专题图;
又或者是某区域十年来的气温变化专题图的情况,光是需要制作 mxd 文件就有几十个乃至上百个
(可以使用 Python 语言等进行自动化制图,以后详说),你还要一个个打开 mxd 文件,心累…

而使用 arcpy 自动化出图,解放生产力,同时有多进程的加持能充分挖掘计算机的性能。
在电脑最低配置都是4核的今天,仅仅是出图速度至少翻3倍不是太大问题,更不用说电脑自动化操作,连半夜都能继续出图。
不再加班熬夜,拯救社畜。
(不推荐 ArcPy单进程自动出图 ,因为现在明明有更好的 ArcPy多进程自动出图

普通出图 ArcPy单进程自动出图 ArcPy多进程自动出图
进程 单进程 单进程 多进程
时间 慢(需要监督) 一般
自动化 自动 自动
适用场景 只需要出几张图 无(明明有多进程了) 大量专题地图

ArcPy单进程自动出图

还是简单的讲一下使用 ArcPy单进程自动出图 网上很多帖子,我去抄一个贴到下面:

把所有mxd文件放到这个文件夹里面,就可以让电脑自己出图了,很简单吧!

# -*- coding:cp936 -*-
# lcc

"""
    批量将导出MXD文档导出为JPEG图片
"""
import arcpy,os

arcpy.env.overwriteOutput = True
def export(path, res):
   """
   批量将导出MXD文档导出为JPEG图片
   :param path: mxd文件夹目录 string
   :param res: 出图分辨率 int
   :return:
   """
   for afile in os.listdir(path):
      if afile[-3:].lower() == 'mxd':
         mxd1 = arcpy.mapping.MapDocument(os.path.join(path, afile))
         print u"正在出图..."
         arcpy.mapping.ExportToJPEG(mxd1,
            os.path.join(path, afile[:-3] + 'jpg'), resolution = res)
         del mxd1
         print 'Done'
      else:
         print u"\n非MXD文件,跳过"
         
if __name__ 
  • 6
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值