打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
ArcGIS与Python结合(一)
最近很多工作都需要用到python,在使用过程中出现了一些问题,简单地总结了部分处理问题的方法。希望碰到类似问题的朋友可以尽快的找到解决的方案,节约时间。
问题1、在import arcgisscripting的时候,提示ImportError: No module named arcgisscripting错误信息,该错误主要导致无法创建gp对象,有如下方法解决:
a、使用win32com;代码如下:
import  win32com.client
#create the geoprocessor object
gp=win32com.client.Dispatch("esriGeoprocessing.GpDispatch.1")
......
b、首先添加系统路径,参数为PYTHONPATH="D:\Program Files\ArcGIS\Bin";即路径为ArcGIS安装目录下的BIN目录;
之后,将下列代码保存为arcgisscripting.py文件,并将该文件放在BIN目录下;
'''----------------------------------------------------------------------------------
arcgisscripting.py
----------------------------------------------------------------------------------'''
import win32com.client
def create(licensetype=None):
gp = win32com.client.Dispatch("esriGeoprocessing.GpDispatch.1")
if licensetype is not None:
Licensed=gp.SetProduct(licensetype)
if not (Licensed in ["NotLicensed","Failed"]):
return gp
#Either the licensetype was not set, or it failed
#Try to get the highest possible license
types = ["ArcInfo","ArcEditor","ArcView"]
for license in types:
Licensed=gp.CheckProduct(license)
if not (Licensed in ["NotLicensed","Failed"]):
Licensed = gp.SetProduct(license)
print "geoprocessor started with license: %s (%s)"%(license,Licensed)
return gp
else:
print "license %s is %s"%(license,Licensed)
gp.AddError("No License available for geoprocessor")
raise ValueError,"No License available for geoprocessor"
if (__name__=="__main__"):
gp=create()
调用如下:
import sys, string, os, arcgisscripting
gp  = arcgisscripting.create()
......
问题2、第二就是调用函数的问题,在调用过程中,应尽可能使用原函数的原型,对于所给实例不能完全有效,例如
用Defineprojection函数的时候,参数都对的情况下,不知道为什么提示
Traceback (most recent call last):
File "C:\pyUsle\src\SetSpatialRef.py", line 9, in <module>
gp.Defineprojection("C:\\WorkSpace\\testdata\\lots\\0002.aux",coordsys)
File "d:\Python26\lib\site-packages\win32com\client\dynamic.py", line 512, in __getattr__
raise AttributeError("%s.%s" % (self._username_, attr))
AttributeError: esriGeoprocessing.GpDispatch.1.Defineprojection
原实例程序为:
import arcgisscripting
gp = arcgisscripting.create()
gp.workspace = "c:/Workspace"
gp.toolbox = "management"
coordsys = "Coordinate Systems/Geographic Coordinate Systems/North America/North American Datum 1983.prj"
gp.defineprojection("counties.shp", coordsys)
修改后的代码为:
gp.DefineProjection_management("ww",coordsys)
Python工作还在继续中,有的问题继续贴进!
Ps:更多信息http://user.qzone.qq.com/452339895/blog/1272556243
源地址:http://blog.renren.com/GetEntry.do?id=462352126&owner=291118225
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【ArcGIS for Server】制作并发布GP服务
初到英国留学,必须要注意的18件事情
Python pyarmor包
GP12早期生产遏制
贺立秋
gp2
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服