【備忘録ペ〜ジ】


曲線(B-Spline:B-スプライン)について

(気が向くままに、勝手に更新)

【備忘録ペ〜ジ】トップへ戻る
1.航跡
2.B-Spline(B-スプライン)曲線
3.曲線生成方法
4.実際の曲線生成
5.余談


1.航跡


  以前に、航跡(航空機の航路軌跡)を表示するプログラム開発に携わったことがある。

  某空港の環境システムの中の一つで、
  航跡と航空機騒音を結びつけて、騒音発生源である航空機が特定できるものである。

  「なんでこんな所を飛んでるの?」という航空機や、
  深夜や早朝問わず、起床予定とは全く関係ない時刻に、轟音により起こしてくれて、
  その日一日だるさと苛立ちをプレゼントしてくれる航空機が
  よくわかるといったシステムである。

  この航跡表示の機能の一つに、ビーコン情報からの座標より
  航路の予測補完(曲線)を生成し、一連の航跡とする機能がある。(航跡補完)

  この航跡(補完曲線)を生成する部分について忘れないうちに、記載。


2.B-Spline(B-スプライン)曲線



  以降の記載では説明を簡易化するために、緯度・経度の平面(2次元)とする。

  航跡のベースとなる航空機からのビーコン情報は、約60秒毎に座標(緯度・経度・高度)が渡される。
  (実際は3次元に対応)

  この座標点を結ぶだけだと、カクカクのV字航跡ができてしまう。
  特に、空港周辺を、外側に大きく旋回する時など、
  航空機ではありえない結果になってしまう。
  
  (図2−1 起点A、通過点B、終点C)

  これをB-Splineによる補完座標点を算出し追加することで
  座標点A,B,Cを通過する曲線が生成され航跡とするものである。

  B-Splineは、たしか自動車のルノーのデザイナーが考案した曲線生成方法である。
  補完座標点を次々求めて、結果として点A,B,Cを通過する滑らかな曲線ができあがる。

  
  (図2−2 曲線補完)


3.曲線生成方法



  (1)事前準備

   ・座標値を計算するにあたり、y=ax+bの一次方程式が求まること
   ・2つの座標より傾き、切片(a,b)が求まること
   ・2つの直線より交点が求まること 


  (2)作業点の追加

   まずは、2つの作業点を追加する。
   点Dは、直線ACの中点、
   点Eは、直線BDの延長上にあり、直線BD=直線BE
 
   (図3−1 作業点 D,E)


  (3)2つの交点の算出

   点Bを通り、直線ACに平行な直線を引く。
   上記の直線と直線AE,直線CEとの交点をそれぞれ点F、点Gとする。
 
   (図3−2 交点 F,G)


  (4)補完点の算出

   △FABの中点aと、△BCGの中点bを補完点とする。
 
   (図3−3 補完点 中点a,中点b)


   補完点(中点a,中点b)により、3点から5点へ。


  (5)次の補完点の算出

   次に起点A,通過点a、終点B(△AaB)及び
   起点B、通過点b、終点C(△BbC)の補完点座標を上記同様に算出。

 
   (図3−4 △AaB,△BbC)


  (6)補完繰り返し

   この補完点算出を一定数繰り返すことでB-Spline曲線が出来上がる。
    1回目  3点->  5点
    2回目  5点->  9点
 
   (図3−5 補完点9点)



    3回目  9点-> 17点
    4回目 17点-> 33点
    5回目 33点-> 65点
    6回目 65点->129点
     ・      ・
    n回目 (n回目−1)×2−1(n>=2)
 
   (図3−6 補完点n点)


4.実際の曲線生成



  当時のプログラムでは、65点(起点、通過点、終点含む)とした。

  また、ビーコン座標はA,B,Cの3点だけではなく、次々と情報が舞い込む。
  4点以上の座標情報に対する曲線連結手法についてはここでは省略。
  (こちらのほうが難易度は高かった。)

  B-Splineは、公式や計測値分布の近似曲線等が数学的にきちんと説明されたHPが多々ある。

  が、数学や公式と聞いただけで苦手意識が先行するのも本音であり、受け入れられやすいものではない。
  理屈うんぬんは別として、わかりやすい応用があるのではないかと思う次第。


5.余談



  航空機騒音に関して

   航空機騒音に関する法律での第一種、第二種区域での規制範囲内運用であることや
   地域発展や自治体への補助金助成等、検討に検討を重ねた上、誘致・導入に至った経緯があると思われる。

   が、正直な所、周辺自治体は良心を売り渡したんだなぁと勝手な思いがある。
   (深夜の騒音については役所への苦情も多いらしい。)

   別の空港であるが、出張中、世話になっていた個人商店のクリーニング屋さんへ、
   いつものように洗濯物を詰めてお願いした。(たまたま空港ロゴが入った紙袋に入れて。)

   その時から、雑談も消えて一気に凍りついた空気となり、
   完全に敵視されたのをピリピリと感じた記憶がある。

   その紙袋さえ使わなければ、時間外の受付や冗談も言い合えるお店だったのだが。
   それぐらい、航空機騒音は、人と人との間にも亀裂を生じさせる。

   とは言って、空港がないと移動も旅行も否定されてしまうわけで、こんなに矛盾することはない。


以上


【備忘録ペ〜ジ】トップへ戻る