ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:573.94KB ,
资源ID:12087165      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12087165.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ArcGIS数据互操作在线处理.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ArcGIS数据互操作在线处理.docx

1、ArcGIS 数据互操作在线处理文档编号:_版 本 号:_范 围 :内部 公开ArcGIS for Server 数据互操作模块在线数据转换2014年4月易智瑞(中国)信息技术有限公司制定及修订记录版本修订时间修订人修订类型修订章节修订内容V0.12014-04-18刘宇A* 修订类型分为A - ADDED M - MODIFIED D DELETED 注:对该文件内容增加、删除或修改均需填写此记录,详细记载变更信息,以保证其可追溯性。目 录ArcGIS 产品支持多种数据格式的转换,这得益于ArcGIS 产品的数据互操作模块 Data Interoperability。ArcGIS 的数据互操

2、作模块可以在Desktop,ArcGIS Engine和ArcGIS for Server中运行,在10.2版本的互操作模块可以直接读取150多种数据格式,可以对110多种数据格式进行写操作。在9.x版本的时候,只要安装了ArcGIS 系列的相应产品,数据互操作模块也被同时安装,在10.x系列中数据互操作模块并没有随主程序安装,而是需要单独安装,不过,安装介质和主程序在同一张盘中,如下图所示:在桌面软件中进行数据的转换,相信很多人已经用过而且熟悉,这次讨论的主要是如何在服务器端进行数据的转换。1 软件环境ArcGIS for Server 10.2+数据互操作模块ArcGIS for Desk

3、top 10.2+数据互操作模块2 目的实现shp数据到mif数据的转换3 操作过程3.1 建立GP服务在服务器端进行数据转换,依靠的是ArcGIS的GP服务,所以先要将这个GP模型建立OK。说明,在数据互操作的模块中,很多GP的工具的输出都是目录,而目录是不能作为GP服务的输出参数(后面分析一下,这个我也纳闷了半天),即便是在建立模型的时候给这个参数设置了”P”标记,如下图:发布服务后也看不到输出参数,如下:在GP模型中,如果没有输出参数,是不允许的,不然怎么得到这个结果的?3.2 过程分析要在服务器端进行数据转换,需要以下步骤1,上传文件,2,服务器进行文件格式转换操作,3,处理完了之后返

4、回给目标文件。前面提到过,在数据互操作的时候,输出的很多都是目录,而这个目录是不能作为服务器端输出参数的,所以需要另辟蹊径,你可能已经知道答案了,没错,可以用Python去写,上传的文件如何处理呢,这个根据情况,如果数据文件是单个的文件,那么直接上传就可以了,如果是shp这样的格式(由好几个文件组成),那么需要上传shp格式的打包文件,传到服务器端,进行解压,Python自带了解压模块,根据这个思路,那么整个流程的步骤应该是:1. 上传文件(打包的)2. 服务器解压文件3. 服务器处理解压后的文件4. 服务器打包处理好的文件5. 服务器将打包后的文件返给客户端3.3 操作演示整个模型如下:用的

5、代码如下:# -*- coding:utf-8 -*-Created on 2014-4-17author: 刘宇import os,os.pathimport zipfileimport arcpydef zip_dir(dirname,zipfilename): filelist = if os.path.isfile(dirname): filelist.append(dirname) else : for root, dirs, files in os.walk(dirname): for name in files: filelist.append(os.path.join(root

6、, name) zf = zipfile.ZipFile(zipfilename, w, zipfile.zlib.DEFLATED) for tar in filelist: arcname = tarlen(dirname): #print arcname zf.write(tar,arcname) zf.close()def unzip_file(zipfilename, unziptodir): if not os.path.exists(unziptodir): os.mkdir(unziptodir) zfobj = zipfile.ZipFile(zipfilename) for

