arcmap中里面arcpy制作PointDensity的相关代码

    由于工作原因,需要在服务器中用python脚本相隔固定时间出密度图供网页调用,一直在摸索方法,现在将相应的python脚本粘贴如下:

# -*- coding: utf-8 -*-
import arcpy
mxd = arcpy.mapping.MapDocument(“D:\ServicePro\MD_Make.mxd”)
arcpy.Extent(8000244.717300,327455.969600,15538781.192800,7587941.286900)
df = arcpy.mapping.ListDataFrames(mxd)[0]
#确定extent大小
newExtent = df.extent
newExtent.XMin, newExtent.YMin = 8000244, 246250
newExtent.XMax, newExtent.YMax = 15208638, 7300360
df.extent = newExtent
df.referenceScale = 30000000
df.scale = 41000000
#制作密度图
from arcpy import env
from arcpy.sa import *
lyr_list = arcpy.mapping.ListLayers(mxd, data_frame=df)
env.workspace = “D:\ServicePro\shp\workspace”
print lyr_list
for lyr in lyr_list:
    if lyr.name == “Export_Output”:
        inputLayer = lyr
        break
pdensOut = PointDensity(inputLayer, “NONE”, 0.01818, NbrCircle(3, “CELL”),”SQUARE_MAP_UNITS”)
arcpy.MakeRasterLayer_management(pdensOut,”inputrasterlayer”)
addLayer = arcpy.mapping.Layer(r”inputrasterlayer”)
arcpy.mapping.AddLayer(df,addLayer,”TOP”)
arcpy.RefreshActiveView()
arcpy.RefreshTOC()
lyr_list1 = arcpy.mapping.ListLayers(mxd, data_frame=df)
print lyr_list1
print “success make pointdensity”
#导入symbology图层
for lyr in lyr_list1:
    if lyr.name == “PointDensity”:
        symbologyLayer = lyr
        break
for lyr in lyr_list1:
    if lyr.name == “inputrasterlayer”:
        inputresLayer = lyr
        print inputresLayer
        break
arcpy.ApplySymbologyFromLayer_management(inputresLayer,symbologyLayer)
#输出图片
arcpy.mapping.ExportToPNG(mxd, r”D:\ServicePro\Quanguo_MD1111.png”, df, df_export_width=1714, df_export_height=1675)
del pdensOut,mxd,lyr_list,df
print “finished output”

尤其需要重视的是,在非arcmap窗口外使用脚本,做完pointdensity后,raster图层不会自动添加到TOC中,需要用addlayer加入进mxd文档中,这就是为什么需要有这两步:

addLayer = arcpy.mapping.Layer(r”inputrasterlayer”)
arcpy.mapping.AddLayer(df,addLayer,”TOP”)。

    另外,涉及到symbology的设置,我事先已经在mxd文档中加入了一个设置好了符号的图层,所以只需要将raster的图层sym直接等效为预先设置好的图层,代码如下:

arcpy.ApplySymbologyFromLayer_management(inputresLayer,symbologyLayer)

转载自:https://blog.csdn.net/fusitao/article/details/71471356

You may also like...