Gis and r 001

提供: OSGeo.JP Wiki
2010年10月4日 (月) 21:52時点におけるSay-no (トーク | 投稿記録)による版

移動: 案内検索

表紙へ戻る

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

第1回GIS+R勉強会

参加者

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

Windows Vistaについての覚書き

  • OS: Windows Vista TM Home Premium System: 32bit Operating System


QGISのインストール作業

Quantum GIS (1.5.0)をインストール。Python2.5.2で動作。 C:\Program Files\Quantum GIS Tethysとして保存。

参考サイト:QGISのインストール(Windowsの場合) http://www.db.is.kyushu-u.ac.jp/rinkou/qgis/qgisinstall.html


Rのインストール作業

R (2.11.1)をインストール。CRANミラーサイトは今のところ筑波大学。

  • C:\Program Files\R
  • C:\Rtools

試験的に、http://aoki2.si.gunma-u.ac.jp/R/recode.html のソースコードを利用し、実行。問題なく処理。


manageRによるQGISとRの連携について

参考にしたサイトは、「月の杜工房 -QGISからRに接続-」 http://mf-atelier.sakura.ne.jp/mf-atelier/modules/tips/index.php/software/qgis/qgis_r.html

このサイトによると、manageRを使用するには、

  • R
  • RPy
  • Numpy
  • PyWin32

が必要とのこと。

Rは既にインストール済みであるため、RPyからインストールを始める。 RPyは難なく終了したが、問題はNumpyで、ここでPython2.6が必要となる。 それまでPython2.5を使用(ArcGIS、QGIS)していたため、急遽Python2.6をインストール。 PyWin32はzipファイルをインストールしたが、実は違った(?) Python2.6インストール後に、Numpyインストールが途中から勝手に再実行されたが、特にトラブルもなく終了。 なお、Python2.6インストールに際しては、「さくらもこもこ」 http://moco.sakura.ne.jp/uncategorized/python26_inst/ を参照した。

編注:Numpyはインストールする.exeファイルを選択ミスした?


ここでQGISを立ち上げると、manageR1.0が自動的にプラグインのツールバーに登場。 プラグインも自動的にチェックされた模様。manageRを起動する。

起動もコンソールの立ち上げも問題ない。My Documents内に「test.txt」として保存した前ページのスクリプトを読み込む。 ちなみにデスクトップなど、全角文字がアドレスに含まれる場所に保存した場合、日本語は文字化けするので、 保存場所に十分注意したい。

コンソール上でスクリプトを読み込むまではよいが、実行すると二つのエラーが生じる。 なお、簡単な足し算など、電卓代わりの演算はできる(ただし下記2)のメッセージが現れる。 要するに、スクリプトが読み込めない。

  1. Python2.5.2による処理が行われず、エラーで返される
  2. 演算結果として、'ascii' codec can't encode characters in position 148-158: ordinal not in range(128) が現れる

1)は一度manageRを閉じ、QGISを起動したまま再度manageRを起動し、スクリプトをコンソールに充てようとした場合に生じる エラーである。具体的に記述すると、


Traceback (most recent call last):

 File "C:/Users/Yasutaka/.qgis//python/plugins\manageR\manageR.py", line 2110, in commandOutput      
   self.appendText(unicode(output))
 File "C:/Users/Yasutaka/.qgis//python/plugins\manageR\manageR.py", line 2056, in appendText
   self.append(out_text)

RuntimeError: underlying C/C++ object has been deleted

Pythonバージョン: 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)]


QGISバージョン: 1.5.0-Tethys Tethys, 13923M

