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

サテライト屋

はじめに

 卒業研究ってのは、まあ今まで大学で身に付けてきた事を使って何かするわけですが、はっきり言って情報関連の勉強なんて大学で習ったことなんて殆ど無いに等しいものがあります。それで、この衛星データの各バンドを結合し、なんか良い感じの画像を作って卒研発表なんて無茶もいいのですが、やるのはプログラム好きの変な奴と普段プログラムやってないくせにプログラム組み出すと「俺よりうまいんじゃないの?」という奴がやるので特に問題はないと思われます。

基本設計

 何せ2年も3年も前から同じような課題をやっている人がいるわけで、しっかりソースも残っていました。という事で変換と表示部分はレイアウトやアルゴリズムを多少変えるだけで特に手を加えるだけでやることが無いんですよね。本気でやれば3日で終わるとか言うやつですね。

 そういうわけですから、なんか今年は無意味に機能をつけてみることにしました。とりあえず現段階で決まっている機能は

 後、個人的には

をつけたい所です。

 衛星データを加工する処理は大体揃っているのですが、無意味な画像処理もつけるらしいです。その辺りはOPTPiXを超えるくらいのこだわりを持ちたいところですが、時計等をつけているのでは無理じゃないかと思われます。もっとも、1年でしかもスタッフ2人でOPTPiXを超えるなんて不可能だと思いますけどね。某有名高級画像処理ソフトでさえOPTPiXの減色や縮小拡大、その他には勝てないのですから。

進行状況

2001年7月5日

 今の所、ろくに進めてないんですよね。就職決まってないから落ち着かないのもありますが、結局は暑いからやる気がおきないというだけです。

2001年8月1日

各衛星のLABファイルの比較表作成。全衛星が共通なのかと思ったら違うようです。規格はどこだ。

○ : パラメータは存在するが値はNULL
× : パラメータが存在しない

意味 共通 LANDSAT-5 SPOT-2 ADEOS
SCENE HEADER DATA L5TM BK ******* SCENE HEADER DATA S2HX 2 ******* SCENE HEADER DATA A1AVM1B2******4
BSQ 701020304050607 3010203 401020304
Satellite 人工衛星名 LANDSAT-5 SPOT-2 ADEOS
Processing Level 処理レベル BK 2 1B2
Center Latitude 中央緯度 N36.314 N36.366 N35.657
Multi Scene Seq. No. 0 0 0
Sensor センサ・タイプ TM HX AVNIR Mul
Map Projection UTM UTM UTM
Center Longitude 中央経度 E135.661 E136.555 E136.387
Multi Scene Total No. 0 0 0
Obs. Date 1997/01/13 1997/01/17 1997/01/08
Resampling Method CC CC CC
Number Of Pixels ライン幅 6920 3874 8610
Logical Format 論理フォーマット CEOS-BSQ CEOS-BSQ CEOS-BSQ
Gain Mode × N 0886 ×
Geo-Coded
Number Of Lines ライン数 5965 2987 4983
Physical Format 物理フォーマット ISO9660 ISO9660 ISO9660
Orbital Direction × D × D
Earth Ellipsoid TOKYO TOKYO TOKYO
Data Size(MB) データ・サイズ 279.9 46.5 169.6
Record Format 記録フォーマット ISO9660 ISO9660 ISO9660
Path-Row × 110- 35 × ×
Sampling Rate サンプリング・レート
Media 記録メディア CD-ROM CD-ROM CD-ROM
Full/Sub Scene × F × ×
Bands Present , , , , , , , , , , , ,
Number Of Vol ボリューム・ナンバー 1 1 1
Scene Shift Rate -2 0 -3
W/0 No. R9700808-005 R9801051-007 R9801053-010
Cloud Coverage 08 00 10
Master Media No. メディア・ナンバー D039000024 D030000008 D129000090
Ground Station HEOC HEOC HEOC
Production Date 1998/01/05 1999/03/31 1999/04/13
K-J × × 324- 277 ×
Sensor No. センサ番号 × × 2 ×
Angle Of Incidence × × L26.1 ×
Product Code × × × L1B2M-
L1B2 Option × × × , , , , ,
Sensor Mode センサーモード × × × MOB
GRS Column-Line × × × 1365- 355
RSP Path-Frame × × × 54- 291
Pixel Spacing × × × 16m
Angle Of pointing × × × -34.58

