2013/07/13

NASAのSRTM3をPHPで開く方法


米NASAがスペースシャトルで収集した標高データSRTM3データを使いたいと思っていたのだけど、どうやって使えばいいか分からずそのままにしてた。
http://www2.jpl.nasa.gov/srtm/
http://dds.cr.usgs.gov/srtm/version2_1/SRTM3/

久しぶりにまた検索したりで考えていたら、Vectorに
http://www.vector.co.jp/soft/data/home/se049752.html
「データはモトローラ形式の16bit整数」との記述を発見。

変換できないか考えたけど、よくわからず、、、バイナリエディタghex入れて開いてみたけど使えそうにない。

しかし結局、直接的には、下記のサイトさんのおかげで解決。
http://www.yamareco.com/weblog/archives/2007/03/gps_2.html

ヘッダ無しで標高データだけがバイナリ形式で16バイトのBigEndianで並んでいるとのこと。
16バイト(Bitではない?)のデータらしいけど、PHPで処理して開けることが分かった。

ということで、とりあえずhgtデータをダウンロード中。
しかし相当な量のデータであることが分かる。かれこれ数時間経ってるけどまだDLが終わらない・・・・
ある意味当然なのだけど、必要なところだけ取得するようにすべきだった。
せっかく使えるのだからとスケベ心で全部DLしようとしてしまった。

以前から、このデータには欠落があることがわかっているものの、どう補正すればいいかはまだ不明で課題。
海抜ゼロメートル地帯などがあるため、実際の陸地をこの標高データだけで行うことは完全ではない点も知っていたけど、実際、
http://lab.uribou.net/ll2h/
で海抜ゼロメートル地帯を見てみるとマイナスになっていたりして納得。また、自宅付近の標高は知っている標高通りで精度も高いことが分かった。
___

さて。実際、このデータを使って地図描画をしてみたところ、確かに異常値が。いち区域だけ見ただけなのだけど結構ある。



画像中の、少なくとも白いところは異常値。

無理矢理は承知で、地球上でありえない標高のところは画像処理の際の前の値で代用する形で補正したのが下。
ただ、これは日本のなんだけど、日本ではありえない標高な異常値もある。
それを各国毎に補正すれば完璧かもしれないけど、とりあえずそのあたりは見送って白描画にとどめた。
______


SRTMの地図データ、結局16時間余りでDL完了した。
開始 07/13 01:57:24
終了 07/13 18:00:13
ファイル数 14545個(14.7GB=当該ZIP圧縮にて)

先方のサーバ負荷の問題もあるし、当方も急ぎではないため、ダウンロード速度はもっと余裕持たせるべきだったし、必要な部分をまずDLすべきだったと反省。開始してから中断できるようにもしてなかったのも反省点、、。

具体的な実装はまた明日以降にでも進めていくつもり。
アメリカ・NASAの偉大な成果を、無償で使わせて頂けることに感謝しつつ。
_____

・・・てことで、日を改めて本日、朝イチで地図画像生成。うん、出来る。

最初上下逆になってしまった。昔国土地理院の土地利用データから生成したときも最初こんなふうになったっけ。



まだデータファイルの区切り目で線が入ってしまうので更に補正が必要。



現状、SSDは容量が危ないと想われるので、HDDを
mount -t ext4 /dev/sdb2 /var/www/map
とかやってHDD上でapache/PHPで処理してる。
でも、SSDじゃないのに10秒くらいで地図画像生成できてる。SSDで1ファイルの場合でも5秒かかってた。

今後は、sql系サーバとかmemcachedとか色々使って速度が出るように探っていく感じかな。
_____

そして7/14(日)13時過ぎ。とりあえず、紆余曲折を経て、南半球の地図画像生成も一応の正常完了。たぶん西経も大丈夫と思うけどまだやってない。
fseekとかunpackとか、ファイルを直接読み込んで色々やる方法がまだ理解出来てない。急ぎではないけどバイナリデータをいじる際には特に勉強必要かな。



赤道のがまだダメ。微妙にダメ部分はわかってる。南半球はスジが入らない。・・・これら調整やってようやく完成かな。
_____

そしてとりあえずの完成。


_____

ヨーロッパ付近はこんな感じ。東経と西経がロンドンを境に変わる。


世界全図はこんな感じ。端に行ったら逆側に戻すのがポイント。この画像はまさにgoogleマップの最小ズーム時の画像ですな。


そして、ここにきて、SRTMのデータは、「SRTM30」でなくて、「SRTM1」と「SRTM3」およびその2つを元に生成した「SRTM30」という構成のようだ。散々SRTM30ってBLOGやTwitterに書いてたけどこの筆をもって修正させて頂きます。。

ちなみに、SRTM3は、北緯60度上までの収録で、それ以北のデータが無いです。アラスカとかシベリア北方やスカンジナビア半島などが地図描画できません。また、南は南緯56度上までですが、南方面については南アメリカもニュージーランドも描画できるため、世界地図としての使い出は北半球のように損なうことはないです。

2013/07/12

ロリポップサーバアプリ

結構いい感じ。スクリプトの色分け対応してくれたら最高なんだけどなぁ。

