arcgis批量出图python代码_使用Python辅助ArcGIS出图

该博客介绍了如何利用Python脚本来自动化创建ArcGIS的一天降雨量变化GIF图。首先计算一天的降雨量数据,然后在ArcGIS中制作24个图层并设置标题,接着通过Python逐层导出为jpg图片,最后用Python将jpg图片合成为GIF动态图。文中提供了用于修改图层可见性和更新标题以及批量导出为jpg的代码示例。
摘要由CSDN通过智能技术生成

目录

背景

使用ArcGIS制作一个时序GIF图。具体地说就是使用ArcGIS制作一天(24个时段)的降雨量变化图。

使用常规方法流程

1.计算一天的降雨量数据。

2.在ArcGIS中制作24个图层,每层代表一个时段,按照一定的规则排版制图。

3.逐个时段排版生成jpg图。

4.使用PS等软件将jpg图制作成GIF图。

常规流程中重复性的工作

1 24个时段排版,含标题的修改

2 各个时段生成jpg图

使用Python代码完成重复性工作

1 24个时段排版,含标题的修改-代码

# -*-coding:utf-8-*-

## 每次显示一个图层(默认全关闭)

## 时间逐时增加

## 另存多个MXD工程

import sys

reload(sys)

sys.setdefaultencoding('utf8')

sys.path.append(r'D:\SoftwareHome\ESRI\ArcGIS\Desktop10.2\bin')

sys.path.append(r'D:\SoftwareHome\ESRI\ArcGIS\Server\arcpy')

import arcpy

## 模板mxd 如:F:\Data\HNData\hsll\hdcz.mxd

mxdName = arcpy.GetParameterAsText(0)

## 保存路径 savePath = r'F:\Data\HNData\hdcz'

savePath = arcpy.GetParameterAsText(1)

## 待替换的标题 oldText = "6月4日0时-1时"

oldText = arcpy.GetParameterAsText(2)

## 图层个数

layerNum = int(arcpy.GetParameter(3))

arcpy.AddMessage("Name is: {0}".format(layerNum))

for i in range(1,layerNum):

mxd = arcpy.mapping.MapDocument(mxdName)

df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0] #获取全部图层组

lyr= arcpy.mapping.ListLayers(mxd,"",df) #获取图层组全部图层

##lyr[22].visible = False

lyr[layerNum-i].visible = True

##arcpy.AddMessage("Name is: {0}".format(lyr[layerNum-i].visible))

newText = "6月4日"+str(i)+"时-" +str(i+1)+"时" # 新的标题

arcpy.AddMessage("Name is: {0}".format(newText))

for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):

if oldText == elm.text:

elmText = elm.text.replace(oldText, newText)

elm.text = elmText

mxd.saveACopy(savePath+ r"\hsczaa"+str(i)+".mxd")

del mxd

2 各个时段生成jpg图-代码

import sys

sys.path.append(r'D:\SoftwareHome\ESRI\ArcGIS\Desktop10.2\bin')

sys.path.append(r'D:\\SoftwareHome\\ESRI\\ArcGIS\\Server\\arcpy')

import arcpy, os, time

## path = r'F:\Data\HNData\hdcz'

path = arcpy.GetParameterAsText(0)

print path

res = 100

print '程序开始:' + str(time.ctime())

for afile in os.listdir(path):

if afile[-3:].lower() == 'mxd':

mxd = arcpy.mapping.MapDocument(os.path.join(path,afile))

arcpy.mapping.ExportToJPEG(mxd, os.path.join(path,afile[:-3] + 'jpg'), resolution = res)

del mxd

print '程序结束:' + str(time.ctime())

原文链接:https://blog.csdn.net/huapenguag/article/details/106496002

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值