7、 name in zfobj.namelist(): name = name.replace(,/) if name.endswith(/): os.mkdir(os.path.join(unziptodir, name) else: ext_filename = os.path.join(unziptodir, name) ext_dir= os.path.dirname(ext_filename) if not os.path.exists(ext_dir) : os.mkdir(ext_dir,0777) outfile = open(ext_filename, wb) outfile.

8、write(zfobj.read(name) outfile.close()def getFeatureClass(wsdir,desws): if os.path.exists(wsdir): arcpy.env.workspace=wsdir featureclasses =arcpy.ListFeatureClasses() for fc in featureclasses:# arcpy.ImportToolbox(D:/2014/GP/CADToShape/CADToShape/Interoperability.tbx)# /arcpy.gp.toolbox = D:/2014/GP

9、/CADToShape/CADToShape/Interoperability.tbx; Destination_MapInfo_Directory_=C:testtest9# arcpy.gp.SpatialETLTool2(fc, Destination_MapInfo_Directory_) SX=MIF,+desws+,RUNTIME_MACROS,QUOTE_OUTPUT_VALUES,No,SEPARATOR,ENCODING,META_MACROS,DestQUOTE_OUTPUT_VALUES,No,DestSEPARATOR,DestENCODING,METAFILE,MIF

10、,COORDSYS,_FME_DATASET_IS_SOURCE_,false Output_Dataset = MIF,C:testtest5,RUNTIME_MACROS,QUOTE_OUTPUT_VALUES,No,SEPARATOR,ENCODING,META_MACROS,DestQUOTE_OUTPUT_VALUES,No,DestSEPARATOR,DestENCODING,METAFILE,MIF,COORDSYS,_FME_DATASET_IS_SOURCE_,false# Process: Quick Export arcpy.QuickExport_interop(fc,

11、 SX)# Script arguments#v2000_hrcn_shp = arcpy.GetParameterAsText(0)#if v2000_hrcn_shp = # or not v2000_hrcn_shp:# v2000_hrcn_shp = C:testtest22000_hrcn.shp # provide a default value if unspecified#Destination_MapInfo_Directory_ = arcpy.GetParameterAsText(1)#if Destination_MapInfo_Directory_ = # or n

12、ot Destination_MapInfo_Directory_:# Destination_MapInfo_Directory_ = C:testtest2 # provide a default value if unspecified# Local variables:# Process: shp2mif#arcpy.gp.toolbox = D:/2014/GP/CADToShape/CADToShape/Interoperability.tbx;# Warning: the toolbox D:/2014/GP/CADToShape/CADToShape/Interoperabil

13、ity.tbx DOES NOT have an alias. # Please assign this toolbox an alias to avoid tool name collisions# And replace arcpy.gp.SpatialETLTool2(.) with arcpy.SpatialETLTool2_ALIAS(.)#arcpy.gp.SpatialETLTool2(C:testtest22000_hrcn.shp, Destination_MapInfo_Directory_)if _name_ = _main_: dirx=C:testtest6 zipf

14、ilename = arcpy.GetParameterAsText(0)# zipfilename=C:testtest1.zip unzipWs= arcpy.GetParameterAsText(1) desws= arcpy.GetParameterAsText(2) desws3= arcpy.GetParameterAsText(3)# unzipWs=C:testtest8# desws = C:testtest8 unzip_file(str(zipfilename),str(unzipWs) getFeatureClass(str(unzipWs),str(desws) zi

15、p_dir(str(desws),desws3) ArcGIS for Server 从10.1 版本开始支持文件上传的这个接口,只需要在服务这个GP服务的时候选中uploads就行,如下图:在rest的服务目录中,进入这个服务,上传文件成功后,将会返回一个ID,如下图:上传成功后的文件可以在这里找到,可以看到这个ID表示的是一个文件目录:在执行GP的时候,按照下面这个格式,这里的itemID,就是刚才返回的ID,服务器通过这个ID,就可以找到上传到的文件,下来就进入到了,数据解压,处理和打包下载这个环节。返回后的结果3.4 关于文件目录在建立GP模型的时候,有4个标记了P的参数,但是服务发布

16、成功后,只有2个,凡是类型为folder的都不会出现,这个我分析了半天算是找到,在参数中,有一个是解压目录,就是将上传到的zip文件放到这个目录中,最后可以看到这个解压目录被放到了这里,如下图:其实Server在这里做了一个偷天换日的工作,只要发现目录,在发布服务的时候自己就会给替换掉,而将目录的最后一段,比如我原先的的目录是C:testtest9,server会将test9作为常量,将前面的一段给替换掉。关于输出目录,在模型中设置Scratch Workspace 为如下地址:这个输出目录会在arcgisjobs目录下出现,完整的目录如下:从上分析可以看到,Server其实帮我们做了不少的工作,路径的替换,让我们避免了路径的不存在,而数据目录是在不同的jobid下面,有可以避免重复,这里Server做的的确是不错。4 小结从上面的分析,演示,可以看出ArcGIS for Server的数据互操作模块能很好的实现在线数据的转换工作,对于那些手头有数据,但是没有数据转换工具的的用户来说,这算是一种很好的方案。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1