白话陈述之——从python脚本变化解析由路径引起的GP服务运行失败问题
补充一下未完待续的利用Python分析GP服务运行结果的输出路径
& 实现服务输出路径的本地化,这篇博客中主要介绍了如何实现将GP服务生成的结果输出至本地及输入输出路径导致GP服务运行失败的问题。
下面,我将从另一个角度解析一下由路径导致的服务运行失败问题。
---------------华丽丽的分割线--------------
首先,我写了一段脚本,实现的是对一个栅格数据进行一系列处理,然后将其输出到mxd中,在本地运行一切正常。以下摘自脚本的一部分:
接下来,我将这个运行成功的工具发布为GP服务,并且以服务的方式再次执行GP服务,报如下错误:
根据Server提供的log日志信息我们可以很清楚的看到这个GP服务返回的错误信息,在给出的冗长的服务结果的输出路径中,.py的python脚本在108行发生错误,很自然的,找出我的脚本,定位至108行,查看与分析arcpy.mappingLayer(...)的语句的合理性。然而定位108行以后语句并未定位至这一行语句上,很神奇的事情。
于是,老老实实的找到GP服务的路径(报错信息提示的路径),找到打包以后的服务脚本,打开查看,惊奇的发现,发布为服务的脚本与本地写好的脚本并不完全相同,部分截图如下:
红色部分是由服务器自动增加的部分,也就是说脚本发生了变化:服务器自动定义了一个路径:
那么定义的这个路径服务器又是怎样应用的呢?如下:
也就是说由arcpy.MakeRasterLayer_managerment生成的layer文件系统会将它存放在指定的临时文件夹中,当arcpy.mapping.Layer()时系统无法找到这个存放在scratchFolder中的layer临时文件,也就无法写入mxd中了。那么该怎样解决呢?很简单:
<span style="font-size:18px;"> </span><span style="font-size:14px;"># Make a Raster layer from the OutputRaster
lyrraster = os.path.join(OutputRaster,"P_Raster")
arcpy.MakeRasterLayer_management(OutputRaster, lyrraster,"","","") # Copy a map document template
newMxdPath = os.path.join(Outputpath, "Projection.mxd")
arcpy.Copy_management(mxdTemplate, newMxdPath, "") # Add Raster layer into primary map document
mxd = arcpy.mapping.MapDocument(newMxdPath)
df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0]
addLayer = arcpy.mapping.Layer(lyrraster)
arcpy.mapping.AddLayer(df, addLayer, "TOP")
mxd.title = "Warp_Projecton"
mxd.summary = "Create a correct JPG that has a right spatial reference,then as a tuntime content service"
mxd.description = "Create a correct JPG that has a right spatial reference,then as a tuntime content service"
mxd.tags = "Projection;Warp"
mxd.save()
del mxd</span><span style="font-size:18px;">
</span>
将rasterLayer的存放路径放在一个指定的位置上,确保服务运行可以找到就okay了。
当然,并不是所有的GP服务运行时都会遇到这个问题,但是当遇到路径问题引发的GP服务运行失败时,那么就可以考虑通过这个方法去分析解决了。
版权声明:本文为博主原创文章,未经博主允许不得转载。
白话陈述之——从python脚本变化解析由路径引起的GP服务运行失败问题的更多相关文章
- 利用Python分析GP服务运行结果的输出路径 & 实现服务输出路径的本地化 分类: Python ArcGIS for desktop ArcGIS for server 2015-08-06 19:49 3人阅读 评论(0) 收藏
最近,一直纠结一个问题:做好的GP模型或者脚本在本地运行,一切正常:发布为GP服务以后时而可以运行成功,而更多的是运行失败,甚至不能知晓运行成功后的结果输出在哪里. 铺天盖地的文档告诉我,如下信息: ...
- Windows使用Python统一设置解析器路径
碰到的问题: .py文件放在cgi-bin文件夹下面,这个.py文件都要设置"#!python.exe路径"来告诉CGI如何找解析器解析这个.py的文件,我是想知道这个路径可否统一 ...
- Python爬虫html解析工具beautifulSoup在pycharm中安装及失败的解决办法
1.安装步骤: 首先,你要先进入pycharm的Project Interpreter界面,进入方法是:setting(ctrl+alt+s) ->Project Interpreter,Pro ...
- [转]Python爬虫html解析工具beautifulSoup在pycharm中安装及失败的解决办法
原文地址:https://www.cnblogs.com/yysbolg/p/9040649.html 刚开始学习一门技术最麻烦的问题就是搞定IDE环境,直接在PyCharm里安装BeautifulS ...
- 在Python脚本中调用Django环境(方便、右键运行,可用于ORM测试)
随便创建一个py文件即可: import os if __name__ == '__main__': os.environ.setdefault("DJANGO_SETTINGS_MODUL ...
- Python脚本打包成exe执行文件
需求 一个教辅目录结构检查工具,目录结构是[书籍]-[章节]-[题目|答案]-[*.jpg],后台有个异步处理的服务,需要强依赖这个目录结构. 书籍解析是单独的pipeline,日志对用户不可见,这里 ...
- Window环境下,PHP调用Python脚本
参考 php调用python脚本*** php 调用 python脚本的方法 解决办法:php提供了许多调用其他脚本或程序的方法,比如exec/system/popen/proc_open/passt ...
- 利用Dnspod api批量更新添加DNS解析【python脚本】 - 推酷
利用Dnspod api批量更新添加DNS解析[python脚本] - 推酷 undefined
- python脚本解析json文件
python脚本解析json文件 没写完.但是有效果.初次尝试,写的比较不简洁... 比较烦的地方在于: 1,中文编码: pSpecs.decode('raw_unicode_escape') 2,花 ...
随机推荐
- linux -- Ubuntu Server 安装图形界面
1.连接网络,你一定要确保网络通畅,如果你和我一样使用Wireless,那先找根网线插上,因为下面的安装都要通过网络下载组件的. 2.进入图形界面的命令是startX,敲击后会有安装xinit的提示. ...
- 《Java程序猿面试笔试宝典》之组合与继承有什么差别
组合和继承是面向对象中两种代码复用的方式. 组合是指在新类里面创建原有类的对象,反复利用已有类的功能.继承是面向对象的主要特性之中的一个,它同意设计人员依据其他类的实现来定义一个类的实现. 组合和继承 ...
- Java web url 规范
设计URI应该遵循的原则 URI是网站UI的一部分,因此,可用的网站应该满足这些URL要求 简单,好记的域名 简短(short)的URI 容易录入的URI URI能反应站点的结构 URI是可以被用户猜 ...
- iOS 开发 - iOS 8 以后使用UIAlertController的使用
最近在写项目的时候,发现使用alertview和actonsheet会报警告,所以就查了一下,发现ios 9 以后会使用UIAlertController来进行操作, 具体代码如下: 1.声明 #im ...
- ORA-20000的解决过程
今天在用impdp导数据时出现卡住的现象,开始我以为是数据量过大导致的,过了两个小时还是卡住,看警告日志得到下面的错误信息: GATHER_STATS_JOB encountered errors. ...
- U3D关于message的使用
Message相关有3条指令: SendMessage ("函数名",参数,SendMessageOptions) //GameObject自身的Script BroadcastM ...
- Google's C++ coding style
v0.2 - Last updated November 8, 2013 源自 Google's C++ coding style rev. 3.274 目录 由 DocToc生成 头文件 ...
- Sass-学习笔记【进阶篇】
特别说明: 没有sass基础请移步:[Sass-学习笔记[基础篇]]http://www.cnblogs.com/padding1015/articles/7056323.html 最底部附结构图(实 ...
- Linux下TCP延迟确认(Delayed Ack)机制导致的时延问题分析
版权声明:本文由潘安群原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/105 来源:腾云阁 https://www.qclo ...
- vux 全局注册组件
背景:调试better-scroll的时候进行封装,作为组件来调用: 希望:全局注册组件: 1,在src的main.js下: 这样就可以用了: