>

mapping模块批量出图

- 编辑:正版管家婆马报彩图 -

mapping模块批量出图

采纳arcpy.mapping模块批量出图,arcpy.mapping模块

     出图是体系里普及的天职,有的体系依旧会要上百张图纸,所以批量出土工具很有须要。arcpy.mapping便是ArcGIS里的出图模块,能神速到位贰个出图工具。

         arcpy.mapping模块里常用的类有MapDocument、DataFrame、Layer、DataDrivenPages和TextElement。

         MapDocument类是地图像和文字档(.mxd文件)对应的类。开首化参数是一个字符串,一般是.mxd文件的渠道:

         mxd=arcpy.mapping.MapDocument(r"F:GeoDataChinaAreaChinaVector.mxd")

         DataFrame类用于操作地图内的Data Frame(即下图的Layers),能够支配地图的限制、比例尺等。用arcpy.mapping.ListDataFrames(map_document, {wildcard})函数获取。

         df= arcpy.mapping.ListDataFrames(mxd)[0]

        

         Layer类用于操作实际的图层。能够决定图斑的体制、可知性等。能够用.lyr文件的路径发轫化,也能够透过arcpy.mapping.ListLayers(map_document_or_layer, {wildcard}, {data_frame})函数获取。

         lyr1=arcpy.mapping.Layer(r" F:GeoDataChinaAreaProvince.lyr")

         df.addLayer(lyr1)

         lyr2=arcpy.mapping.ListLayer(mxd,"",df)[0]

         DataDrivenPages类须要相称ArcMap中的Data Driven Pages工具使用。用于八个矢量文件内的全部或局地图斑各个出一张图的景色。

         TextElement类用于操作地图上的文字,举个例子图名、页数。通过arcpy.mapping.ListLayoutElements (map_document, {element_type}, {wildcard})函数获取。

         txtElm=arcpy.mapping.ListLayoutElements(mxd,"TEXT_ELEMENT")[0]

         常见的出图格局有三种:二个矢量文件里每种图斑出一张图,三个文本夹下每一个矢量文件出一张图。

每一种图斑出一张图:

         这种情况有Data Driven Pages工具同盟最棒。张开ArcMap的Customize->Toolbars->Data Driven Pages,设置好图层、名称字段、排序字段、展现范围和比例尺,保存地图。

# coding:utf-8

import arcpy



mxd=arcpy.mapping.MapDocument(r"F:GeoDataChinaAreaChinaVector.mxd")

