2012年2月28日火曜日

嫌になるくらいでかいファイル

横7138縦7000の生画像ファイルがあります
グレースケールで4枚
全部で200MBくらいですが
これを処理するコードを書いてるんだけど
全然実用的な速度がでない

あやしいビューワーは結構軽々動いてるんだけど
こういうのって一体どうやって高速化してるんだろうね
C#だから遅い というのはあまり関係ないような気もするんだけどなぁ
重くなりそうな処理はしてないけど
積もり積もって重くなってるのか

7k7kを表示できるモニタなんて無いんだから
1k1kのモニタで表示するとして
1個サンプリングして7個飛ばして
その行が終わったら7行飛ばして
みたいな感じにしてるのかな?
データ数は大幅に減るからだいぶ早くなるかも

そのC#アプリ
とりあえず走らせるとメモリは100MBくらい CPUは25%使ってる
とりあえず50Mくらいのデータを読み込ませてるから
だいぶメモリを無駄遣いしてる可能性がある
CPUは C2Qマシンなのでコアを1個占有してるという感じ
シングルスレッドです
マルチスレッド? 知らんがな(´・ω・`)


ちなみに これ JAXA(YAC?)主催の衛星データ利用コンテストのデータを利用してるところ
なんかビューワーが使いづらかったので
じゃぁ自分で作っちゃおうよって
衛星はALOSです
しかし 開口合成レーダー? 7k7kくらいの解像度なんね
でもRGB+IRがあるってことは電波当てて反射を調べてるわけじゃないよなぁ…

RGB/IRの順番がわからないので
てきとーに並べてるだけですが かなり赤っぽい画像になるんですよね
そもそもそういうものなのかな 衛星側のカメラのレンジが
赤はこのファイル 緑はこのファイル 青はこのファイル
っていうのが無いから どうしましょうか…

0 件のコメント:

コメントを投稿