您的位置:首页 > 编程语言 > Python开发

ArcGIS中python对图层固定边界字段进行插值、渲染并输出图片

2017-11-26 14:28 260 查看
    最近项目中有需要对shp中某一字段进行自动进行出图,在平时制作相应的模型然后输出python或发布成地图服务即可,但是因为涉及到出题出图要具体边界及渲染,功能实现比较简单,代码尽管各处都有可以作参考,但是还是都是零散的,还得花点时间去查找和重新组织,这里楼主对python代码进行组织和整理,希望能对有需要的人提供帮助。其他解释不多说,直接上代码:

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

# ---------------------------------------------------------------------------

# in.py

# Created on: 2017-11-03 17:26:10.00000

#   (generated by ArcGIS/ModelBuilder)LB

# Usage: in <abcd> <test_shp> <Z_value_field> <Output_cell_size> <fj_pro_shp> <Extract_abcd1>

# Description: 插值、渲染并输出图片

# ---------------------------------------------------------------------------

print "程序开始运行"

# Import arcpy module

import arcpy

# Check out any necessary licenses

arcpy.CheckOutExtension("spatial")

# Script arguments

abcd = arcpy.GetParameterAsText(0)

if abcd == '#' or not abcd:

    abcd = "F:\py\print_toPNG\\ccc" # provide a default value if unspecified

test_shp = arcpy.GetParameterAsText(1)

if test_shp == '#' or not test_shp:

    test_shp = "F:\\Fujian\\test.shp" # provide a default value if unspecified

Z_value_field = arcpy.GetParameterAsText(2)

if Z_value_field == '#' or not Z_value_field:

    Z_value_field = "jsl" # provide a default value if unspecified

Output_cell_size = arcpy.GetParameterAsText(3)

if Output_cell_size == '#' or not Output_cell_size:

    Output_cell_size = ".01" # provide a default value if unspecified

fj_pro_shp = arcpy.GetParameterAsText(4)

if fj_pro_shp == '#' or not fj_pro_shp:

    fj_pro_shp = "F:\\Fujian\\fj_pro.shp" # provide a default value if unspecified

Extract_abcd1 = arcpy.GetParameterAsText(5)

if Extract_abcd1 == '#' or not Extract_abcd1:

    Extract_abcd1 = "F:\py\print_toPNG\\cbd" # provide a default value if unspecified

# Local variables:

arcpy.env.extent = arcpy.Extent(115.848281860352,23.53125,120.837638854981,28.3126068115235)

print "进行插值运算中...."

# Process: IDW

arcpy.gp.Idw_sa(test_shp, Z_value_field, abcd, Output_cell_size, "2", "VARIABLE 12", "")

print "进行裁剪中...."

# Process: Extract by Mask

arcpy.gp.ExtractByMask_sa(abcd, fj_pro_shp, Extract_abcd1)

print "图层输出过程中...."

# Process:export map  mxd需要提供具体的渲染图层 格式为lyr

mxd = arcpy.mapping.MapDocument(r"F:\py\base.mxd")

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

lyr.replaceDataSource(r"F:\py\print_toPNG","RASTER_WORKSPACE","cbd")

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

df.extent=arcpy.Extent(115.848281860352,23.53125,120.837638854981,28.3126068115235)

arcpy.mapping.ExportToPNG(mxd, r"F:\py\print_toPNG\kk.png", df,

                          df_export_width=1600,

                          df_export_height=1200,

                          world_file=True)

del mxd

print "运行结束"

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python arcgis 图片