Tôi đã tạo một tập lệnh Python gọi tập lệnh R và sau đó đọc kết quả đầu ra thành Python. Tôi có thể chạy công cụ này trong ArcGIS Desktop (10.2.1) và nó hoạt động tốt. Khi tôi xuất bản dưới dạng dịch vụ xử lý địa lý, nó sẽ thất bại một khi nó đạt đến tập lệnh R. Tôi đã kiểm tra đường dẫn tập tin và chúng vẫn ổn. Thậm chí có thể gọi các tập lệnh bên ngoài từ một dịch vụ xử lý địa lý không? Đây là mã của tôi.
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
thế nào chưa? Chỉ trong trường hợp bạn không biết về tùy chọn đó, đây là một ví dụ đơn giản về những gì trông giống như trong thực tế.