前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Arcpy应用-GP输出结果没有自动加载到工程

Arcpy应用-GP输出结果没有自动加载到工程

作者头像
GIS指北
发布2022-11-14 10:57:45
3430
发布2022-11-14 10:57:45
举报
文章被收录于专栏:GIS指北GIS指北

用户使用arcpy.mp模块以及gp工具applysymbofromlayer,通过图层文件来符号化栅格并加载到工程的地图中。看一下它的代码。

代码语言:javascript
复制
# 用lyrx文件符号化栅格testraster
import arcpy

arcpy.env.overwriteOutput = True
arcpy.env.workspace = r"E:\ArcGISproj\MyProj\MyProj.gdb"
aprx_path = r"E:\ArcGISproj\MyProj2\MyProj2.aprx"
inputR = r"E:\ArcGISproj\MyProj\MyProj.gdb\testraster"
render_lyx = r"E:\ArcGISproj\MyProj\lyrfile.lyrx"

aprx = arcpy.mp.ArcGISProject(aprx_path)
map = aprx.listMaps()[0]
try:
    rendenr_ly = arcpy.mp.LayerFile(rendenr_lyx)
    map.addLayer(rendenr_ly)
    map.addDataFromPath(inputR)
    arcpy.ApplySymbologyFromLayer_management(inputR, render_ly, None, "MAINTAIN")
except arcpy.ExecuteError:
    print(arcpy.GetMessage(2))
aprx.save()

del aprx
  

如下图所示,输入栅格并没有符号化。

执行代码成功,输入栅格和lyrx图层文件都加载到map中;但是输入栅格没有应用符号化,也就是gp工具好像没有生效。

可以这样修改代码,把gp运行结果对象再添加到map中。

代码语言:javascript
复制
result = arcpy.ApplySymbologyFromLayer_management( inputR, render_lyx, None, "MAINTAIN")
map.addLayer(result.getOutput(0))

或者这样修改

代码语言:javascript
复制
map.addDataFromPath(inputR)
input = map.listLayers()[0]
arcpy.ApplySymbologyFromLayer_management(
      input, render_lyx, None, "MAINTAIN")

因为用户代码中并没有引用到map对象中的layer对象,虽然输入栅格被添加到map中,符号化却没有应用。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-08-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GIS指北 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档