for pageNum in range(1,mxd.dataDrivenPages.pageCount):

         mxd.dataDrivenPages.currentPageID=pageNum

         mapName=mxd.dataDrivenPages.pageRow.getValue(mxd.dataDrivenPages.pageNameField.name)

         print mapName

         arcpy.mapping.ExportToPNG(mxd,r"F:GeoDataChinaAreaProvince\"+mapName+".png")

print 'ok'

 

一个文本夹下的每种矢量文件出一张图:

         

# coding:utf-8

import arcpy

import os



def GetShpfiles(shpdir):

         shpfiles=[]

         allfiles=os.listdir(shpdir)

         for file in allfiles:

                   if os.path.isfile(file):

                            if file.endswith('.shp'):

                                     shpfiles.append(file)

                   else:

                            shpfiles.extend(GetShpfiles(file))

         return shpfiles



allshps=GetShpfiles(r"F:GeoDataChinaAreaProvince")

mxd=arcpy.mapping.MapDocument(r"F:GeoDataChinaAreaChinaVector.mxd")

lyr=arcpy.mapping.ListLayer(mxd)[0]

for shp in allshps:

         paths=os.path.split(shp)

         print paths[1]

         lyr.replaceDataSource(paths[0],"SHAPEFILE_WORKSPACE",paths[1])

         arcpy.mapping.ExportToPNG(mxd,r"F:GeoDataChinaAreaProvince\"+paths[1]+".png")

print 'ok'

更加多职能见ArcMap帮忙文书档案吉优processing->ArcPy->Mapping Module。

出图是种类里常见的天职,有的项目依旧会要上百张图纸,所以批量出土工具很有须求。arc...

python使用arcpy.mapping模块批量出图,arcpy.mapping

出图是体系里大规模的天职,有的项目还是会要上百张图片,所以批量出土工具很有须求。arcpy.mapping正是ArcGIS里的出图模块,能飞速到位一个出图工具。

arcpy.mapping模块里常用的类有MapDocument、DataFrame、Layer、DataDrivenPages和TextElement。

 MapDocument类是地图像和文字书档案(.mxd文件)对应的类。开始化参数是多个字符串,一般是.mxd文件的渠道:

 mxd=arcpy.mapping.MapDocument(r"F:GeoDataChinaAreaChinaVector.mxd")

DataFrame类用于操作地图内的Data Frame(即下图的Layers),能够调控地图的界定、比例尺等。用arcpy.mapping.ListDataFrames(map_document, {wildcard})函数获取。

df= arcpy.mapping.ListDataFrames(mxd)[0]

 Layer类用于操作实际的图层。能够支配图斑的样式、可知性等。可以用.lyr文件的不二等秘书技最初化,也足以通过arcpy.mapping.ListLayers(map_document_or_layer, {wildcard}, {data_frame})函数获取。

lyr1=arcpy.mapping.Layer(r" F:GeoDataChinaAreaProvince.lyr")

df.addLayer(lyr1)

lyr2=arcpy.mapping.ListLayer(mxd,"",df)[0]

DataDrivenPages类供给合作ArcMap中的Data Driven Pages工具使用。用于三个矢量文件内的满贯或部分图斑每种出一张图的情况。

TextElement类用于操作地图上的文字,举个例子图名、页数。通过arcpy.mapping.ListLayoutElements (map_document, {element_type}, {wildcard})函数获取。

txtElm=arcpy.mapping.ListLayoutElements(mxd,"TEXT_ELEMENT")[0]

左近的出图格局有三种:八个矢量文件里每个图斑出一张图,八个文件夹下各类矢量文件出一张图。

种种图斑出一张图:

这种处境有Data Driven Pages工具合营最佳。打开ArcMap的Customize->Toolbars->Data Driven Pages,设置好图层、名称字段、排序字段、呈现范围和比例尺,保存地图。

# coding:utf-8

import arcpy



mxd=arcpy.mapping.MapDocument(r"F:GeoDataChinaAreaChinaVector.mxd")

for pageNum in range(1,mxd.dataDrivenPages.pageCount):

     mxd.dataDrivenPages.currentPageID=pageNum

     mapName=mxd.dataDrivenPages.pageRow.getValue(mxd.dataDrivenPages.pageNameField.name)

     print mapName

     arcpy.mapping.ExportToPNG(mxd,r"F:GeoDataChinaAreaProvince\"+mapName+".png")

print 'ok'

八个文件夹下的各样矢量文件出一张图:

# coding:utf-8

import arcpy

import os



def GetShpfiles(shpdir):

     shpfiles=[]

     allfiles=os.listdir(shpdir)

     for file in allfiles:

          if os.path.isfile(file):

              if file.endswith('.shp'):

                   shpfiles.append(file)

          else:

              shpfiles.extend(GetShpfiles(file))

     return shpfiles



allshps=GetShpfiles(r"F:GeoDataChinaAreaProvince")

mxd=arcpy.mapping.MapDocument(r"F:GeoDataChinaAreaChinaVector.mxd")

lyr=arcpy.mapping.ListLayer(mxd)[0]

for shp in allshps:

     paths=os.path.split(shp)

     print paths[1]

     lyr.replaceDataSource(paths[0],"SHAPEFILE_WORKSPACE",paths[1])

     arcpy.mapping.ExportToPNG(mxd,r"F:GeoDataChinaAreaProvince\"+paths[1]+".png")

print 'ok'

如上便是本文的全部内容,希望对大家的求学抱有协助,也可望我们多多扶助帮客之家。

出图是项目里相近的职责,有的种类依然会要上百张图纸,所以批量出土工具很有不能缺少。arc...

本文由编程应用发布,转载请注明来源:mapping模块批量出图