ArcGIS 9.3中Python程序的使用与9.2相比变化还是挺多的。首先最重要的一点是,在创建Geoprocessor对象时,可以针对不同的版本来进行处理了。在ArcGIS 9.3中,可以使用下面两种方式来声明一个Geoprocessor对象:
gp = arcgisscripting.create(9.3)
或者是如原来一样的声明:
gp = arcgisscripting.create()
这两种声明方式带来一些使用上的不同。最主要的一个变化是,使用9.3版本的geoprocessor, 下面这些工具如:
ListTools,
ListEnvironments,
ListToolboxes,
ListFeatureClasses,
ListDatasets,
ListTables,
ListRasters,
ListWorkspaces
返回一个列表(List)数据类型。这也就意味着这样就可以在程序中使用更Python的for语句对返回的对象进行遍历,而不是像 以前版本那样使用while来进行循环操作。没有特别声明版本的声明语句则能够与 9.2非常好地兼容。
这样的变化当然是好的,但是对于已经存在的原有程序简直就是个灾难。如果不进行修改,那么以后的处理肯定会混合使用这两种不同版本的 Geoprocessor; 如果进行修改 ...??? 。
另外,还有一些其他的变化,可以参考ArcGIS 9.3的帮助手册。
-------------------------------------------------------------------------------------------------------
p.s.
已经遭遇第一个问题,原来处理第二次土地调查写了一些脚本。因为比较简单,所以改用9.3的Geoprocessor试一下。结果改代码用了二十分钟。原来的时 候,运行之后还有时间泡壶茶喝的 :'( 。
gp = arcgisscripting.create(9.3)
或者是如原来一样的声明:
gp = arcgisscripting.create()
这两种声明方式带来一些使用上的不同。最主要的一个变化是,使用9.3版本的geoprocessor, 下面这些工具如:
ListTools,
ListEnvironments,
ListToolboxes,
ListFeatureClasses,
ListDatasets,
ListTables,
ListRasters,
ListWorkspaces
返回一个列表(List)数据类型。这也就意味着这样就可以在程序中使用更Python的for语句对返回的对象进行遍历,而不是像 以前版本那样使用while来进行循环操作。没有特别声明版本的声明语句则能够与 9.2非常好地兼容。
这样的变化当然是好的,但是对于已经存在的原有程序简直就是个灾难。如果不进行修改,那么以后的处理肯定会混合使用这两种不同版本的 Geoprocessor; 如果进行修改 ...??? 。
另外,还有一些其他的变化,可以参考ArcGIS 9.3的帮助手册。
-------------------------------------------------------------------------------------------------------
p.s.
已经遭遇第一个问题,原来处理第二次土地调查写了一些脚本。因为比较简单,所以改用9.3的Geoprocessor试一下。结果改代码用了二十分钟。原来的时 候,运行之后还有时间泡壶茶喝的 :'( 。
没有评论:
发表评论