2001年8月8日

 とりあえず、有用なパラメータは下記の表のようになります。

 Obs. DateProduction Dateってどんな日付か分からないし。Number Of PixelsはLANDSATのライン幅は7020のはずなのに6920になっている。Logical FormatはどうせBSQとBIL形式しか対応させないのでわざわざ取得する必要はないかもしれない。Map ProjectionScene Shift Rate,W/0 No.,Ground Stationは言葉はわからないけど言いたい事はなんとなく分かるので追加しておくことにしよう。

 全て3つの人工衛星で共通のものなので簡単に取得できるように関数などを作りたいと思う。DLLにするとは面倒な割にあまり意味が無いので静的ライブラリに変換しよう。

意味 LANDSAT-5 SPOT-2 ADEOS
Satellite 人工衛星名 LANDSAT-5 SPOT-2 ADEOS
Processing Level 処理レベル BK 2 1B2
Center Latitude 中央緯度 N36.314 N36.366 N35.657
Sensor センサ・タイプ TM HX AVNIR Mul
Map Projection UTM UTM UTM
Center Longitude 中央経度 E135.661 E136.555 E136.387
Obs. Date 1997/01/13 1997/01/17 1997/01/08
Resampling Method CC CC CC
Number Of Pixels ライン幅 6920 3874 8610
Logical Format 論理フォーマット CEOS-BSQ CEOS-BSQ CEOS-BSQ
Number Of Lines ライン数 5965 2987 4983
Earth Ellipsoid TOKYO TOKYO TOKYO
Scene Shift Rate -2 0 -3
W/0 No. R9700808-005 R9801051-007 R9801053-010
Ground Station HEOC HEOC HEOC
Production Date 1998/01/05 1999/03/31 1999/04/13

2001年8月29日

 涼しくなってきましたね。昼の間も冷房なしで快適な季節になってきました。そろそろ、本格的に始めて9月中には完成させようかと思います。そういえば卒業研究の締め切りっていつなのでしょうか?

 それはさておき、GUI部分の設計です。学校提出用なので、まともな設計にしましょう。オンラインで公開するものは「はじめに」の下にある「基本設計」の通りふざけていますが、こちらはまともです。(と言っても俺の設計するものだからシンプルすぎですが。)
サテライト屋完成予想図
各領域は

  1. 表示画像選択用ツリーウインドウ
  2. 選択画像表示用領域
  3. 各画像詳細データ表示領域

です。各領域は全て岡田 正之さんのライブラリを使用してInternetExplorerのフレームのようにサイズ変更可能にします。

 ツリーウインドウは3段にして、上位のものから

とします。

 今は(2)の下に(3)がありますが、(3)は(1)の下にあったほうが画像表示の際は(2)の領域が大きくなって良いかもしれません。

 画像ファイルは保存すると、とんでもない容量になるので複数の場所に保存できるようにする。一つの元画像ごとに一つのプロジェクトとして別個の場所に保存して各プロジェクトの場所は実行ファイルのカレントディレクトリにあるPjFPath.txtで管理するようにする。

 プロジェクトの保存形式は次の通りとする。
プロジェクトの保存形式を示す図
画像名や123,231などのフォルダ名はそのままツリービューに反映させる。画像名と同じテキストファイルはLABから取得してきたデータや適応しているバンドの説明、加工するさいのパラメータなどのログ等を格納しツリービューでクリックされた時(3)に表示される。

 各メッセージに対する処理はもうまとめてあるので実際は後は組むだけと言う状態です。

20001年9月3日

サテライトや実行画面その1
とりあえず、スプリットウインドウを使用てみしました。
ライブラリの使用で20分くらいで楽々作成できました。
人のライブラリ使うのっていつも大変なんですが、岡田 正之さんのライブラリは楽ですねー。

 次はLABファイルを指定して1プロジェクトとしてツリービューに追加できるようにしようと思います。

2001年10月4日

 イメージデータのヘッダ部分ってLANDSAT5号とLANDSAT7号は違うように見える。実際のデータは持ってないけど海外ページにLANDSAT7号仕様書がごろごろしてる。5号の仕様書は見かけないんだよな。後、SPOT-2とADEOSも見つからない。持っているデータが扱える程度のものを作れば良いか・・・・・・。

2001年11月16日

 進行状況とか言いながら全然書いてないな。とりあえず、変換実行時にWin32APIを使用して物理メモリ量や空きメモリ量をチェックして現在の速度設定と比較してメモリ足りなかったら速度を落とすようにしたいです。メモリの状態は簡単に取得できました。一応、ソース置きます。

 でも、実装する前にBSQクラスにBILに変換する機能つけてBILクラスも作らないといけないんだよな。すぐできそうだけど・・・・・・

2001年11月17日

 今日はreallocが前の領域ちゃんと消してくれてるのか不安だったので実験をしてみました。詳しくはソース見て下さい。と言っても、それほどの物ではないんですがVisual C++付属のデバッガ使ってみるときちんと開放しているみたいです。規格見ればよかったんでしょうけどアドレス忘れてしまった。

2001年11月18日

 LAB表示完成、実際の規格がわからないから不安だが、手元にあるデータでは全て表示できた。処理内容は以下の通り

  1. "\n"を検索
  2. "\n"の次から40文字切取る
  3. " : "を検索する
  4. 無かったら次の40文字を切り取ってくる("NASDA EOC"を含んでいる場合は終了する)
  5. " : "までをリストビューにコピー
  6. " : "以降を変数に格納
  7. 後ろからスペースを削っていく
  8. 削ったものをリストビューにコピー
  9. 2〜7までを4回繰り返す
  10. 1から8までを繰り返す

LABファイル内容の表示画面

 実際、処理を行ってみると40文字区切りかと思っていたが、4回ループの所の最初の一回が39文字しかない。仕方なく削ったのだがデータを作成した人はいったい何を考えているのだろうか?まあ、単にハードウェア制限で39文字にしたのかもしれない。でも、4回目のデータの後はスペースが大量にあるので、やっぱりデータ作者がいかれてたのだろう。

 そういえば、BSQのイメージデータ内にバイナリでレコードサイズが入っていたがVisual C++とバイトオーダーが違うからひっくり返して使わないといけないんだよな。人口衛星のプログラムだから規模でかくて考えるの面倒だったのもかも知れないけど、お金もらってるんだからもっとちゃんとしようぜ。

2001年12月17日

前回から、あまり進んでいない。ウインドウのクラス化,ソースの整理くらいかな?いまだ、データをツリービューに追加できていない。とりあえず、プロジェクトのデータ保存形式を変更したので一応明記しておく。

データの保存形式

 LABファイルはBSQからの変換の際にそのCD-ROMがそのプロジェクトのCD-ROMかを照合するのに用いる。実際はCRCを取得して照合しようと思ったが、どちらにしろそんなにサイズの大きなファイルではないのでそのままコピーして使用することにした。

 STCの拡張子を持つファイルは衛星の画像データが非常に大きいので別の場所に保存する場合に使いその内容は単にパスが入ったShiftJISのテキストである。

後、あまり意味がない割に手間がかかりそうな気がしてきたので各ファイルの付属するTXTデータは作成しないようにした。

2002年1月30日

 結局、後でソフト自体の仕様が変わってしまったため。思った通りに作成できなかった。

 さらに、締め切りであせったせいでソースが汚く、無理やり仕様を変更したので、うまくGUIとの連携が取れずバグが残ってしまった。

 一応、論文を置いておきます。ソフト自体は3月の発表会が終わってからアップロードします。

*衛星の画像変換に関する研究の論文をダウンロード(886KB)

メニュー