等高线回放水平偏差计算方法 Python

import arcpy

import os


arcpy.env.overwriteOutput=True


Table=arcpy.env.scratchGDB


a=arcpy.GetParameterAsText(0)


a1=arcpy.GetParameterAsText(1)


b=arcpy.env.scratchGDB+os.path.sep+"Contour_b"

b1=arcpy.env.scratchGDB+os.path.sep+"Contour_b1"

out_table=arcpy.env.scratchGDB+os.path.sep+"out_tb"

# height1

height_ori=arcpy.GetParameterAsText(2)

# height2

height_end=arcpy.GetParameterAsText(3)

# interval

height_interval=arcpy.GetParameterAsText(4)


Table_name=arcpy.GetParameterAsText(5)


Output_Feature_Class = arcpy.env.scratchGDB+os.path.sep+"output"


height1=int(height_ori)

height2=int(height_end)

interval=int(height_interval)


Number=(height2-height1)/interval+1


arcpy.MakeFeatureLayer_management(a,b);

arcpy.MakeFeatureLayer_management(a1,b1);


arcpy.CreateTable_management(Table,Table_name, "", "");

arr=[];

str1=[];

N=height1

i=0

while N<=height2:

    arcpy.SelectLayerByAttribute_management(b, "NEW_SELECTION", "Contour =  "+str(N))

    arcpy.SelectLayerByAttribute_management(b1, "NEW_SELECTION", "Contour =  "+str(N))

    ## Process: Feature To Polygon

    arcpy.FeatureToPolygon_management(b+";"+b1, Output_Feature_Class, "", "ATTRIBUTES", "")

    arcpy.Statistics_analysis(Output_Feature_Class, out_table, "Shape_Area SUM", "")

    cursor=arcpy.da.SearchCursor(out_table,"SUM_Shape_Area")

    row=cursor.next()

    arr.append(row[0])

    N=N+interval

while i<Number:

    arcpy.AddField_management(Table+os.path.sep+Table_name, "Contours_"+str(height1+i*interval), "DOUBLE")

    str1.append("Contours_"+str(height1+i*interval))

    i+=1


cursor1=arcpy.da.InsertCursor(Table+os.path.sep+Table_name,str1)

cursor1.insertRow(arr)



arcpy.Delete_management(Output_Feature_Class)

arcpy.Delete_management(b)

arcpy.Delete_management(b1)

arcpy.Delete_management(out_table)


等高线回放水平偏差计算方法 Python,布布扣,bubuko.com

等高线回放水平偏差计算方法 Python

上一篇:C++编程-真的不要重复造*吗


下一篇:java发送邮件