tsutsuji package¶
Submodules¶
tsutsuji.backimg module¶
- class tsutsuji.backimg.BackImgControl(mainwindow)[source]¶
Bases:
object
tsutsuji.config module¶
tsutsuji.cui2 module¶
tsutsuji.drawcursor module¶
tsutsuji.gui_tsutsuji module¶
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]
tsutsuji.measure module¶
tsutsuji.solver module¶
- class tsutsuji.solver.IF(A, B, C, phiA, phiB, phiC, lenTC1, lenTC2, lenTC3, lenTC4, lenCC, lenLint, R_input, R2_input, tranfunc, fitmode, curve_fitmode_box, cursor_obj, cursor_f_name, cursor_t_name, cursor_via_name)[source]¶
Bases:
object
- class tsutsuji.solver.solver[source]¶
Bases:
object
- compound_curve(A, phiA, B, phiB, C, phiC, lenTC1, lenTC2, lenTC3, tranfunc, dl=0.1, error=0.01, num_max=50, givenR1=None)[source]¶
[A]-TC-CC-[C]-CC-TC-CC-TC-[B] based on mode1
- compound_curve_Linterm(A, phiA, B, phiB, C, phiC, lenTC1, lenTC2, lenTC3, lenTC4, lenLint, tranfunc, dl=0.1, error=0.01, num_max=50, givenR1=None)[source]¶
[A]-TC-CC-TC-S-TC-CC-TC-[B] based on mode1
- compound_curve_givenR(A, phiA, B, phiB, lenTC1, lenTC2, lenTC3, R1, R2, tranfunc, dphi=0.001, error=0.01, num_max=50)[source]¶
- compound_curve_givenR_Lint(A, phiA, B, phiB, lenTC1, lenTC2, lenTC3, lenTC4, lenLint, R1, R2, tranfunc, dphi=0.001, error=0.01, num_max=50)[source]¶
- compound_curve_shiftStartPos(A, phiA, B, phiB, C, phiC, lenTC1, lenTC2, lenTC3, tranfunc, dl=0.1, error=0.01, num_max=50, givenR1=None)[source]¶
[A]-TC-CC-[C]-CC-TC-CC-TC-[B] based on mode2
- curvetrack_fit(A, phiA, B, phiB, lenTC1, lenTC2, tranfunc, Rtmp=1000, dr=0.1, error=0.01, R0=0)[source]¶
AB間を結ぶ曲線軌道の半径を返す A: 始点座標 phiA: 始点での軌道方位 B: 終点座標 phiB: 終点での軌道方位 lenTC1: 始点側の緩和曲線長さ lenTC2: 終点側の緩和曲線長さ tranfunc: 逓減関数 'line' or 'sin' Rtmp: 曲線半径初期値 dr: 残差の微分で使う error: 許容誤差
R0: 始点での軌道半径(複合曲線の緩和曲線を求める際に使用, default: 0)
- curvetrack_relocation(A, phiA, B, phiB, lenTC1, lenTC2, tranfunc, R, dx=0.1, error=0.01)[source]¶
A,Bを通る直線を結ぶ曲線軌道の始点を返す A: 始点座標 phiA: 始点での軌道方位 B: 終点座標 phiB: 終点での軌道方位 lenTC1: 始点側の緩和曲線長さ lenTC2: 終点側の緩和曲線長さ tranfunc: 逓減関数 'line' or 'sin' R: 曲線半径 dx: 残差の微分で使う error: 許容誤差
- reverse_curve(A, phiA, B, phiB, lenTC11, lenTC12, lenTC21, lenTC22, tranfunc, len_interm=0, C=None, R1=None, R2=None, lenCC1=None, lenCC2=None)[source]¶
[A]-TC-CC-TC-[C]-S-TC-CC-TC-[B]
- shift_by_TCL(A, phiA, B, phiB, C, tranfunc, TCLtmp=0, dl=0.1, error=0.001)[source]¶
AB間を結び、Cに最も近い点を通過する曲線軌道の半径、TCL, CCLを返す。 始点: A、終点: Bの延長線上となる曲線軌道について、点Cとの距離が最小となるR, TCLをニュートン法で求める。 A: 始点座標 phiA: 始点での軌道方位 B: 終点座標 phiB: 終点での軌道方位 C: 経由点 tranfunc: 逓減関数 'line' or 'sin' TCLtmp: 緩和曲線長の初期値 dl: 残差の微分で使う error: 許容誤差
tsutsuji.track_control module¶
- class tsutsuji.track_control.TrackControl[source]¶
Bases:
object
- convert_relativecp(trackkey, pos_cp, owntrack=None, checkU=False)[source]¶
抽出した制御点を自軌道座標に変換 :param trackkey: 注目軌道キー :type trackkey: string :param pos_cp: self.takecpで抽出した注目軌道の制御点リスト :type pos_cp: list :param owntrack: 座標変換の基準となる軌道キー (Noneの場合はself.conf.owntrack) :type owntrack: string :param checkU: U字軌道チェックを行う場合はTrue :type checkU: bool
- Returns:
- ndarray
resultcp: [注目軌道基準の距離程, 注目軌道基準のx, y座標, 自軌道基準制御点の距離程, 自軌道基準のx方向距離, 自軌道基準制御点のx, y座標]
- relativepoint_single(to_calc, owntrack=None, parent_track=None, check_U=True)[source]¶
owntrackを基準とした相対座標への変換
- Parameters:
string -- to_calc: 変換する軌道
string -- owntrack: 自軌道 (Option)
- Returns:
- ndarray
[[owntrack基準の距離程, 変換後x座標成分(=0), 変換後y座標成分, 変換後z座標成分, 対応する軌道の距離程,絶対座標x成分,絶対座標y成分,絶対座標z成分,カント], ...]