sheephead

sheephead

sheephead日記終了のお知らせ

すんません。タイトルは釣りです・・・

 終了というか、お引っ越しすることにしました。
 引っ越し先は、↓になります。

 sheephead

 せっかく、ブックマークやフィードを登録していただいた方には、大変申し訳ありませんが、変更してもらってこれからもごひいきに願います。


diigo it このエントリをはてなブックマークに登録 このエントリを del.icio.us に登録 このエントリをlivedoorクリップに登録 この記事をPOOKMARKに登録する このエントリをSaafブックマークへ追加

2008年09月26日 | 日記 | トラックバック:0 | コメント:1

そして、賽・・・じゃなくてスクリプトは投げられた



昨日、作ったスクリプトの実戦投入。
 まず、ベクタのデータをラスタライズして、テキストに変換。最初は、メッシュサイズを10mにしようかと思ってましたが、テキストに吐き出したら、メモリが足らんことになりそうだったので、20mに。

 ここまでは、不本意ながらArcGISにお任せ。特段文句も言わず成功。

 そして、テキストをRに投げてみる。まずは、サンプルモードだったスクリプトを実戦モードにカスタム。
  
 スクリプト投げ込む。完了。

 何の文句も言わない!!
 偉い。偉すぎるぞ、僕スクリプト!!
 メモリもどうやらだいぢょぶそうなので、メイン妖精さんに計算お願いして帰宅。

 「Rプログラミング&グラフィックス」によると、Rはメモリリークの心配がないんだそうな。なぜなのかは知らないですけどね。ただ、perlの時のような理不尽な失敗は多分ないということだろう。
 
 まずは、無事に計算が終わってくれることを願うばかりですが、興味としては、どれくらい時間がかかるかな〜ってことか。
 メモリも贅沢に使って、高速に計算させることに特化してますからね。
 
 これで、メモリが足らないと言われたら、データをチビチビ切り刻みながら計算させるしかないんだけど、これは速度とトレードオフでだいぶ遅くなりそう。
 Rjpwikiによると、チビチビ読み込み、計算・・・・を繰り返すより、全体のオブジェクトをどかんと読み込んでおいて、その中で計算させる方が高速なんだそうな。
 ということで、今回も全部のラスタデータをがつんとマトリックスオブジェクトにして、それを読み込んだまま、出力用のオブジェクトも先に読み込んでおくという、とても贅沢な仕様にしているので、だいぶ早く計算してくれると思うんだが・・・

 ま、明日の朝を待ちますか。

 

   

   


 



diigo it このエントリをはてなブックマークに登録 このエントリを del.icio.us に登録 このエントリをlivedoorクリップに登録 この記事をPOOKMARKに登録する このエントリをSaafブックマークへ追加

2008年09月23日 | 日記 | トラックバック:0 | コメント:0

ラスタ演算もRでやってみる



結局、振り出しに戻った解析作業。
 とりあえず、データに戻って、ぶち込む変数を再度計算させようとしているわけですが、それにはラスタデータの集計が必要です。

 といっても、あんな腐れArcGIS使ってたら精神衛生上悪くってしょうがない。

 ということで、ラスタをテキストで吐き出して、そのデータでラスタ演算させるRスクリプト書いてみました。

 やっていることは、ターゲットセルから円形のバッファを発生させて、バッファ内の特定セル値をカウントさせるという、ラスタ演算入門編にでも出てきそうなネタ。
 んが、こんな単純処理でも腐れGISソフトってば、理不尽なエラー吐きまくりやがるのですな。多分。

 それに比べれば、Rで書けば、ミスしても「なんて僕はお馬鹿さんなんだろう」と自責の念に駆られるだけですむので気が楽。
 しかも、とても親切なエラーメッセージもついてくるので、見通しも立てやすいです。

 ってわけで、書いたスクリプトはこんな感じ。



in.raster <- sample(1:10,1000000,replace=TRUE)
dim(in.raster) <- c(1000,1000)

buffer.length <- 5

x.square.buffer <- rep((buffer.length *-1):buffer.length,times=(buffer.length*2+1))
y.square.buffer <- rep(c((buffer.length *-1):buffer.length),each=11)
distance.buffer <- sqrt(x.square.buffer^2 + y.square.buffer^2)

fun <- function(x,y){
  if(x <= buffer.length){
    y
  }
}

x.buffer <- unlist(mapply(fun,distance.buffer,x.square.buffer))
y.buffer <- unlist(mapply(fun,distance.buffer,y.square.buffer))

out.raster <- in.raster * 0



for(out.y in (buffer.length + 1):(nrow(in.raster) - buffer.length)){
  for(out.x in  (buffer.length + 1):(nrow(in.raster) - buffer.length)){
    check.vector <- in.raster[cbind(x.buffer + out.x,y.buffer + out.y)]
    out.raster[out.x,out.y] <-length(check.vector[check.vector == 5])
  }
}


細かくチェックはしとらんが、大枠はいけてるはず。

今回は、シンプルを心がけてみました。というのも、今回の処理は結構時間がかかりそうなので、無駄なループとかは極力排除してベクトル演算中心のコーディングです。

最初は、apply系をメイン処理に使おうと考えていたのですが、どうやらapply系は速度が遅いんだそうな。
perlのmapとかもそうみたいだけど、forループのラッパーな関数って、総じて遅いってことなんだろうか。
ちなみに、apply系関数の源流ってlispにあるみたいですな。つってもlispなんてエディタいぢるときくらいにしか見ないけど。

 たしかに、Cとかlispとかいろんな言語の影響を受けているであろうRの言語仕様って、非常に複雑なうえに構文糖的な仕様もあるんだけど、perlなんかと比べても見やすい気が立てやすい・・・気がするだけかも。あ、でも結構過去の遺産をうまく使えてたりするんですよね。

 さあ、後はほんちゃんのデータにこのスクリプトを突っ込むだけだ。ターゲットは6億セルだが、どんなもんだか。
 昔、perlで同じようなスクリプト書いたときは、謎のメモリリーク起こして、ODさんに泣きついたもんですが、今回は頼れるのは自分だけ。ま、メモリたらんくなったら、分散処理にするとか、メッシュサイズ大きくするとか、対策はある。

 ので、細かいことはそのとき考えるか。
   

   




diigo it このエントリをはてなブックマークに登録 このエントリを del.icio.us に登録 このエントリをlivedoorクリップに登録 この記事をPOOKMARKに登録する このエントリをSaafブックマークへ追加

2008年09月22日 | 日記 | トラックバック:0 | コメント:0

生産効率が悪い

職場に行って、ほんとにどうしようもない仕事をうんうん言いながら片付ける。
 なんていうか、何千人もの人がとばっちりをくらうマスターベーションというのも、笑えるネタにもならんですな。
 ま、これもお仕事なので仕方ないですけど。

 追伸:また、一つ年をとってしまいました。


diigo it このエントリをはてなブックマークに登録 このエントリを del.icio.us に登録 このエントリをlivedoorクリップに登録 この記事をPOOKMARKに登録する このエントリをSaafブックマークへ追加

2008年09月21日 | 日記 | トラックバック:0 | コメント:0

がっつり飲んだって話

今日はちと送ればせな、職場の暑気払い。
 最近、あんま飲み行ってなかったので、がっつり飲んでしまいました。
 
 というわけで、今日は泥酔に任せて書いてるので乱筆御免。

 メイン妖精さんにはラスタデータのモザイク処理を任せてます。これまで実行したらエラーばっか出てたので、あきらめてたのですが、8月に出てたSP6のパッチ当てたらうまくまわりやがった。

 なんつーかそんな中途半端な仕様で商用ソフトにすんなっての。まぢ腐れソフトだ。

 GIS周りの最近の発展はすごくて、QGISなんか、GRASSのコマンドも一部使えるようになってるし、プラグインもすごく充実してきてるのです。
 ちなみに、manageRっていうQGISのプラグインはRのコマンドを認識できるようになっていて、何百万もかけなくてもちょっとした空間統計はタダでできる世界ができつつある。

 ていっても、やはりArcGISエンジンファミリーは幅きかせてるわけで、今月の森林技術でも出てた書きものによると各県の森林GISでArcGISを導入している県は結構ある。

 ここまで、GISが普及するとデファクトスタンダードにすべきGISデータのプラットフォームをなんにすべきなのかって真剣に考えないといかんのかもしれん気がします。

 とりあえず、腐れshp以外で統一してほすぃ。xmlベースとかぢゃ駄目ですか?

 ま、愚痴と言うことで。
 


diigo it このエントリをはてなブックマークに登録 このエントリを del.icio.us に登録 このエントリをlivedoorクリップに登録 この記事をPOOKMARKに登録する このエントリをSaafブックマークへ追加

2008年09月13日 | 日記 | トラックバック:0 | コメント:0

妖精さん増強

