ページ

2011年1月21日金曜日

GRASSのr.mapcalcのifの取り扱い

r.mapcalcにおけるifの取り扱いについて
結構忘れやすいのでメモしておく

マニュアルには以下の4つが記載されている

1)     $if(x)$
2)     $if(x, a)$
3)     $if(x, a, b)$
4)     $if(x, a, b, c)$
  1. もし$x$が0(ゼロ)でない場合は1を、それ以外は0(ゼロ)とする
  2. もし$x$が0(ゼロ)でない場合は$a$を、それ以外は0(ゼロ)とする
  3. もし$x$が0(ゼロ)でない場合は$a$を、それ以外は$b$とする
  4. もし$x$が0(ゼロ)より大きい場合場合は$a$を、0(ゼロ)の場合は$b$を、0(ゼロ)未満の場合は$c$とする

$x$の部分には比較演算子が利用可能。
また、ifのなかにifを使うこともできる。

1)     $if(x \textgreater 5, 1)$
2)     $if(x \textgreater 5, 1, if(x \textgreater 10, 2))$

  1. もし$x$が5より大きい場合は1を、それ以外は0(ゼロ)とする
  2. もし$x$が5より大きい場合は1を、10より大きい場合は2を、それ以外は0(ゼロ)とする

2011年1月20日木曜日

シカ襲来

ここ数日、(妄想の中で)シカの襲来にあっていました
というのも、締切り間際になって森林学会の要旨を登録するための解析をしていたため!!
今度の森林学会(ちなみに初参加)ではシカの食害の発表をします。

要旨を書き始めたのは、昨日のアフターファイブ(←もしかして死語?)を過ぎてから...
でも、結果はすでに出ていたので、なんとか昨日のうちに書き終えて共同研究者に送ることができました。

にわかシカ研究ですが、よかったら聞きに来てください。

2011年1月7日金曜日

subversionで一括でファイルを追加または削除

Subversionで一括でファイルを追加または削除についての防備録

ぐぐるといろいろと情報がでてくるけどファイル名に空白が含まれる場合には対応できない

ということで自作する。

追加する場合
svn status | grep ^? | sed 's/?//g' | awk '{sub(/^[ ]+/,"");print "#",$0,"#"}' | sed -e "s/ #/'/g" | sed -e "s/# /'/g" | xargs svn add
svn commit -m "Data added!!"

削除する場合
svn status | grep ^! | sed 's/!//g' | awk '{sub(/^[ ]+/,"");print "#",$0,"#"}' | sed -e "s/ #/'/g" | sed -e "s/# /'/g" | xargs svn delete
svn commit -m "Data deleted!!"

やたらパイプが多いですね....
まあ,初めからファイル名に空白を使わなければ良いのですが...

2011年1月6日木曜日

逆距離荷重補間(IDW)について調べてみた

最近,GISで空間補間関係の作業がやたら多い。
どれも,空から降ってきた仕事たちですが...

これまでは,特に気にもとめずいろいろ使っていたけど,ちょっと気になることがあって,すこし調べてみた。

空間補間の方法は主に以下の4つが使われる

  • ボロノイ(voronoi)多角形補間
  • 逆距離荷重補間(inverse distance weighted interpolation: IDW)
  • 平滑化スプライン
  • 各種クリギング


それぞれ,向き不向きがあって,例えばボロノイ多角形はカテゴリ変数に使われる(らしい...)。
IDWは,簡単に利用できる空間補間手法の一つで,かなり広く使われている。
以下の式で求まる。

\[F(r) = \sum_{i=1}^{m}w_{i}z(r_{i}) = \frac{\sum_{i=1}^{m}z(r_{i})/\mid r-r_{i} \mid^{p}}{\sum_{j=1}^{m}1/\mid r-r_{j} \mid^{p}}\]

このとき,$p$は累乗(power)パラメーター,$m$はある地点の値を求める際に使用する最近接点の数である。
$r$はサンプリングされいない地点$r=(x,y)$である。

つまり,この二つのパラメーターをいじれば,補間結果が変わってくるわけである。
GRASSのv.surf.idwでは,デフォルトでそれぞれ $p=2$, $m=12$ である。

式をみたら分かるが,$p$の値を大きくすれば,距離に応じてウェイトが変化(近いところの影響をより受ける)する。
また,$m$を大きくすると,全体がなめらかになり,大きくし過ぎると,細部では情報が失われることになる。GRASSの場合,$m=1$ではボロノイダイアグラムが適用される。

実際の作業では,2つのパラメータをいじってみて,どれが現実に近いか比較する必要がある(見えるデータのみですが...)