2008年11月12日星期三

ArcGIS 9.3与9.2中Python使用Geoprocessor的变化

   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试一下。结果改代码用了二十分钟。原来的时 候,运行之后还有时间泡壶茶喝的 :'(


没有评论: