xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 5KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-08-18
  • 語言: 其他
  • 標簽: arcgis??水文分析??

資源簡介

利用ArcGIS計算河流的平均比降。參考的方法是【約翰斯通-克羅斯】法

資源截圖

代碼片段和文件信息

#############################################################
#???????????????????????????????????????????????????????????#
#???該工具利用【約翰斯通-克羅斯】方法計算河底平均比降???????????#
#???在使用的時候必須先選擇一條河流,工具會判斷輸入的河流數量?????#
#???大于一條河流時不予以計算??????????????????????????????????#
#???用于計算的DEM為無凹陷點DEM????????????????????????????????#
#???????????????????????????????????????????????????????????#
#############################################################


#?-*-?coding:?gbk?-*-
import?arcpy
import?math
inputLine?=arcpy.GetParameterAsText(0)?#河流圖層

dem?=?arcpy.GetParameterAsText(1)?#無凹陷點DEM
riverLen?=?7873.232038

arcpy.AddMessage(u‘..................‘)
arcpy.AddMessage(u‘......開始執行...........‘)

#?記錄高程值的數據
heightList?=?[]

iputCout=0
mmCursor?=?arcpy.da.SearchCursor(inputLine?[“SHAPE@LENGTH“])
for?row1?in?mmCursor:
????riverLen?=?row1[0]??????#順便獲取河流長度
????iputCout=iputCout+1

arcpy.AddMessage(u‘......獲取了河流長度......‘)
#如果選中的是一個線要素,則執行計算,否者不計算多條河流
if?iputCout==1:
????##先將線轉為折點
????outLine1?=?arcpy.FeatureVerticesToPoints_management(inputLine?“in_memory/outline“)
????arcpy.AddMessage(u‘......河流線已經轉換為點集.......‘)

????#河流節點
????riverPoints?=?[]

????#?獲取河流的節點,以用作計算高差和河長
????for?row?in?arcpy.da.SearchCursor(outLine1?[“SHAPE@XY“]):
????????#?從點圖層數據獲取所有的點的XY
????????x?y?=?row[0]
????????#從地形數據中獲取其高程的象元值
????????pointStr?=?str(x)?+“?“+str(y)
????????result?=?arcpy.GetCellValue_management(dempointStr)
????????#print?“point??“+?str(vetPointL)??+?“?Height?value?is?:?“?+?str(result)
????????riverPoints.append(row[0])
????????heightList.append(str(result))

????arcpy.AddMessage(u‘......已經獲取了折點的高程值......‘)
????#子河段長度

????subRiverList?=?[]
????hDiffList?=?[]
????#?計算每一個子河段的長度
????for?i?in?range(0len(riverPoints)-1):
????????xy?=?riverPoints[i]
????????x1y1?=?riverPoints[i+1]
????????#計算河段長度
????????dis?=math.sqrt(pow((x1-x)2)+pow((y1-y)2))
????????subRiverList.append(dis)

????arcpy.AddMessage(u‘......河流子河段長度計算完成完成.......‘)

????#?計算從高程從低到高部分的差距
????listLen?=?len(heightList)
????for?j?in?range(0listLen-1):
????????h1?=?float(heightList[j])
????????h2?=?float(heightList[j+1])
????????xheight?=?0
????????xheight?=?h1-h2
????????hDiffList.append(xheight)

????arcpy.AddMessage(u‘......各折點的高程差計算完成......‘)

????#?計算每個河段的比降
????subbijiang?=?[]
????for?i?in?range(len(hDiffList)):
????????Si=?hDiffList[i]/subRiverList[i]
????????subbijiang.append(Si)

????arcpy.AddMessage(u‘......子河段比降計算完成......‘)
????#?計算最終的比降
????#?計算分子
????sumUp?=?0
????for?i?in?range(len(hDiffList)-1):
????????sumUp?=?sumUp?+?subRiverList[i]*pow(subbijiang[i]0.5)

????S?=?pow((sumUp/riverLen)2)

????arcpy.AddMessage(u‘......該河流的總長為:?‘?+?str(riverLen)+u‘???平均比降為:?‘?+str(S))
????arcpy.AddMessage(u‘......計算完畢.......‘)

else:
????arcpy.AddMessage(u‘......您選中了?‘+str(iputCout)?+??u‘??條河流......‘)
????arcpy.AddMessage(u‘......工具已經停止計算沒有算出您想要的結果......‘)
????arcpy.AddMessage(u‘......因為您目前選中了多條河流。只能選中一條河流進行計算!......‘)



?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-07-11?16:49??河流平均比降計算工具BY李遠祥\
?????文件???????12800??2017-07-11?16:47??河流平均比降計算工具BY李遠祥\平均比降計算工具By李遠祥.tbx
?????文件????????3751??2017-07-11?14:01??河流平均比降計算工具BY李遠祥\比降計算腳本.py

評論

共有 條評論