IDL 實現求算 DEM 坡度坡向

2022-09-01 16:18:16 字數 1373 閱讀 7766

關於坡度坡向的定義,請google之。

idl 原始碼

pro aspect_slope,dem,aspect = aspect,slope=slope,pixelsize = pixelsize

;ref to doi:10.1016/j.cageo.2003.07.005

aspect = -1

slope = -1

pixelsize = [30.,30.]

get_sz,dem,ns=ns,nl=nl,nb=nb,type = type

if isa(dem,/number) and nb eq 1 and size(dem,/n_dimensions) eq 2 then begin

k_x = transpose([-1,1])

k_y = [-1.0,1.0]

dx = convol(dem,k_x,/edge_truncate,/nan)/pixelsize[1] ; mei cuo ,

dy = convol(dem,k_y,/edge_truncate,/nan)/pixelsize[0]

pi = acos(-1.0d)

help,dx,dy

slope = atan( sqrt(dx*dx + dy * dy)) * 180.0 / pi

aspect = 270 + atan(dy*1.0 /dx) - 90.0 * fix(dx / abs(dx))

endif

endpro get_sz,data,ns=ns,nl=nl,nb=nb,type = type

sz = size(data)

type = sz[0] ge 1 ? sz[-2] : 0

ns = sz[0] ge 1 ? sz[1] : 1

nl = sz[0] ge 2 ? sz[2] : 1

nb = sz[0] ge 3 ? sz[3] : 1

end

主要convol視窗卷積操作,詳細用法查idl幫助。如果熟悉數字影象處理,應該記得拉普拉斯運算元或者canny運算元。例如以左上角(2,2)畫素為中心3×3的視窗,點乘以[0,-1,0,],[-1,5,-1],[0,-1,0]],然後移動到(2,3)畫素,再次點乘以[0,-1,0,],[-1,5,-1],[0,-1,0]],這就叫做滑動視窗卷積。其中[0,-1,0,],[-1,5,-1],[0,-1,0]]叫做卷積核。

卷積和點乘以乙個意思,首先要size一樣,例如[1,2]點乘或卷積 [3,4],就等於 1*3+2*4 = 11。其次是對齊位置,各乘各的,1乘3,2乘4,最後求和。

剩下就是翻譯坡度、坡向的公式了,查參考pdf文獻,sqrt是開平方,atan是arctan反正切函式,abs絕對值函式,fix求整。

然後就是結果輸出了。

Matlab求微分方程de符號解

1.dsolve 函式 在求通解問題 syms y x y dsolve x 2 y x 2 y diff y 0 這裡插入 片 syms y x 定義符號變數 dy diff y 一階導數 d2y diff y,2 二階導數,用於初值或邊值條件的賦值 y dsolve diff y,3 diff ...

IDL實現NPP衛星資料地理校正

npp national polar orbiting operational environmental satellite system preparatory project,國家極地軌道執行環境衛星系統預備工程衛 衛星於2011年10月28日,從加利福尼亞州范登堡空軍基地發射成功,npp衛星...

IDL實現向量 shp 裁剪柵格TASK(一

隨著envi idl版本的更新,idl對向量和柵格資料的處理也變得越來越簡單化。其提供了很多方便的介面,使得使用者呼叫和學習練習便捷成為了可能。最近接觸idl,發現好多網上的 都是延後的,新的介面 理解和編寫起來都比較方便,尤其是在做大量資料研究和應用時,使用批處理的方式顯得尤其重要。新的介面還在摸...