使用Python辅助ArcGIS出图

目录

背景

使用常规方法流程

常规流程中重复性的工作

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

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

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


背景

      使用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())

猜你喜欢

转载自blog.csdn.net/huapenguag/article/details/106496002