最終更新日 : 2002年06月17日

サテライト屋


■CEOS BSQのイメージデータ内部


仕様書とバイナリデータから調べたところ、イメージデータ内の1レコードは次のような構成になる。

CEOS BSQフォーマット、イメージデータの1レコード構成図

 プレフィックス、サフィックスは衛星、又はセンサー毎に大きさが変化している。

 プレフィックス,サフィックスは、イメージデータ内のディスクプリター内にサイズが保存されているが、その位置も衛星,センサーの種類に影響されている。これは下記のようなiniファイルを作成するのとで対応させます。

[LANDSAT-5TM]
PrefixPos=280
PrefixSize=4
ImagePos=284
ImageSize=4
SuffixPos=288
SuffixSize=4
LeftFillPos=24
LeftFillSize=4
RightFillPos=28
RightFillSize=4

[SPOT-2HX]
PrefixPos=276
PrefixSize=4
ImagePos=280
ImageSize=4
SuffixPos=288
SuffixSize=4
LeftFillPos=24
LeftFillSize=4
RightFillPos=28
RightFillSize=4

[ADEOSAVNIR Mul]
PrefixPos=280
PrefixSize=4
ImagePos=284
ImageSize=8
SuffixPos=292
SuffixSize=4
LeftFillPos=24
LeftFillSize=4
RightFillPos=28
RightFillSize=4

 次にイメージデータの左右にあるダミーピクセルですが、これをどう扱うかが問題です。このダミーピクセルというのは、
ダミーピクセル説明用図1(左) ダミーピクセル説明用図2(右)
左の図では左右の黒い部分、右の図では(1)と(3)の部分にあたります。もちろん、各ラインでサイズが違うので各レコード中のプレフィックス内にサイズが記載されています。

 問題はここからですが、(1)と(3)のデータを省くのに次の2通りの方法があります。その方法は、

  1. ラインごとにメモリ領域を確保して(1)(3)の部分をまったく無視する。
  2. (1)や(3)の一番狭い部分を幅0として削る。

と言うものですが、1だと扱うデータ量はかなり減りますがプログラムの手間が非常に大きいし、2だとデータ量があまり減りません。

 どうするのが良いのか悩みどころです。


■クラス構成図


 3月発表バージョンの基礎設計というかクラス構成が決まったので構成図を作成してみた。

サテライト屋Ver2.0のクラス構成図

 今回はプログラマの熟練度が低いので、全てのクラスをメインウインドウに持たせる形となった。しかも、まだマルチスレッドの仕組みをよく理解していないので、この構成でマルチスレッド化できるか怪しい。

 しかし、衛星の画像を扱っている時に他の事をすることはまずないので、マルチスレッド化しなくても良いかもしれない。


■ダウンロード


最後に作った物かどうかはわかりませんが置いておきます。今、設計を見直すと無茶苦茶なやり方しています。表示部分くらいしかバグが無いのが奇跡としか言いようが無い。

最終版のダウンロード

メニュー