平面坐标反算
(
测量上常用于计算坐标方位角
)
;----------------------------------------------
;
;
根据基线的顶点信息
,
计算每段的长度及方位角
;
FUNCTION Pmzbfs, data, Angle = angle, Distance = distance
COMPILE_OPT IDL2
IF N_params() NE 1 THEN Return, 0
num = N_Elements(data[0,*])
detxy = data[0:1,1:num-1]-data[0:1,0:num-2]
angle = Atan(detxy[1,*]/(detxy[0,*]+0.0000001))
distance = Sqrt(detxy[0,*]^2+detxy[1,*]^2)
angle = Reform(angle,num-1)
temp = Where(detxy[0,*] LT 0, num)
IF num NE 0 THEN angle[temp] = angle[temp] + !PI
temp = Where(detxy[0,*] GE 0, num)
IF num NE 0 THEN BEGIN
temp = Where(detxy[1,[temp]] LT 0, num )
IF num NE 0 THEN angle[temp] = angle[temp] + 2*!PI
ENDIF
Return, 1
END