昨日、お願いしていた処理は、ことごとく失敗。
 まず、GISの方は、ギガバイト級のtempファイルをArcGISがいつの間にか吐き出しまくっていて、ドライブの容量がスッカラカンになったあげく、エラー。おいおい、たかだかフィールド削除するだけなのにほんと使えんやろうだ。さすがに頭の良い妖精さんもそこまで面倒見れないっつの。


 winbugsの方は、またしてもtrap。kuboさんバージョンzipモデルも、やはり駄目・・・事前分布操作でも駄目となると・・・う〜ん

 問題を切り分けると、まずzipモデルがいけてないってパターンと空間ランダムプラスzipがいけてないってパターンの二つが怪しい。まずは空間ランダムを考慮しないパターンで攻めるとしてみます。

 こうなると、本格的にばぐす作業が必要になってくるので妖精さんを増強することにしました。
 別の部屋に置いてたノートPCに環境構築して、妖精さん化。んで、VNCインスコしてリモートマシンとして操作することに。うん、こいつはリモート妖精さんと名付けよう。
 サブ妖精さんもさすがにローカルだとめんどいことこの上ないので、余ってたIEEEケーブルをメイン妖精さんとつないで、lanを構築。
 これでどうにかメイン妖精さんとサブ妖精さんが多少なりとも会話できるようになりました。

 これで、妖精さんが三人。CPUベースで4つはwinbugsが稼働できるな。あんまり使われていないPCをリモート妖精さん化すれば、もう少し増やせないこともないが、結構環境作るのがめんどくさいのでとりあえずはこれでしのぐか。

 


diigo it このエントリをはてなブックマークに登録 このエントリを del.icio.us に登録 このエントリをlivedoorクリップに登録 この記事をPOOKMARKに登録する このエントリをSaafブックマークへ追加

2008年09月11日 | 日記 | トラックバック:0 | コメント:0

妖精さん酷使

昨日、妖精さんにお願いしていた測地系変換作業は、どうにか無事に終わっていて、なんとな〜くうまくいってそう。
 ちなみに、県境と重ね合わせてみた絵はこんなかんぢ。

http://blog-imgs-40.fc2.com/m/y/u/myuhe/sinnrinnbo.png

 ちと、微妙にずれてる・・・けど、これは、座標系云々の問題ではなくて、元々のデータの問題なのでせう。そもそも、ベースにしたデータ自体、座標系とか測地系とかほんとにちゃんとできてるかも怪しいやつなのでこの辺りは大目に見る。というか、大目に見るしかない。
 もともと、座標系が何かもわからないデータだし・・・
 ま、座標系はこれで良いということにして、次は属性の編集。が、これも結構大変で。データが10万近くもあるので、フィールド削除するだけでもすんごい時間がかかるわけで。これは時間しか解決してくれないので、メイン妖精さんにいろいろとお願いする。

 これで、GIS作業は、一段落させて引き続きBUGS作業。これも、だいぶ放置気味。
 これまでのおさらいすると、zipモデルにspatial.expを入れたモデルで回したがtrap。zipモデルもcongdon先生バージョンとkuboさんバージョンの2バージョン試したけど、それでもやっぱだめ。ってとこで終了。

 その後、Q大に行って、ODさんにどうしましょって聞いたところ、ODさんはこう言いました。

  「タウに気をつけろ」

 どうやら、タウの扱いがミソらしい。
 そのあと、さらにODさんからメールが来てすばらしいtipsを伝授していただきました。

 タウの事前分布は非負ってことで、ふつーはガンマ分布仮定になるのですが、ガンマ分布のパラメータってば、正規分布のように平均と分散ってわけにはいかないので、事前分布の設定がちと大変。

 ってわけで、どうにかして正規分布を使うためのtipsとして、打ち切り関数なるものがあって、silandar先生なんかも使ってるそうな。
 で、早速タウの事前分布を打ち切り関数正規分布に書き換えて、分散も絞り上げてみることに。
 む〜最初ではこけない。しばらく回してみる価値がありそうです。

 しかし、主軸のメイン妖精さんはGIS作業にてんてこ舞い故、出動不可。こういうときこそサブ妖精さんの出動です。

 サブ妖精さんは、ちょっと型は古いもののまだバリバリの現役。メイン妖精さんとサブ妖精さんはCPU切替器でディスプレイ、マウス、キーボードとか共有していて、普段は眠っているのですが、こういった有事の際に起きます。

 ただ、職場のネットワークの関係上ローカルでしか使えないので非常に面倒。いつの間にか古くなっていたRのバージョンとかESSのバージョンとか、winbugsのパッチとか替えるだけでも一苦労です。sshとかで使役するとすんごく楽なんだろうが、うちの職場はなぜかwin縛りという極悪ルールが存在するため、それもかなわず。南無三。

 閑話休題、どうにか整理が終わって早速サブ妖精さんにMCMC計算をお願いする。シングルスロット故、cpuをフル稼働させているのでなかなかわからんが多分うまくいってるだろう。

 この時点で手持ちの妖精部隊はすべて出動。後は、他の部屋にあるやつを使うしかないんですが。それもめんどくさいのでこれにて、退散。

 明日はどうなってるか、ちょっと楽しみです。誰か気を使って勝手に消してたりして・・・

 
 


