sheephead

sheephead

Ads by Google

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


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

--年--月--日 | スポンサー広告 | トラックバック:- | コメント:-

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

やっぱり駄目だった

1チェインで回り出したバージョンで、今度は3チェインで挑戦。
 がしかし、やはりtrap。もうどんな初期値でもだめ。iterationのグラフ見てみると、それぞれのチェインが素っ頓狂に飛んでいますな〜。これはあかん。
 事前分布もガッチガチなので、この時点で、もう完全に打つ手なし。

 こうなると、駄目駄目な因子突っ込んでも駄目って事で、一時潔く退くしかあるまい。あと、ぶっ込めそうな要因はあるが、またしても、めんどくせな計算が待っています。しかも、空間っぽい計算。

 しかし、ここまでイライラさせるArcGISなんて使いたくない。

 というわけで、とりあえずラスタをテキストで吐き出して、Rで計算させることにしました。これならイライラしても悪いのは、ほぼ自分なので精神衛生上すこぶる良い。
 

 というわけで、しばらくはwinbugsともお別れして、テキストとにらめっこの日々です。


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

2008年09月19日 | 【統計】R | トラックバック:0 | コメント:1

回り始めたzipクリギング

半ばあきらめぎみだったzipクリギングですが、タウの初期値諸々をいぢってやったらどうにか回り始めました。

 ただ、シカ多い少ないモデルに入ってるのは標高と傾斜と定数項、シカいるいないモデルに入ってるのは定数のみという超中途半端仕様で、しかもチェイン1こだけ。しかも事前分布ガッチガチ。
 とゆー問題ありありな感じですが、とりあえず、リモート妖精さんにチェイン数1でiteration長くしたバージョンの計算をお願いしてみる。

 んで、メイン妖精さんにはなかなか終わりそうにないArcGISでのモザイク処理。てか、今日気づいたんですがね、どうやらこのソフト、モザイクかけるファイルは同じフォルダにないと駄目っぽいですな。もーなんつーか、ビューワ的機能以外、このソフト引っかからずにまともに使えた試しがないんだが。

 もう、よっぽどRの方が賢い。何の文句も言わずDBFファイルも読み込めるし、shpも無問題。しかも、リモート妖精さんを使い始めて気づいたんですが、ネットワーク上のファイルもワーキングディレクトリにできるとゆー至れり尽くせりな仕様のワケで。

 ちなみに、lan内にsetwd()するときは以下のようにすればよいようです。

 setwd("//コンピュータ名/hogehoge/")
 ただ、linuxとかだと、ターミナル上でmountしないといけないとか、いろいろやり方も変わるそうな(ref.RjpWiki)

 2バイト文字も、たいがい大丈夫。いや、ほんとにすごいソフトだ。

 てわけで、現在使役できる妖精さんはフル稼働状態。ただ、腐れソフトにメイン妖精さん取られるのは、もったいなさ過ぎるよな。いちおデュアルマシンって事で。BUGSも2個動かせるし。

 そろそろ、GIS用マシンをこっそり作るか、サブ妖精さんを格上げするか・・・
 


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

2008年09月17日 | 【統計】R | トラックバック:0 | コメント:0

今日のCDジャンキー

最近、CD買いに行く頻度が下がりつつあって、歳をかんじつつあるわけですが、それでもやっぱり買う。
 

 一枚目はFBYの三枚目のアルバム。2枚目はあんまり好きな感じではなかったですが、今回はscafull king時代の曲調な感じの曲もあって、良い感じです。

 ギターの音がちと変わった気も。ジャキジャキ感が増しててバリロック。
 

Rock The Boomy StyleRock The Boomy Style
FRONTIER BACKYARD

ディウレコード 2008-09-05
売り上げランキング : 8128

Amazonで詳しく見る
by G-Tools

 次はいつもの試聴コーナー一発買いシリーズ。ジャジーhiphop(すでに死語?)ってよりは、ピアノトリオにラップのせてるという感じ。秋の夜長ドライブ(最近はめっぽうバイクですが)にまったり聞くが吉。

traffic jamztraffic jamz
JILTY SOUL

コロムビアミュージックエンタテインメント 2008-09-03
売り上げランキング : 35779

Amazonで詳しく見る
by G-Tools


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

2008年09月15日 | 音楽 | トラックバック: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

次のページ


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

  • 02/09  パーティツール紹介
  • 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ブログ