ページ

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つのパラメータをいじってみて,どれが現実に近いか比較する必要がある(見えるデータのみですが...)

2010年12月23日木曜日

Emacsに英辞郎を導入

Emacsを使い始めました。

やっぱりTexエディタとしてはかなり使いやすいですね〜

Emacsにはほかにもいろいろな機能があるようで,Fortranモードもあるみたい。
んで,さらに調べてみると,なんと英辞郎もEmacsに取り込めるみたい!!

[emacs][英辞郎]英辞郎第四版買ってみた。emacsで使いたい。 sdic編

これはすごい!!
ということで,実際に上記サイトを参考に導入してみました!

英辞郎の最新は第5版。でも自分の手元には第4版しかないので,これを使う。

作業自体はすごい簡単で,あっという間に終わってしまった。
方法は,上記のサイトから入手したrubyコードで,英辞郎1行テキストをsdic形式に変換するだけ。

sudo sh -c "cat eijiro/eijiro_utf8.txt eijiro/ryaku_utf8.txt| ruby pdic1line2sdic.rb > eijiro.sdic"
sudo sh -c "cat eijiro/waeiji_utf8.txt | ruby pdic1line2sdic.rb > waeiji112.sdic"

もともとの文字コードがUTF-8だったので,上記サイトの"nkf -w8"の部分は省略しています。

あとは.emacsに必要な設定を書きこむだけ!!

試しにemacsを検索してみる
検索は<Ctrl+c w>


完了!!

2010年12月21日火曜日

ubuntuでsuを使う

現在勤めている某所のネットワークは,外部からVPN接続をすることができる!
これを使うと,自宅からでも演算システムが使えて非常に便利。

なのですが,これまでubuntuでは全く使えませんでした。
それは,ユニパースのネットワークコネクトツールがインストールできなかったから。

というのも,ubuntuではrootアカウントが使用できないけど,ネットワークコネクトツールをインストールする際には,suのパスワードが要求されるため...

うむ〜

ubuntuはrootアカウントがないところが使いやすいところでもあるけど...
思わぬところで落とし穴にはまった気分です。

でもこのままでは非常に気持ちが悪い。
ということで,年末休暇の準備として,あらためてネットワークコネクトツールのインストールを試みてみることに!!

コネクトツールのインストール自体は特に難しい物でもなく,VPN接続をすると自動でインストールされる。
ということで,問題はどうやってsuを回避するかということ。

んで,調べてみるとかなり簡単に解決できることが判明
Electronic Genome Ubuntuでsuを使えるようにする
ubuntuではrootアカウントが使えないのではなく,設定されていないだけみたい
ということで,上のサイトを参考にパスイワードを設定する

sudo passwd root

改めて,ネットワークコネクトツールのインストールを試みてみると,無事にsuが使えるようになっていました!!

2010年12月20日月曜日

Imagemagickで特定の色の置換

今日はこれまでにたまっていた,ネタを書いています!!
まぁ〜現実逃避の一環でもありますが...

さて,ImageMagickで特定の色を置換する方法について!!

ImageMagickが秀逸なプログラムであることはご存知のことと思いますが,今日調べてみたところ特定の色の置換もできるようです!!

くわしくはこちら↓
ImageMagickのconvertコマンドで特定の色を置換する

しかし,GRASSを使っていると,やたらとImageMagickのお世話になりますね〜!!