diigo it このエントリをはてなブックマークに登録 このエントリを del.icio.us に登録 このエントリをlivedoorクリップに登録 この記事をPOOKMARKに登録する このエントリをSaafブックマークへ追加

2008年09月10日 | 日記 | トラックバック:0 | コメント:2

また、腐れArcGISのこと

ご無沙汰です。

 ここ最近は、結婚式の友人代表に選ばれたり、世界を旅していた妹がふらりと帰ってきたら大変なことになってたり、くだらない仕事もあったりと、公私ともに忙殺されてました。

 んで、ようやく落ち着いてきたので、ちょこちょこデータ整理。まずは、一番億劫になりがちなGIS仕事からですが、まずは以前放置しっぱなしだった問題に着手。

 DBFってのは、ふつーヘッダーに同じ名前がつかないもんなんですが、なぜか同じ名前がついてるとこがあって、そのせいで、属性が全然いぢくれないという、なんともめんどくさそうな話。

 とりあえずEXCELで対応できる行数は余裕でオーバーしているので、駄目。ACCESSもエラーを返すので駄目。QGISでSHP読み込んでも属性テーブル開こうとした段階で落ちる。フリーのDBFエディタも全て駄目・・・

 むぅ、万策尽きたか。ってなこと考えてたら、ふと思い出した。そういえば、バイナリエディタなるもんがあったな・・・
 ってことで、バイナリエディタで直接データを編集して問題は解決。次はもらったデータが日本測地系なので、世界測地系に変換。

 次は属性を変更して使いやすいやうにして・・・

 うむ〜そろそろPC3台体制に突入かもしれん。


diigo it このエントリをはてなブックマークに登録 このエントリを del.icio.us に登録 このエントリをlivedoorクリップに登録 この記事をPOOKMARKに登録する このエントリをSaafブックマークへ追加

2008年09月09日 | 日記 | トラックバック:0 | コメント:0

最近の晩ご飯



職場の人から、大福を大量にいただきまして、最近の夕食のメインディッシュはもっぱら大福。非常においしいから良いんですけどね。
 食生活乱れてんな。


 ま、そゆどーでもいい話。

diigo it このエントリをはてなブックマークに登録 このエントリを del.icio.us に登録 このエントリをlivedoorクリップに登録 この記事をPOOKMARKに登録する このエントリをSaafブックマークへ追加

2008年08月19日 | 日記 | トラックバック:0 | コメント:2

旅立つ人



 久しぶりにかまちょさんから電話きたと思ったら、なんとだいちゃんがPDで外国へ行くそうな。マヂっすか!!
 ん〜なんかQ大もどんどん知った人がいなくなって寂しい限りだ・・・

 てなわけで、今週の土曜はだいちゃんの壮行会でまたしても福岡に行ってきます。

 先週も逝ったばっかりなんだが。しかも、かぶってるメンツもあるんだが。ま、そんなことはど〜でもよいので、ほんとだいちゃんにはこれからも頑張ってもらいたいです。



diigo it このエントリをはてなブックマークに登録 このエントリを del.icio.us に登録 このエントリをlivedoorクリップに登録 この記事をPOOKMARKに登録する このエントリをSaafブックマークへ追加

2008年08月18日 | 日記 | トラックバック:0 | コメント:0

次のページ


follow myuhe at http://twitter.com

CalendArchive

≪ ≫
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -

最近はこんなの聞いてます

今週のベスト5

Tree-Comment

  • 10/15  にょき
  • 09/21  さおりん
  • 09/10  myuhe
  • 09/10  なか
  • 08/22  myuhe
  • 08/20  さおりん
  • 08/19  myuhe

プロフィール

myuhe

Author:myuhe



物欲の神様
衝動買いの伝道師

mixiは↓
 http://mixi.jp/show_friend.pl?id=1864001
  
last.fmは
 http://www.last.fm/user/myuhe/
 

カテゴリー

  • 日記 (705)
  • 音楽 (59)
  • ニュース (28)
  • ipod (8)
  • firefox (9)
  • 写真 (15)
  • 書籍 (11)
  • 映画 (3)
  • w-zero3[es] (5)
  • 【統計】R (19)
  • X02HT (1)

タグクラウド

ブログ検索


アフィリエイト 通信販売
ホームページ アフィリエイト レンタルサーバー FC2ブログ