最近,一直纠结一个问题:做好的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) 收藏的更多相关文章

  1. POJ2061 Subsequence 2017-05-25 19:49 83人阅读 评论(0) 收藏

    Subsequence Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 14709   Accepted: 6210 Desc ...

  2. HDU1233 还是畅通工程 2017-04-12 19:49 64人阅读 评论(0) 收藏

    还是畅通工程 Time Limit : 4000/2000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submis ...

  3. 滑雪 分类: POJ 2015-07-23 19:48 9人阅读 评论(0) 收藏

    滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 83276 Accepted: 31159 Description Mich ...

  4. HDU1879 继续畅通工程 2017-04-12 19:12 50人阅读 评论(0) 收藏

    继续畅通工程 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submis ...

  5. 移植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 ...

  6. Tomcat原理 分类: 原理 2015-06-28 19:26 5人阅读 评论(0) 收藏

    Tomcat的模块结构设计的相当好,而且其Web 容器的性能相当出色.JBoss直接就使用了Tomcat的web容器,WebLogic的早期版本也是使用了Tomcat的代码. Web容器的工作过程在下 ...

  7. Matlab调用C程序 分类: Matlab c/c++ 2015-01-06 19:18 464人阅读 评论(0) 收藏

    Matlab是矩阵语言,如果运算可以用矩阵实现,其运算速度非常快.但若运算中涉及到大量循环,Matlab的速度令人难以忍受的.当必须使用for循环且找不到对应的矩阵运算来等效时,可以将耗时长的函数用C ...

  8. 8大排序算法图文讲解 分类: Brush Mode 2014-08-18 11:49 78人阅读 评论(0) 收藏

    排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存. 常见的内部排序算法有:插入排序.希尔排序. ...

  9. /var/log目录下的20个Linux日志文件功能详解 分类: 服务器搭建 linux内核 Raspberry Pi 2015-03-27 19:15 80人阅读 评论(0) 收藏

    如果愿意在Linux环境方面花费些时间,首先就应该知道日志文件的所在位置以及它们包含的内容.在系统运行正常的情况下学习了解这些不同的日志文件有助于你在遇到紧急情况时从容找出问题并加以解决. 以下介绍的 ...

随机推荐

  1. C#中的程序集和命名空间

    C#中的程序集和命名空间 如果说命名空间是类库的逻辑组织形式,那么程序集就是类库的物理组织形式.只有同时指定类型所在的命名空间及实现该类型的程序集,才能完全限定该类型.<精通.NET核心技术-- ...

  2. tRNA 二级结构预测可视化

    tRNAdb 收录了来自104个物种的623条tRNA 序列,从数据库中下载对应物种的tRNA 序列和二级结构,以人为例 打开下面的链接 http://trna.bioinf.uni-leipzig. ...

  3. seqtk 的安装和使用

    seqtk 是一款针对fasta/fastq 文件进行处理的小程序,有很多的功能,速度很快,很方便: 源代码:https://github.com/lh3/seqtk 安装: git clone ht ...

  4. Linux中利用LVM实现分区动态扩容

    使用命令: pvscan vgdisplay lvdisplay vgremove vgextend lvresize -l resize2fs 从物理磁盘,创建lvm逻辑分区 pvcreate vg ...

  5. Json学习一(基础概念知识学习)

    1.Json简单介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它使得人们非常easy的进行阅读和编写. 同一时候也方便了机器进行解析和生成.它是基 ...

  6. kafka学习之-配置详解

    # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreement ...

  7. gradle教程 [原创](eclipse/ADT下 非插件 非Android Studio/AS)纯手打 第三篇:gradle完整的实战

    上两篇的地址 安装配置 http://www.cnblogs.com/uncle2000/p/4276833.html 简单实战 http://www.cnblogs.com/uncle2000/p/ ...

  8. Map的key不变,value相加

    判断map中是否含有某个key,如包含则结果value相加,如不包含则新增. 直接上demo吧: package javademo; import java.util.HashMap; import ...

  9. mac 操作idea快捷键

    http://blog.csdn.net/rainytooo/article/details/51469126 在mac下idea的常用快捷键如下,下面的快捷键都亲自试用,并有一些和eclipse对比 ...

  10. Axis2开发实例

    1.下载①axis2-1.7.4-bin.zip.②axis2-1.7.4-war.zip.③axis2-eclipse-service-plugin-1.7.4.zip.④axis2-eclipse ...