Python path: ['C:\\Users\\YOURNAME\\.qgis\\python\\plugins\\GeoCoding', 'C:/PROGRA~1/QUANTU~1/apps/qgis/./python', 'C:\\Users\\YOURNAME/.qgis/python', 'C:\\Users\\Yasutaka/.qgis/python/plugins', 'C:/PROGRA~1/QUANTU~1/apps/qgis/./python/plugins', 'C:\\PROGRA~1\\QUANTU~1\\apps\\gdal-16\\pymod', 'C:\\Python26\\Lib\\site-packages', 'C:\\PROGRA~1\\QUANTU~1\\bin\\python25.zip', 'C:\\PROGRA~1\\QUANTU~1\\apps\\Python25\\DLLs', 'C:\\PROGRA~1\\QUANTU~1\\apps\\Python25\\lib', 'C:\\PROGRA~1\\QUANTU~1\\apps\\Python25\\lib\\plat-win', 'C:\\PROGRA~1\\QUANTU~1\\apps\\Python25\\lib\\lib-tk', 'C:\\PROGRA~1\\QUANTU~1\\apps\\qgis\\bin', 'C:\\PROGRA~1\\QUANTU~1\\apps\\Python25', 'C:\\PROGRA~1\\QUANTU~1\\apps\\Python25\\lib\\site-packages', 'C:\\PROGRA~1\\QUANTU~1\\apps\\Python25\\lib\\site-packages\\win32', 'C:\\PROGRA~1\\QUANTU~1\\apps\\Python25\\lib\\site-packages\\win32\\lib', 'C:\\PROGRA~1\\QUANTU~1\\apps\\Python25\\lib\\site-packages\\Pythonwin', 'C:\\PROGRA~1\\QUANTU~1\\apps\\Python25\\lib\\site-packages\\wx-2.8-msw-unicode', u'C:/Users/YOURNAME/.qgis//python/plugins', 'C:\\PROGRA~1\\QUANTU~1\\apps\\qgis\\python\\plugins\\fTools\\tools']


である。ちなみに無理やり再度充てようとすると、エラーメッセージは出るが、スクリプト自体は充てられる。 演算式を実行させても2)のようなエラーが出る(その際も上記のエラーメッセージが出る)

2)は演算式を入れて実行させると必ず現れる。そのため演算結果は、正常な値を示さない。

いずれもPython由来であると思われる。


改善策

ここで参考にしたサイトは、「QGISへのOSM Plugin」のやり取り。OSMもそうなのかは実証していないが、 Pythonが悪さをしていることを知る。 http://www.mail-archive.com/talk-ja@openstreetmap.org/msg00921.html を参考に、試しにQGISを再インストールする。 既にmanageR環境は成立しているので、上記の操作を繰り返さなくても、プラグインにはmanageRが格納されている。

再実行するが、問題はいずれも解決されず。

ここでPythonpathを実施。ファイルをフルパスで繋ぐ。 この際に参考にしたサイトは、「OpenRTM-aist Python版インストール(Windows版)」 http://www.openrtm.org/OpenRTM-aist/html/E3839EE3838BE383A5E382A2E383AB2FE382A4E383B3E382B9E38388E383BCE383ABPythonWindows.html

結果:エラーは改善されず。ここでは、言語環境に関しての改善は意図していない。

Pythonの日本語環境に関しては、関連図書もあるし、関連サイトもあるが、日本語環境の設定には苦労しているようだ。 いっそPCの言語環境を変えてしまったほうがある意味では楽なのかも。

「QGISでR」「manageR: 日本語環境での注意事項」でも、 http://www.okada.jp.org/RWiki/?QGIS%20%A4%C7%20R#z85ee81e


MacOS X Snow Leopard上でのみ確認したが、QGISレイヤーのR上への取り込み(SpatialPolygonsDataFrame?として取り込まれる) 機能を 行っても、何か('ascii',.....'ordinal not in range(128)') とか表示されるだけでいっこうにレイヤーが取り込まれない場合、 シェープファイルのフルパス中に日本語文字が入ってしまっていることが原因のようだ。

(ordinal...はPythonのUnicode変換まわりのエラー)

これは前述したようにWindows Vistaでも同じ症状であり、ここでの改善策は示されていない。   余談ではあるが、Pythonには2 to 3の処理があり、2.5 to 2.6 という処理は無いのかと思ったが、 あれは自動コード変換のためであり、特には関係ないようだ。Pythonpathに関しては他にも報告があり、やはり改善されないとのこと。


