「Gis and r 002」の版間の差分
(ページの作成) |
(後日追記10/5清野を追記) |
||
(3人の利用者による、間の8版が非表示) | |||
行7: | 行7: | ||
==第2回GIS+R勉強会== | ==第2回GIS+R勉強会== | ||
+ | ===参加者=== | ||
+ | *瀬戸(リアル) | ||
+ | *清野(リアル) | ||
+ | *渡邉(リアル) | ||
===テーマ・作業内容=== | ===テーマ・作業内容=== | ||
====瀬戸==== | ====瀬戸==== | ||
行14: | 行18: | ||
====渡邉==== | ====渡邉==== | ||
*Windows Vista 32bit スタンドアローン版でのQGIS+manageRの環境構築 | *Windows Vista 32bit スタンドアローン版でのQGIS+manageRの環境構築 | ||
+ | ===作業結果=== | ||
+ | ====清野==== | ||
+ | *バイナリ版でmanageR0.8を使う。自分でMacOS用バイナリのR本体、Rpy2(Rpyのバージョン2で大丈夫)、Numpyをインストールする。 | ||
+ | **http://mf-atelier.sakura.ne.jp/mf-atelier/modules/tips/index.php/software/qgis/qgis_r.html 月の杜工房さんのサイトを参照。 | ||
+ | *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のプログラム部分をそのまま引用しています)''' | ||
+ | <pre> | ||
+ | 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 だけ小さいはずです") | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | *日本語の説明を省く | ||
+ | <pre> | ||
+ | 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("") | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | 各環境下での処理結果を、以下に示す。 | ||
+ | |||
+ | なお、文字コードについては、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の環境を構築するには、 | ||
+ | |||
+ | #manageR0.8を使用する。Pythonプラグインインストーラでサードパーティーのリポジトリを追加する際、アップデートをしないままにしておく。なおmanageR0.8のダウンロードは、http://www.ftools.ca/cfarmerQgisRepo.xml | ||
+ | #R本体、Rpy、Numpyを一通りインストールする。参考サイトとして、'''「月の杜工房 -QGISからRに接続-」''' http://mf-atelier.sakura.ne.jp/mf-atelier/modules/tips/index.php/software/qgis/qgis_r.html | ||
+ | #プログラムファイルはEUC環境で作成する。その際、日本語はなるべく省くようにする | ||
+ | #プログラムファイルは、半角で構成された明快なファイルパスの下で保存する | ||
+ | |||
+ | ====瀬戸==== | ||
+ | ひたすらFinkと格闘。 | ||
+ | manageRを立ち上げた際のエラーメッセージは以下のとおり。 | ||
+ | |||
+ | <pre> | ||
+ | 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' | ||
+ | </pre> | ||
+ | |||
+ | ここで、finkのpython2.6にパスを通すと治るかと思い | ||
+ | export PYTHONPATH=/sw/bin/python2.6 | ||
+ | としてみたものの、うまく通っていない。 | ||
+ | |||
+ | ちなみに、r-baseの問題かと思い、ターミナルで立ち上げてlibrary(sp)をQGISとは関係なく立ち上げようとすると | ||
+ | パッケージがインストールされていないメッセージがでて、install.packages("sp")を叩くと | ||
+ | |||
+ | <pre> | ||
+ | ** 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’ | ||
+ | </pre> | ||
+ | |||
+ | というように、パッケージのインストールすらこけてしまう。 | ||
+ | |||
+ | ====課題と次回までにやること==== | ||
+ | =====達成できたこと===== | ||
+ | *作業環境は、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オプションが必要なようだ。時間があるときに再チャレンジしてみることにする。 |
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だったからと言うそれだけの理由です.」
「R-2.1.1(Windows)のインストール方法」
「IEならブラウザ上から文字コ-ドをEUCにして変換してしまえば、保存すればうまくいくかもしれません」「私はIE+EUCの状態でのコピペで上手く行きました。」
結論
Windows Vista 32bit スタンドアローン版でQGIS+manageRの環境を構築するには、
- manageR0.8を使用する。Pythonプラグインインストーラでサードパーティーのリポジトリを追加する際、アップデートをしないままにしておく。なおmanageR0.8のダウンロードは、http://www.ftools.ca/cfarmerQgisRepo.xml
- R本体、Rpy、Numpyを一通りインストールする。参考サイトとして、「月の杜工房 -QGISからRに接続-」 http://mf-atelier.sakura.ne.jp/mf-atelier/modules/tips/index.php/software/qgis/qgis_r.html
- プログラムファイルはEUC環境で作成する。その際、日本語はなるべく省くようにする
- プログラムファイルは、半角で構成された明快なファイルパスの下で保存する
瀬戸
ひたすら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オプションが必要なようだ。時間があるときに再チャレンジしてみることにする。