windows11でnlrxをセットアップ

windows11のマシンにnlrxをセットアップした際の注意点をまとめる。

(1)https://kapibarasenn10.hatenablog.com/entry/2021/02/22/000000
はそのままでOK.

(2)https://kapibarasenn10.hatenablog.com/entry/2021/03/08/000000
NetlogoのPathを通す。Netlogo 6.2.2が利用できた。

(3)コマンドプロンプト(cmd)に以下を書くと、

netlogo-headless.bat --model "C:\Program Files\NetLogo 6.2.2\app\models\Sample Models\Biology\Wolf Sheep Predation.nlogo" --experiment experiment1 --table "C:\Users\"UserName"\Desktop\out"
#pathに空白が含まれると認識されない。引用符で囲めば空白が認識される。
#"UserName"は利用者のユーザー名

JAVA_HOME not defined, using java on PATH.
If you encounter errors, set JAVA_HOME or update your PATH to include java.exe.
Exception in thread "main" java.io.FileNotFoundException: C:\Users\"UserName"\Desktop\out (アクセスが拒否されました。)
        at java.io.FileOutputStream.open0(Native Method)
        at java.io.FileOutputStream.open(FileOutputStream.java:270)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:101)
        at java.io.FileWriter.<init>(FileWriter.java:63)
        at org.nlogo.headless.Main$.path2writer$1(Main.scala:64)
        at org.nlogo.headless.Main$.parseArgs(Main.scala:94)
        at org.nlogo.headless.Main$.main(Main.scala:12)
        at org.nlogo.headless.Main.main(Main.scala)

と表示される。この状態でcmdからNetlogoを操作する準備が整ったことが確認できる。

(4)Rの準備
http://uncorrelated.hatenablog.com/entry/2017/01/22/130231
ウィンドウズ版Rは初期状態では、スクリプトファイルの日本語コードはシフトJISしか扱えない。設定値を確認する場合は options()$encoding を表示する。
ー1)Rprofileを開いて、
options(encoding = "native.enc")
options(encoding="UTF-8") に変更する。

またはRのスクリプトの冒頭に以下をくわえてencodingを変更する.
options(encoding="UTF-8")

ー2)nlrxからのoutputを受け取るフォルダをdesktopに作り,"out"と名付け,その中に"rtemp"というフォルダを作り,テンポラリーファイルを格納する場所に指定する。
https://github.com/ropensci/nlrx/issues/10
https://stackoverflow.com/questions/17107206/change-temporary-directory

テキストエディタで以下を書き込んだファイルを"Renviron.site"と名をつけ、
C:/Program Files/R/R(任意のversion)/etc
に置く

TMPDIR=C:/Users/"UserName"/Desktop/out/rtemp
TMP=C:/Users/"UserName"/Desktop/out/rtemp 
TEMP=C:/Users/"UserName"/Desktop/out/rtemp

ー3)Rを開き,
install.packages("nlrx")
#理由は不明だが、わたしのwindows11のR 4.0.4にはlibrary "tibble"がインストールできず、nlrxが動作しなかった。"tibble"は"tidyverse"でインストールされる。"tibble"はR 4.2.3には問題なくインストールされた。

ー4)
https://github.com/ropensci/nlrx
のGetStartedを行う.

 

(5)netlogo modelの準備
netlogo model libraryのモデルは「インターフェイス」「情報」「コード」から構成されている。「情報」部分の内容は、コードの後半部分に記載されており、RでNetlogoを操作する時には「情報」の部分が邪魔をするので、取り除く。

ー1)netologoファイル(.nlogo)をテキストエディタで開く。情報が記載されている部分
(@#$#@#$#@ ## WHAT IS IT?)以降
(@#$#@#$#@ default true)以前
を削除する。


(6)nlrxスクリプトをRで走らせる。
modelpath、outpath、の書き間違いが無いように注意する。
実行中のC:/Users/"UserName"/Desktop/out/rtempではテンポラリーファイルが次々と更新され,終了すると,"out"に .csvファイルが作成される.