2013-05-31 121 views
0

我想运行使用地理处理工具的python脚本。我不想整合它们,而是想在外部而不是在ArcGIS中运行脚本。请告诉我如何用一个很好的例子来做到这一点。我必须对4幅地图进行重新分类,然后对输出进行加权叠加。下面是我能写剧本,但我不知道我在哪里得到一个错误..运行ArcGIS的Python脚本

enter code here # 

import sys, string, os, arcgisscripting 
gp = arcgisscripting.create() 
gp.CheckOutExtension("spatial") 

    gp.AddToolbox("C:/../Spatial Analyst Tools.tbx") 

    feature_shp1 = sys.argv[1] 
    if feature_shp1 == '#': 
    feature_shp1 = "D:\\BRIEFCASE\\media\\new shapefiles\\feature_shp1" 
    slope = sys.argv[2] 
    if slope == '#': 
    slope = "D:\\" 

    Reclassification__2_ = sys.argv[3] 
    if Reclassification__2_ == '#': 
    Reclassification__2_ = "2 1;2 3 2;3 4 3;4 5 4" 

    Reclassification = sys.argv[4] 
    if Reclassification == '#': 
    Reclassification = "0 13 1;13 45 2;45 80 3;80 108 4;108 146 5;146 176;174 195 7;195 231 8;231 255 9" 

    Reclass_feat3 = "D:\\" 
    Reclass_slop3 = "D:\\3" 
    gjh = "C:\" 
    Reclass_field = "VALUE" 
    Reclass_field__2_ = "VALUE" 

    gp.Reclassify_sa(feature_shp1, Reclass_field__2_, Reclassification__2_,   Reclass_feat3, "NODATA") 

    gp.Reclassify_sa(slope, Reclass_field, Reclassification, Reclass_slop3, "NODATA") 

    gp.WeightedSum_sa("'..Reclass_feat3' VALUE 1;'D:..Reclass_slop3' VALUE 1","ijh") 
+0

请仅发布没有语法错误的代码。您的缩进不一致。 –

+0

请发布您的错误信息。首先是 –

+1

。您可以从命令行或IDLE运行您的Python脚本 - 无需任何教程。但是,您需要指定您的问题,发布追溯,......一般而言,您应该在SE的[GIS部分](http://gis.stackexchange.com/)上发布GIS相关问题。 – LarsVegas

回答

1

如果你想使用ArcGIS地理处理工具,而不发射了ArcGIS的本身,你会希望把下面的代码位在程序的顶部:

import arcpy 
#Rest of Program 
#Step 3:Profit! 

这应该允许您使用各种工具从工具箱,包括加权和重新分类。我认为arcpy取代了arcgisscripting作为导入模块,但我不确定,因为我没有使用ArcGIS的python脚本来处理除arcpy之外的其他任何东西。

至于如何让工具箱工具工作,the ArcGIS Resource center can be quite helpful