当前位置:   article > 正文

使用Python辅助ArcGIS出图_gis中python输入给定图层出图

gis中python输入给定图层出图

目录

背景

使用常规方法流程

常规流程中重复性的工作

使用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个时段排版,含标题的修改-代码

  1. # -*-coding:utf-8-*-
  2. ## 每次显示一个图层(默认全关闭)
  3. ## 时间逐时增加
  4. ## 另存多个MXD工程
  5. import sys
  6. reload(sys)
  7. sys.setdefaultencoding('utf8')
  8. sys.path.append(r'D:\SoftwareHome\ESRI\ArcGIS\Desktop10.2\bin')
  9. sys.path.append(r'D:\SoftwareHome\ESRI\ArcGIS\Server\arcpy')
  10. import arcpy
  11. ## 模板mxd 如:F:\Data\HNData\hsll\hdcz.mxd
  12. mxdName = arcpy.GetParameterAsText(0)
  13. ## 保存路径 savePath = r'F:\Data\HNData\hdcz'
  14. savePath = arcpy.GetParameterAsText(1)
  15. ## 待替换的标题 oldText = "6月4日0时-1时"
  16. oldText = arcpy.GetParameterAsText(2)
  17. ## 图层个数
  18. layerNum = int(arcpy.GetParameter(3))
  19. arcpy.AddMessage("Name is: {0}".format(layerNum))
  20. for i in range(1,layerNum):
  21. mxd = arcpy.mapping.MapDocument(mxdName)
  22. df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0] #获取全部图层组
  23. lyr= arcpy.mapping.ListLayers(mxd,"",df) #获取图层组全部图层
  24. ##lyr[22].visible = False
  25. lyr[layerNum-i].visible = True
  26. ##arcpy.AddMessage("Name is: {0}".format(lyr[layerNum-i].visible))
  27. newText = "6月4日"+str(i)+"时-" +str(i+1)+"时" # 新的标题
  28. arcpy.AddMessage("Name is: {0}".format(newText))
  29. for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
  30. if oldText == elm.text:
  31. elmText = elm.text.replace(oldText, newText)
  32. elm.text = elmText
  33. mxd.saveACopy(savePath+ r"\hsczaa"+str(i)+".mxd")
  34. del mxd

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

  1. import sys
  2. sys.path.append(r'D:\SoftwareHome\ESRI\ArcGIS\Desktop10.2\bin')
  3. sys.path.append(r'D:\\SoftwareHome\\ESRI\\ArcGIS\\Server\\arcpy')
  4. import arcpy, os, time
  5. ## path = r'F:\Data\HNData\hdcz'
  6. path = arcpy.GetParameterAsText(0)
  7. print path
  8. res = 100
  9. print '程序开始:' + str(time.ctime())
  10. for afile in os.listdir(path):
  11. if afile[-3:].lower() == 'mxd':
  12. mxd = arcpy.mapping.MapDocument(os.path.join(path,afile))
  13. arcpy.mapping.ExportToJPEG(mxd, os.path.join(path,afile[:-3] + 'jpg'), resolution = res)
  14. del mxd
  15. print '程序结束:' + str(time.ctime())

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/310795
推荐阅读
相关标签
  

闽ICP备14008679号