Saya telah membuat skrip Python yang memanggil skrip R dan kemudian membaca hasilnya kembali menjadi Python. Saya dapat menjalankan alat ini di ArcGIS Desktop (10.2.1) dan berfungsi dengan baik. Ketika saya menerbitkan sebagai layanan geoproses, gagal setelah mencapai skrip R. Saya telah memeriksa path file dan semuanya baik-baik saja. Apakah mungkin untuk memanggil skrip eksternal dari layanan geoprocessing? Ini kode saya.
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
? Kalau-kalau Anda tidak mengetahui opsi itu, berikut adalah contoh sederhana dari apa yang terlihat dalam praktiknya.