「Gis and r 002」の版間の差分

提供: OSGeo.JP Wiki
移動: 案内検索
(後日追記10/5清野を追記)
 
行161: 行161:
 
*Rjpwikiを読み込む作業。地理空間関係のテストプログラムを試してみる。
 
*Rjpwikiを読み込む作業。地理空間関係のテストプログラムを試してみる。
 
**Rのバイナリでパッケージを次回までに各自インストールしておくこと。
 
**Rのバイナリでパッケージを次回までに各自インストールしておくこと。
 +
 +
====後日追記====
 +
=====10/5清野=====
 +
*MacOS10.5の環境において、MacportsでもFinkでもeasy_installでも、rpy2のインストールがうまくいかない。どうも、http://www.okada.jp.org/RWiki/?Python%20%A4%C7%A1%A1R#nb4e7b5b ここの参照リンク先を見ると書いてあるが、Rのパッケージをソースコードからコンパイルし直さなければいけないかもしれない。コンパイルに際して--enable-R-shlibオプションが必要なようだ。時間があるときに再チャレンジしてみることにする。

2010年10月5日 (火) 17:53時点における最新版

表紙へ戻る

※Wiki記法の書き方については http://ja.wikipedia.org/wiki/Help:%E6%97%A9%E8%A6%8B%E8%A1%A8 を参照。


第2回GIS+R勉強会

参加者

  • 瀬戸(リアル)
  • 清野(リアル)
  • 渡邉(リアル)

テーマ・作業内容

瀬戸

  • Fink版のQGIS+manageRの環境構築

清野

  • MacOS10.5バイナリ版でのQGIS+manageRの環境構築

渡邉

  • Windows Vista 32bit スタンドアローン版でのQGIS+manageRの環境構築

作業結果

清野

  • バイナリ版でmanageR0.8を使う。自分でMacOS用バイナリのR本体、Rpy2(Rpyのバージョン2で大丈夫)、Numpyをインストールする。
  • manageRをftoolsのサイトのrepositoryのページ http://www.ftools.ca/cfarmerQgisRepo.xml からzipファイルをダウンロードし解凍。解凍して出来たフォルダを /Users/自分のアカウント名/.qgis/python/plugins/ にコピー(頭に.が付いたファイル/フォルダはFinderからは見えないため、ターミナルを立ち上げ、ls -aなどをすると見える。また、フォルダごとコピーするにはcp -Rを使用。具体的には、以下の通り。この例では、ダウンロードしたフォルダが自分のアカウント名直下のダウンロードフォルダ、解凍も同じダウンロードフォルダ内で「manageR」というフォルダ名)。
cp -R /Users/自分のアカウント名/Downloads/manageR /Users/自分のアカウント名/.qgis/python/plugins/
  • ところがどっこい、これでは立ち上がらない。MacだとWinのようにRpy2のインストールにインストーラーが用意されておらず、自分でソースコードからビルドするか、pythonのパッケージインストーラであるeasy installを使うかしかない。どちらも嫌だったので、MacportsからRpy2をインストールしようとした。するとgcc44のビルドが始まってしまい、全然終わらず、本日はタイムアップ。帰宅後、一晩放置でビルドしようと思う。

渡邉

作業内容

日本語環境を示すエラーメッセージを改善した。

  • まずテストファイルの保存場所を変える。D:\Temp\Rなど。この保存場所の変更は結果的に正しく、Pythonpathの問題はこれで解消された。半角のみで構成される、単純明快なファイルパスにすることが肝要。
  • 次に、Windows環境でencode処理を行うため、Terapadをインストール。http://www5f.biglobe.ne.jp/~t-susumu/library/tpad.html
  • Terapad上で、テストファイルを作成する。テストファイルは前回と同様、「Rによる統計処理 連続変数データをカテゴリーデータに変換」ページを引用。http://aoki2.si.gunma-u.ac.jp/R/recode.html


この処理にあたって、テストファイルは2種類用意した。

  • 日本語の説明を含む(上記HPのプログラム部分をそのまま引用しています)
Recode <- function(     x,                                                      # 連続変数データベクトル
                        arg1, arg2)                                             # 二通りの意味を持つ
{
        if (length(arg1) == 1 && length(arg2) == 1) {                           # arg1: 最小値が含まれる区間の左限界値
                return(factor(floor((x-arg1)/arg2)*arg2+arg1))                  # arg2: 区間幅
        }
        else if (length(arg1) == length(arg2)-1) {                              # arg1: カッティングポイント
                cut(x, breaks=c(-Inf, arg1, Inf), right=FALSE, labels=arg2)     # arg2: 区切られた区間のラベル
        }
        else {
                stop("区切り値の個数は,ラベルの数よりちょうど 1 だけ小さいはずです")
        }
}
  • 日本語の説明を省く
Recode <- function(     x,                                                     
                        arg1, arg2)                                             
{
        if (length(arg1) == 1 && length(arg2) == 1) {                          
                return(factor(floor((x-arg1)/arg2)*arg2+arg1))                 
        }
        else if (length(arg1) == length(arg2)-1) {                              
                cut(x, breaks=c(-Inf, arg1, Inf), right=FALSE, labels=arg2)     
        }
        else {
                stop("")
        }
}


