Я создал симуляцию в NetLogo и хочу провести несколько экспериментов на кластере Linux.Мне нужно заменить путь к файлу в файле настройки XML.
<enumeratedValueSet variable="str_critterpath">
<value value=""C:/Users/jorche/OneDrive - University of Leeds/Analysis/SimpleIBM/netlogo/critters.csv""/>
</enumeratedValueSet>
Это новый файл, созданный в сценарии R, который создает различные входные данные CSV для использования NetLogo.Я собираюсь установить одиночные прогоны, используя команду system () в сценарии R.
Здесь приведен мой сценарий R с некоторыми хеш-метками, обозначающими, где мне нужно сделать копию XML-файла сдругой путь. Я могу захотеть изменить другие переменные на более позднем этапе.
library(gtools)
CreatCritterCSV = function(Run, NoCritters){
x <- 1:21
for (i in 1:10){
print(i)
aperm = t(as.matrix(permute(x), nrow =1, ncol=21))
if(i ==1){
df = data.frame(aperm)
}else{
df[i,] = aperm
}
}
filename = paste("critters", Run, ".csv", sep = "")
write.table(df, file = filename,row.names=FALSE, na="",col.names=FALSE, sep=",")
return(filename)
}
args <- commandArgs(trailingOnly = TRUE)
rnorm(RunNo=as.numeric(args[1]), NumberCritters=as.numeric(args[2]))
csvInput = CreatCritterCSV(RunNo, NumberCritters)
InSetupfile = "setup.xml"
#Replace the filepath to critters.csv
#
#
#
#
setupfile = paste("setup", RunNo, ".xml", sep = "")
NetLogoCommand = paste("/home/users/zabados/NetLogo/netlogo-headless.sh --model '/home/users/zabados/Ran.nlogo' --setup-file", setupfile, "--experiment experiment --table RanTest.csv", sep = " ")
system(NetLogoCommand)
Файл установки xml выглядит так:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE experiments SYSTEM "behaviorspace.dtd">
<experiments>
<experiment name="experiment" repetitions="1" runMetricsEveryStep="false">
<setup>setup</setup>
<go>go</go>
<exitCondition>StoppingStable</exitCondition>
<metric>saveOutSingles</metric>
<enumeratedValueSet variable="DiffIntraDen">
<value value="false"/>
</enumeratedValueSet>
<enumeratedValueSet variable="DiffWalk">
<value value="false"/>
</enumeratedValueSet>
<enumeratedValueSet variable="maxReproRate">
<value value="0.05"/>
</enumeratedValueSet>
<enumeratedValueSet variable="NumberZetas">
<value value="0"/>
</enumeratedValueSet>
<enumeratedValueSet variable="interdensity">
<value value="1"/>
</enumeratedValueSet>
<enumeratedValueSet variable="ExtraMort">
<value value="0.5"/>
</enumeratedValueSet>
<enumeratedValueSet variable="DiffMaxRepro">
<value value="false"/>
</enumeratedValueSet>
<enumeratedValueSet variable="intraRadius">
<value value="0"/>
</enumeratedValueSet>
<enumeratedValueSet variable="DiffSpeeds">
<value value="false"/>
</enumeratedValueSet>
<enumeratedValueSet variable="GenSpec">
<value value="false"/>
</enumeratedValueSet>
<enumeratedValueSet variable="DiffInterDen">
<value value="false"/>
</enumeratedValueSet>
<enumeratedValueSet variable="DiffSpdCoe">
<value value="false"/>
</enumeratedValueSet>
<enumeratedValueSet variable="DiffStartNum">
<value value="false"/>
</enumeratedValueSet>
<enumeratedValueSet variable="interRadius">
<value value="5"/>
</enumeratedValueSet>
<enumeratedValueSet variable="PopGrowExp">
<value value="0.5"/>
</enumeratedValueSet>
<enumeratedValueSet variable="SameSpeed">
<value value="5"/>
</enumeratedValueSet>
<enumeratedValueSet variable="logiMidpoint">
<value value="11"/>
</enumeratedValueSet>
<enumeratedValueSet variable="Imortal_infert">
<value value="false"/>
</enumeratedValueSet>
<enumeratedValueSet variable="DisplaySpecies">
<value value="false"/>
</enumeratedValueSet>
<enumeratedValueSet variable="DripFeedRate">
<value value="0"/>
</enumeratedValueSet>
<enumeratedValueSet variable="StartingExp">
<value value="10"/>
</enumeratedValueSet>
<enumeratedValueSet variable="DiffExtraMort">
<value value="false"/>
</enumeratedValueSet>
<enumeratedValueSet variable="SimpleDensity">
<value value="true"/>
</enumeratedValueSet>
<enumeratedValueSet variable="str_critterpath">
<value value=""C:/Users/jorche/OneDrive - University of Leeds/Analysis/SimpleIBM/netlogo/critters.csv""/>
</enumeratedValueSet>
<enumeratedValueSet variable="intradensity">
<value value="2"/>
</enumeratedValueSet>
<enumeratedValueSet variable="max_age">
<value value="3"/>
</enumeratedValueSet>
<enumeratedValueSet variable="WalkType">
<value value=""Logistic""/>
</enumeratedValueSet>
<enumeratedValueSet variable="DiffAge">
<value value="false"/>
</enumeratedValueSet>
<enumeratedValueSet variable="DripFeedNumber">
<value value="1"/>
</enumeratedValueSet>
<enumeratedValueSet variable="SpeciesPresenceCutOff">
<value value="1"/>
</enumeratedValueSet>
<enumeratedValueSet variable="SpeedCoef">
<value value="0.4"/>
</enumeratedValueSet>
<enumeratedValueSet variable="DiffPopGrExp">
<value value="false"/>
</enumeratedValueSet>
<enumeratedValueSet variable="walk_exp">
<value value="0.6"/>
</enumeratedValueSet>
<enumeratedValueSet variable="CRW_multi">
<value value="90"/>
</enumeratedValueSet>
<enumeratedValueSet variable="StartingEachSpecies">
<value value="30"/>
</enumeratedValueSet>
<enumeratedValueSet variable="PrefMoveExp">
<value value="0.5"/>
</enumeratedValueSet>
<enumeratedValueSet variable="MemLen">
<value value="2000"/>
</enumeratedValueSet>
</experiment>
</experiments>
Любая помощь будет принята с большим удовольствием.Я попытался gsub XML, как будто это текстовый файл без удовольствия и проанализировать XML-файл с помощью пакета r xml.Быстро никуда не денется.
Приветствия.