我正在尝试在Ubuntu上的Rstudio中执行一个名为windows的可执行文件(来自FUSION的groundfilter.exe)。 我可以使用wine从终端运行groundfilter.exe,如下所示:
wine C:/FUSION/groundfilter.exe /gparam:0 /wparam:1 /tolerance:1 /iterations:10 test_Grnd.las 1 test.las
执行正常并生成文件test_Grnd.las确定。 但是当我尝试使用system()从Rstudio内部执行此操作时,它不能正常工作,并且不会生成输出文件(与终端不同)。我这样做:
command<-paste("wine C:/FUSION/groundfilter.exe",
"/gparam:0 /wparam:1 /tolerance:1 /iterations:10",
"/home/martin/Documents/AUAV_Projects/test_FUSION/test_FUSION/test_GroundPts.las",
"1",
"/home/martin/Documents/AUAV_Projects/test_FUSION/test_FUSION/test.las",sep=" ")
system(command)
可执行文件在Rstudio控制台中似乎被称为OK,但运行时好像没有提供文件名。输出(截断)是:
system(command)
GroundFilter v1.75 (FUSION v3.60) (Built on Oct 6 2016 08:45:14) DEBUG
--Robert J. McGaughey--USDA Forest Service--Pacific Northwest Research Station
Filters a point cloud to identify bare-earth points
Syntax: GroundFilter [switches] outputfile cellsize datafile1 datafile2 ...
outputfile Name for the output point data file (stored in LDA format)
如果文件名被关闭,这是来自终端的相同输出,所以我在R中的系统调用不正确?
答案 0 :(得分:0)
我认为葡萄酒不会找到像/ home / martin /....
这样的路径一种可能性是将groundfilter.exe(以及可能需要的dll)放入您想要使用的目录中,并使用setwd()将R工作目录设置为该目录。
我看到的另一种可能性是提供葡萄酒理解的路径,例如Z:/home/martin/...
。
这不是权威的答案,只是我的想法,所以请参阅真实故事的文档。