真夏の真夜中の眠りの夢

久しぶりに眠りの中の夢を見た。親族がいて僕の可能性があるのかないのか問うてくるような夢だった。

今の僕はあの懐かしい高校一年生の夏の状況に似てる。

2013/07/11

アイプラザ豊橋

わりと毎日、多少は使ってる人がいるものの、たいていパラパラと少しだけだったアイプラザ豊橋。

今日は、女子高生ばかりわんさか着てた。。汗
たぶん藤の花女子高校の観劇とかソレ系のやつじゃないかな。あまり見覚えの無い制服だったけどたぶんそう。

16時少し前、予定を終えてなのか、ワーッとロビーに出てきて。

・・・しばしそのままロビーで作業継続してたけど、どんどん椅子に座る子が増えていくので、申し訳ないのでやむを得ずその場を離れ、帰宅。

なんでスグに帰るコがほとんどいなくて、ウダウダしてるかなぁ。。女の子って年齢問わずオシャベリが好きなんだなぁ。

ダニだろうか?


昨日くらいからお腹や腰が痒くて、そういえば変なクシャミのようなものも出る。
今、両腕やそこかしこ痒い。

マダニの話が今年くらいからだろうかメディアで流されてるの見てる。
畑で取りつかれたりするみたいで。
あるいは最近長時間居るアイプラザ豊橋の椅子だったりして。

家の布団などは、母が先日月曜に旅行から帰るなり、干すと言ってひと通りウチの寝具は天日で干したばかり。

なんか心配。

2013/07/10

思いっきり

羽じゃなくて足を伸ばしてみた

なんか

プロクシ入ってたぽくてキモい

カメさんを洗濯に

茹だるような夏の日。マクラ&クッションとして使ってるカメさんを洗濯した。夏でこそちゃんと乾く一方、汗かいて汚くしてるので、洗濯したいもの。



ここ数日、今日なんかもまさに洗濯日和ですな。

オバパン(obapan)

アヤパンもオバパンになって久しい。カトパンもマキパンも時間の問題でしょう。時間の流れは平等。

ある程度恵まれてない場合、努力しないとオバパンになれず普通のオバサンになることでしょう。
それが嫌なら関西に住めばオバハン(obahan)にはなれるでしょう。

僕もせめてオジパンになれるよう努力します。

寝苦しい夜 本日超暑いです。目が覚めてから眠れないス。言葉遊び(オヤジギャグ?)して満足して眠りにつきます。

2013/07/09

AndroidSDK



ボタンのレイアウト配置、出来た!

って、これだけなんだけど少しハマってた。

レイアウト関連はiOSのほうがやりやすいっていう評判だけど、そうかもしれない。iOSSDKで同じことやったときは本当に直感的に配置できた。ただ、機能の実装でボタンと機能をドラッグするとかが解説見ないとわからないんだよね、、。androidはそのへん他どうなんだろう。

とりあえず、一歩々々踏みしめて進んでます。

今日はこれくらいにしようかな。

春菊

収穫せずに花が咲き実がなって大分経った春菊。周りに春菊なく伸びやかに育ったコレ、今まだ残してるんだけどとても黒くて良い種をつけてる。


やっぱりコレくらい時間を置いたほうが良いのだろうなという感じがする。
雛室の南に今、少し前に収穫済みの春菊のを積んでいて、結構な量あるのだけど。

これらを更に次期増やせればいいなぁと思ってる。とはいえ主に食用というより保存用とか緑肥用かなと思うけど。

androidSDK64bit版でエラー


androidSDKがエラーを吐く。原因わからず、このエラー出ては諦め、日を改めてやっぱり出ては諦め・・・とやってたのだけど。とりあえず、このエラーメッセージで検索してみたら、解決。

どうやら、androidSDKは、Linuxでやる場合は32bit版を使ったほうがトラブルが無いらしい。その原因は、SDKのうち、エミュレータが少なくとも32bitなようで、64bit版SDKから呼び出すとエラーを起こす、のらしい。

で、しかもこれを解決する方法は汎用の方法でもあった。32bitバイナリを64bitで使えるようにするモジュールがあって、それを入れればよいのだ。

# apt-get install ia32-libs

そして改めてSDKからエミュレータを呼び出したらOKだった。



でも怖いのは、前このアプリを本でいじったのがすでに1年前だったという点。。でも1年前にはAndroidを触ったことがなかった僕は当然実機も持っていなかった。昨夏GETしてからAndroidの世界に初めて触れた程度
・・・・ふう。まだ何もやってないし前起動してみた「HelloWorld」をもう一度動かしてる程度レベルなんだけど、とりま一歩づつ。
ファイル構成とか、アプリの考え方とかはもうだいぶ把握できてる。

で、次の項のをやったけど、まさかのスペルミス・・・でも出来たよ。

動くと本当に嬉しい。
まだ最初のところの感覚だもんね

出雲大社

母が島根の出雲大社に行ってきた。出雲大社も式年遷宮、それも60年に一度のやつとのことで。僕も伊勢神宮には行けたら行ってみようかなぁと思ってる。熊野古道とかも興味あり。