各環境下での処理結果を、以下に示す。

なお、文字コードについては、Terapadの[ウィンドウ]-[オプション]の文字コードタブで設定を行う。


EUC

日本語なしのテストファイル:成功

日本語付きのテストファイル:プログラム表示時に日本語部分が文字化けするが、処理そのものに影響はない


UTF-8

日本語なしのテストファイル:失敗。'ascii' codec can't decode byte 0x88 in position 1: ordinal not in range(128)

日本語付きのテストファイル:失敗。'ascii' codec can't decode byte 0x88 in position 1: ordinal not in range(128)


この結果から、プログラム作成にはEUCが適当かと思われるが、これはR自体の環境がそうさせているものと思われる。


「Rのベクターデータを弄る人へ」

「何故標準がEUC-JPなのかと言えば, 作った本人の環境がEUC-JPだったからと言うそれだけの理由です.」

http://www.okada.jp.org/RWiki/?R%A4%CE%A5%D9%A5%AF%A5%BF%A1%BC%A5%C7%A1%BC%A5%BF%A4%F2%CF%AE%A4%EB%BF%CD%A4%D8


「R-2.1.1(Windows)のインストール方法」

「IEならブラウザ上から文字コ-ドをEUCにして変換してしまえば、保存すればうまくいくかもしれません」「私はIE+EUCの状態でのコピペで上手く行きました。」

http://www.okada.jp.org/RWiki/index.php?R-2.1.1(Windows)%A4%CE%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB%CA%FD%CB%A1


結論

Windows Vista 32bit スタンドアローン版でQGIS+manageRの環境を構築するには、

  1. manageR0.8を使用する。Pythonプラグインインストーラでサードパーティーのリポジトリを追加する際、アップデートをしないままにしておく。なおmanageR0.8のダウンロードは、http://www.ftools.ca/cfarmerQgisRepo.xml
  2. R本体、Rpy、Numpyを一通りインストールする。参考サイトとして、「月の杜工房 -QGISからRに接続-」 http://mf-atelier.sakura.ne.jp/mf-atelier/modules/tips/index.php/software/qgis/qgis_r.html
  3. プログラムファイルはEUC環境で作成する。その際、日本語はなるべく省くようにする
  4. プログラムファイルは、半角で構成された明快なファイルパスの下で保存する

瀬戸

ひたすらFinkと格闘。 manageRを立ち上げた際のエラーメッセージは以下のとおり。

Traceback (most recent call last):
 File "/Users/tos/.qgis/python/plugins/manageR/manageR.py", line
3181, in updateWidgets
   self.emit(SIGNAL("updateDisplays(PyQt_PyObject)"),currentRObjects())
 File "/Users/tos/.qgis/python/plugins/manageR/manageR.py", line 209,
in currentRObjects
   robjects.rinterface.globalEnv.get('ls',wantFun=True))
AttributeError: 'module' object has no attribute 'globalEnv'

ここで、finkのpython2.6にパスを通すと治るかと思い export PYTHONPATH=/sw/bin/python2.6 としてみたものの、うまく通っていない。

ちなみに、r-baseの問題かと思い、ターミナルで立ち上げてlibrary(sp)をQGISとは関係なく立ち上げようとすると パッケージがインストールされていないメッセージがでて、install.packages("sp")を叩くと

** testing if installed package can be loaded
Error in dyn.load(file, DLLpath = DLLpath, ...) :
  共有ライブラリ '/Users/tos/Library/R/2.11/library/sp/libs/sp.so' を読み込めません
 dlopen(/Users/tos/Library/R/2.11/library/sp/libs/sp.so, 6): no
suitable image found.  Did find:
       /Users/tos/Library/R/2.11/library/sp/libs/sp.so: mach-o, but wrong
architecture
エラー:  loading failed
* removing ‘/Users/tos/Library/R/2.11/library/sp’

というように、パッケージのインストールすらこけてしまう。

課題と次回までにやること

達成できたこと
  • 作業環境は、Windows Vista 32bitについてはOK。
次回の予定
  • 日時:10月25日(月)18:30~ 場所:未定
  • 環境構築は一端ストップして、Rの操作に移行する。
  • Rjpwikiを読み込む作業。地理空間関係のテストプログラムを試してみる。
    • Rのバイナリでパッケージを次回までに各自インストールしておくこと。

後日追記

10/5清野
  • MacOS10.5の環境において、MacportsでもFinkでもeasy_installでも、rpy2のインストールがうまくいかない。どうも、http://www.okada.jp.org/RWiki/?Python%20%A4%C7%A1%A1R#nb4e7b5b ここの参照リンク先を見ると書いてあるが、Rのパッケージをソースコードからコンパイルし直さなければいけないかもしれない。コンパイルに際して--enable-R-shlibオプションが必要なようだ。時間があるときに再チャレンジしてみることにする。