利用Python分析GP服务运行结果的输出路径 & 实现服务输出路径的本地化 分类: Python ArcGIS for desktop ArcGIS for server 2015-08-06 19:49 3人阅读 评论(0) 收藏
最近,一直纠结一个问题:做好的GP模型或者脚本在本地运行,一切正常;发布为GP服务以后时而可以运行成功,而更多的是运行失败,甚至不能知晓运行成功后的结果输出在哪里。
铺天盖地的文档告诉我,如下信息:
这些来自官方的Esri help信息大体可以总结为: GP服务结果的输出路径由服务器管理不能人为控制,即使是指定了它输出的工作环境,服务运行依然会忽略环境设置,而执行的结果会输出在PackageWorkspace指定的路径下,而packageWorkspace又是只读的,不能够对其指定的路径做出修改。
万念俱灰间,以为这是一条再不能行的死路。
------------------------------------------------
首先慢慢的分析,利用python找到这个packageWorkspace的输出路径到底是什么,即输出执行的环境,脚本如下:
# -*- coding:utf-8 -*-
import arcpy
from arcpy import env
import os
inputpath = arcpy.GetParameterAsText(0)
txtpath = os.path.join(inputpath,"env_file.txt") outtxt = open(txtpath,'w')
environments = arcpy.ListEnvironments()
for environment in environments:
envSetting = getattr(env,environment)
outtxt.writelines(environment+":"+"\t")
outtxt.writelines(str(envSetting)+'\n')
outtxt.flush()
outtxt.close()
将以上脚本发布为服务,查看运行的结果如下:
Packageworkspace指明了服务结果的输出路径,其实和预料的一样,在站点的directories路径下,只是相对冗长,且在该路径下打包了GP工具及输出的结果。
那么服务输出的结果真的只能在这里么?该怎样设置?
-------------------------------------------------
实际上很简单的,服务端运行,之所以指定到服务器所管理的目录下,是因为需要调用GP服务的结果然后返回给客户端,也就是说,至少输出位置必须是服务器端可访问的、共享的,于是,将做好的GP模型再次发布,输入参数与输出位置均存在于服务器端可访问的位置上,再次执行服务,执行成功!
多次实验的经验如下:
1. 即使设置了scratch workspace与current workspace,对服务器端执行结果没有影响,因为环境设置自动被忽略。
2. 服务的输入参数不被服务器可访问,而输出路径可被服务器端访问,执行会失败!
3. 服务的输出路径不被服务器端可访问,输出参数路径可被服务器端访问,执行会失败!
还有一点,想必大家会疑惑,GP模型的输出参数已经被屏蔽,又如何去自由选择输出的路径呢?
这一点还是钻了一下空子的,只有输出的路径被屏蔽,如果不以输出的路径/文件形式存在,也就是不被检测为输出参数,就可以随心所欲了~
具体的关于这部分模型的构建技巧,后续再给大家整理出来。
------------欢迎来访,拒绝转载----------
版权声明:本文为博主原创文章,未经博主允许不得转载。
利用Python分析GP服务运行结果的输出路径 & 实现服务输出路径的本地化 分类: Python ArcGIS for desktop ArcGIS for server 2015-08-06 19:49 3人阅读 评论(0) 收藏的更多相关文章
- POJ2061 Subsequence 2017-05-25 19:49 83人阅读 评论(0) 收藏
Subsequence Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 14709 Accepted: 6210 Desc ...
- HDU1233 还是畅通工程 2017-04-12 19:49 64人阅读 评论(0) 收藏
还是畅通工程 Time Limit : 4000/2000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submis ...
- 滑雪 分类: POJ 2015-07-23 19:48 9人阅读 评论(0) 收藏
滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 83276 Accepted: 31159 Description Mich ...
- HDU1879 继续畅通工程 2017-04-12 19:12 50人阅读 评论(0) 收藏
继续畅通工程 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submis ...
- 移植QT到ZedBoard(制作运行库镜像) 交叉编译 分类: ubuntu shell ZedBoard OpenCV 2014-11-08 18:49 219人阅读 评论(0) 收藏
制作运行库 由于ubuntu的Qt运行库在/usr/local/Trolltech/Qt-4.7.3/下,由makefile可以看到引用运行库是 INCPATH = -I/usr//mkspecs/d ...
- Tomcat原理 分类: 原理 2015-06-28 19:26 5人阅读 评论(0) 收藏
Tomcat的模块结构设计的相当好,而且其Web 容器的性能相当出色.JBoss直接就使用了Tomcat的web容器,WebLogic的早期版本也是使用了Tomcat的代码. Web容器的工作过程在下 ...
- Matlab调用C程序 分类: Matlab c/c++ 2015-01-06 19:18 464人阅读 评论(0) 收藏
Matlab是矩阵语言,如果运算可以用矩阵实现,其运算速度非常快.但若运算中涉及到大量循环,Matlab的速度令人难以忍受的.当必须使用for循环且找不到对应的矩阵运算来等效时,可以将耗时长的函数用C ...
- 8大排序算法图文讲解 分类: Brush Mode 2014-08-18 11:49 78人阅读 评论(0) 收藏
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存. 常见的内部排序算法有:插入排序.希尔排序. ...
- /var/log目录下的20个Linux日志文件功能详解 分类: 服务器搭建 linux内核 Raspberry Pi 2015-03-27 19:15 80人阅读 评论(0) 收藏
如果愿意在Linux环境方面花费些时间,首先就应该知道日志文件的所在位置以及它们包含的内容.在系统运行正常的情况下学习了解这些不同的日志文件有助于你在遇到紧急情况时从容找出问题并加以解决. 以下介绍的 ...
随机推荐
- Hello World! 这是我的第一个 CGI 程序
Hello World! 这是我的第一个 CGI 程序上面的 C++ 程序是一个简单的程序,把它的输出写在 STDOUT 文件上,即显示在屏幕上.在这里,值得注意一点,第一行输出 Content-ty ...
- devstack install attributeError: 'module' object has no attribute '__version__'
work around: edit the file /usr/local/lib/python2.7/dist-packages/openstack/session.py and remove th ...
- mac Virtualbox Ubuntu 设置共享目录
如果要用VirtualBox自带的共享文件夹功能,必须先安装Guest Additions.安装方法:置顶的菜单条->devices->Install Guest Additions.点击 ...
- linux convert命令安装及使用
linux下ImageMagick安装和使用 检查系统有无安装ImageMagick shell> rpm -qa | grep ImageMagick 没有就开始安装ImageMagick s ...
- MySQL<添加、更新与删除数据>
添加.更新与删除数据 添加数据 为表中所有字段添加数据 INSERT INTO 表名(字段名1,字段名2,……) VALUES(值1,值2,……); insert into 表名 values(值1, ...
- swift开发之--报错:Class "***ViewController" has no initializers
因为Swift中要求变量或常量在声明时就要初始化其值,所以我们在实际开发中,声明变量或常量时使用可选类型. ?!1234 var stitle : UILabel?var webview : UIWe ...
- Python 爬虫知识点 - 淘宝商品检索结果抓包分析
一.抓包基础 在淘宝上搜索“Python机器学习”之后,试图抓取书名.作者.图片.价格.地址.出版社.书店等信息,查看源码发现html-body中没有这些信息,分析脚本发现,数据存储在了g_page_ ...
- osgEarth的agglite插件使用例子feature_rasterize.earth
<!-- osgEarth Sample Demonstrates use of the "agglite" feature rasterization driver. -- ...
- C文件流
在Linux系统中,系统默认认为每个进程打开了3个文件,即每个进程默认可以操作3 个流,即标准输入了流(/dev/stdin),标准输出流(/dev/stdout),标准错误输出流(/dev/stde ...
- 安卓教程:提取APK程序里图片资源的方法
有些APK程序里的图标.图片很漂亮,在使用程序时你可能会想,如果能把这些漂亮的图标.图片提取出来就好了,其实这是可以办到的,请看教程. 本教程以“电影超人”的APK安装包为例,其它APK程序的提取方法 ...