Ich habe ein Python-Skript erstellt, das ein R-Skript aufruft und dann die Ausgabe zurück in Python liest. Ich kann dieses Tool in ArcGIS Desktop (10.2.1) ausführen und es funktioniert einwandfrei. Wenn ich als Geoverarbeitungsdienst veröffentliche, schlägt dies fehl, sobald das R-Skript erreicht ist. Ich habe die Dateipfade überprüft und sie sind in Ordnung. Ist es überhaupt möglich, externe Skripte von einem Geoverarbeitungsdienst aufzurufen? Hier ist mein Code.
import sys, os, arcpy
arcpy.AddMessage("Loaded Python Imports...")
try:
#User Input
lat = arcpy.GetParameterAsText(0)
long = arcpy.GetParameterAsText(1)
arcpy.AddMessage("LAT: " + "".join(lat))
arcpy.AddMessage("LONG: " + "".join(long))
#Create R Command
rScript = "test.R"
args = " ".join([lat, long])
RCMD = "R --slave --vanilla --args "
cmd = RCMD + args + " < " + rScript
#Execute
os.system(cmd)
#Render the Results
output = open("FILE PATH")
finalNumber = output.read()
print("The output is: " + " ".join(finalNumber))
arcpy.AddMessage("The output is: " + " ".join(finalNumber))
output.close()
#Delete Text File
os.remove("FILE PATH")
except Exception as e:
print e.message
arcpy.AddError(e.message)
Rscript test.R arg1 arg2 arg3
verwenden? Für den Fall, dass Ihnen diese Option nicht bekannt war, finden Sie hier ein einfaches Beispiel dafür , wie dies in der Praxis aussieht.