一方で、'ascii' codec can't encode characters in position 148-158: ordinal not in range(128) のエラーメッセージであるが、 ポジションの数字は入れ替わる性質を持つ(処理される行の数か?)

改善策のヒントとして、 「PythonのUnicodeEncodeErrorを知る」 http://lab.hde.co.jp/2008/08/pythonunicodeencodeerror.html 「PythonEncode」 http://www.trashbox.jp/~moriwaka/moin.cgi/PythonEncode などなど。本当かどうかは分からない。

ふと思いつきで、PyWin32について、「pywin32-214.win32-214.win32-py2.6.exe」を入れ直す。 しかしこれは既に対応しているものと思われる。


ここまでの問題を整理すると、原因追究については以下のように考えられる:

  • manageRの構築をするのにPython2.6を必要としたのだから、manageRを起動する際、QGISもPython2.6で動かす必要があるのではないか。現在はPython2.5.2で動いているため、Pythonのバ ージョンの違いが影響を及ぼしていると考えられる。Pythonのコンソールをいじる必要があるのか、レジストリを書き換えるなどの作業が必要であるのかは、詳らかでない。
  • Pythonの日本語環境について考慮する必要がある。Pythonが実際に影響を与えるのはRではなくQGISであるし、manageRがプラグインである以上、QGISに依拠するわけであるから、QGIS上でリンクから日本語を外すなど改善を図るべきではないか。


manageR0.8をインストール

(編集中)



MacOS X 10.5バイナリ版についての覚書き

manageRが立ちあがらない

Directlyフォルダを フォルダオプション 隠しフォルダになっているので直打ちのほうが早い 検索の時に「隠しフォルダ」を検索しないといけない フォルダごとの設定 隠しフォルダを表示できるような状態にしておかないといけない

「Mac OS Xで隠しファイルを表示する方法」にのっとって操作する→隠しファイルが読めるように http://maiko.openmedialabo.net/wp/2008/02/mac-os-x-2/

ディレクトリをたどる [ユーザー]フォルダの中に、[.qgis]


インポートレイヤーキャンパスが相変わらず出ない 反応が無い状態の場合、RPY2の問題では?

.qgis/pythonが必要 .qgis/dbのみ QGISをインストール直後。プラグイン→pythonからプラグインを呼び出す リポジトリ→サードパーティーのリポジトリを追加→読み込み

ライブラリからセットしていくほうが早い? kyngchaosで試したことがある

manageRで解析例 生態学会 大東さんの発表スライド http://www.osgeo.jp/wordpress/wp-content/uploads/2010/03/esj75_ohigashi.pdf


manageR0.8についての続き

OSGeo4W 32bitのみ? C直下に作成する OSGeo4W 自分でフォルダを作ってバイナリを入れて行く タスクマネージャを起動する QGIS 32 R関係も全て32bit 全部32bit RPy Numpy OSの中を見た場合 全て直パスしていない Word 全部86の方に入っていて大丈夫なのか Windowsインストーラが勝手に反応してしまう OSGEO4W Rを探さないと大丈夫なのかなという心配 環境設定 QGIS manegerR1.0をインストールしたが無理だった 32bit版を入れれば良いんじゃないか

ボロノイ分割まで出来る Win32などのものは問題ない


[21:51:25] seinoyoichi: win vista 32bit manageRを使用中に別のPythonプラグインを使おうとすると立ち上がらない。多分、Rに依存するmanageRが既に立ち上がっているから?(R依存のプラグインを複数立ち上げることはできない?)


課題と次回までやること

清野

  • OSGeo4Wのインストールパスを日本語を含まないもので再インストール、その上でちゃんとmanageRが動くかどうか確認。
  • OSGeo Liveをヴァーチャルマシンで再現してテストしてみる。
  • 瀬戸さん/杉浦さんがテストしたMacOS 10.6のやり方で10.5でも再現できるかどうかやってみる。

瀬戸

  • WindowsVista32+OSGeo4Wはクリアできたので、Fink版QGIS+manageRにチャレンジ。

渡邉

杉浦

  • MacOS10.6でのbinary版QGIS+manageRのインストールを引き続き。