「Gis and r 002」の版間の差分
(清野の作業結果追記) |
|||
行25: | 行25: | ||
cp -R /Users/自分のアカウント名/Downloads/manageR /Users/自分のアカウント名/.qgis/python/plugins/ | cp -R /Users/自分のアカウント名/Downloads/manageR /Users/自分のアカウント名/.qgis/python/plugins/ | ||
*ところがどっこい、これでは立ち上がらない。MacだとWinのようにRpy2のインストールにインストーラーが用意されておらず、自分でソースコードからビルドするか、pythonのパッケージインストーラであるeasy installを使うかしかない。どちらも嫌だったので、MacportsからRpy2をインストールしようとした。するとgcc44のビルドが始まってしまい、全然終わらず、本日はタイムアップ。帰宅後、一晩放置でビルドしようと思う。 | *ところがどっこい、これでは立ち上がらない。MacだとWinのようにRpy2のインストールにインストーラーが用意されておらず、自分でソースコードからビルドするか、pythonのパッケージインストーラであるeasy installを使うかしかない。どちらも嫌だったので、MacportsからRpy2をインストールしようとした。するとgcc44のビルドが始まってしまい、全然終わらず、本日はタイムアップ。帰宅後、一晩放置でビルドしようと思う。 | ||
+ | |||
+ | ====渡邉==== | ||
+ | '''作業内容''' | ||
+ | |||
+ | 日本語環境を示すエラーメッセージを改善した。 | ||
+ | *まずテストファイルの保存場所を変える。D:\Temp\Rなど。過程については詳述しないが、結果的に保存場所の変更は正しく、上記のPython pathの問題はこれで解消された。半角のみで構成される、単純明快なファイルパスにすることが肝要。 | ||
+ | *次に、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環境で作成する。その際、日本語はなるべく省くようにする | ||
+ | #プログラムファイルは、半角で構成された明快なファイルパスの下で保存する |
2010年10月5日 (火) 00:19時点における版
※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など。過程については詳述しないが、結果的に保存場所の変更は正しく、上記のPython pathの問題はこれで解消された。半角のみで構成される、単純明快なファイルパスにすることが肝要。
- 次に、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環境で作成する。その際、日本語はなるべく省くようにする
- プログラムファイルは、半角で構成された明快なファイルパスの下で保存する