tsutsuji.math module¶
- tsutsuji.math.calc_pl2xy(phi_deg, lambda_deg, phi0_deg, lambda0_deg)[source]¶
緯度経度を平面直角座標に変換する - input:
(phi_deg, lambda_deg): 変換したい緯度・経度[度](分・秒でなく小数であることに注意) (phi0_deg, lambda0_deg): 平面直角座標系原点の緯度・経度[度](分・秒でなく小数であることに注意)
- output:
x: 変換後の平面直角座標[m] y: 変換後の平面直角座標[m] * x軸正方向は北、y軸正方向は東を指すことに注意
- tsutsuji.math.calc_xy2pl(x, y, phi0_deg, lambda0_deg)[source]¶
平面直角座標を緯度経度に変換する - input:
(x, y): 変換したいx, y座標[m] (phi0_deg, lambda0_deg): 平面直角座標系原点の緯度・経度[度](分・秒でなく小数であることに注意) * x軸正方向は北、y軸正方向は東を指すことに注意
- output:
latitude: 緯度[度] longitude: 経度[度] * 小数点以下は分・秒ではないことに注意
- tsutsuji.math.cross_kilopost(track, result)[source]¶
minimumdistで求めたtrack上の最近傍点について、対応する距離程を求める。
- Parameters:
track (ndarray) -- np.array([x0,y0],[x1,y1],...,[xn,yn])
result (list) -- minimumdistの出力
- Returns:
最近傍点の距離程。track端点が最近傍点の場合はNone
- Return type:
float
- tsutsuji.math.cross_normal(position, track)[source]¶
曲線trackの法線のうち、positionを通過するものを求める
- Parameters:
ndarray -- position: np.array([x,y])
ndarray -- track: np.array([[x0,y0],[x1,y1],...,[xn,yn]])
Return:
- tsutsuji.math.crosspoint_2lines(A, eA, B, eB)[source]¶
2直線X, Yの交点Pを求める
- Parameters:
A (ndarray) -- 直線Xの通過点
eA (ndarray) -- 直線Xの単位ベクトル
B (ndarray) -- 直線Yの通過点
eB (ndarray) -- 直線Yの単位ベクトル
- Returns:
(PAの距離, 点Pの座標)
- Return type:
(ndarray, ndarray)
- tsutsuji.math.lat2py(l, z, L=85.05112878)[source]¶
緯度をマップタイルのピクセル座標に変換する - input:
l: 変換したい緯度(latitude) [deg] z: ズームレベル (0-18) L: 緯度の上限値 [deg]
- output:
y: ピクセル座標y成分 (256で割るとタイル座標になる)
- tsutsuji.math.long2px(l, z)[source]¶
経度をマップタイルのピクセル座標に変換する - input:
l: 変換したい経度(longitude) [deg] z: ズームレベル (0-18)
- output:
x: ピクセル座標x成分 (256で割るとタイル座標になる)
- tsutsuji.math.mindist_crossline(position, phiA, track)[source]¶
曲線trackとpositionを通る方位角phiAの直線Uの交点について、positionとの距離が最小となるものを求める
track上の各点をT_k, positionをP, 座標原点Oとして、直線Uに沿う単位ベクトルをeUで表す。 OT_k - (OP + α * eU) が最小となるようなαを求める。
- Parameters:
position (ndarray) -- np.array([x,y])
phiA (float) -- 絶対座標x軸に対して直線がなす角
track (ndarray) -- np.array([[x0,y0],[x1,y1],...,[xn,yn]])
- Returns:
[[sort_ix: 交点との距離が最小となる点のインデックス, alpha: positionから点列交点の距離, distance: 求めた交点から点列の距離],...] :
- Return type:
np.array
- tsutsuji.math.minimumdist(track, p)[source]¶
二次元曲線trackについて、座標pから最も近い曲線上の点を求める。 trackの点間は線形補間される。
- Parameters:
track (ndarray) -- np.array([x0,y0],[x1,y1],...,[xn,yn])
p (ndarray) -- np.array([xp,yp])
- Returns:
- float
mindist: 曲線交点との距離
- ndarray
crosspt: 曲線との交点座標
- int
min_ix: track中で最もpに近い点のindex
- int
second_min_ix: 最もpに近い点が含まれる区間の他端index。直交点が見つからない場合は-1。
- tsutsuji.math.phi2el(phi)[source]¶
角度phi [rad]の単位ベクトルを返す :param phi: 求める単位ベクトルが座標軸に対してなす角 [rad] :type phi: float
- Returns:
np.array([float, float])
- tsutsuji.math.px2long(x, z)[source]¶
ピクセル座標を経度に変換する - input:
x: 変換したいピクセル座標x成分 z: ズームレベル (0-18)
- output:
l: 経度 [deg]