我试图创建一个脚本,为不同的输入重新运行maxent。我有大约1500个品种需要单独加工。我的想法是在这个程序中使用python循环。但我似乎找不到正确的信息开始。 现在我有3行简单的代码告诉python打开程序
import subprocess
subprocess.call(['java', '-jar', r'C:\Program Files (x86)\Maxent\maxent.jar'])
subprocess.call([r'C:\Program Files (x86)\Maxent\maxent.bat'])
现在我想告诉python使用哪种输入。然而,我似乎找不到任何关于指定程序输入的函数的文档
有没有人对如何进行下一步有什么想法
----------------------编辑------------------
现在我有以下代码:
import glob
import subprocess
insect = glob.glob('D:\Maxent\samples\*.csv')
for species in insect:
subprocess.call(['java', '-jar', r'D:\Maxent\maxent.jar', 'environmentallayers=D:\Maxent\layers',
species, 'outputdirectory= D:\Maxent\outputs', 'redoifexists', 'autorun'])
这使我在maxent中出现以下错误:
Initialization flags not understood: D:\Maxent\samples\Aeshna_juncea.csv
以及pyhton中的以下错误
C:\Users\merel\PycharmProjects\untitled\venv\Scripts\python.exe "C:/Users/merel/PycharmProjects/untitled/maxent python.py"
Error: Initialization flags not understood: species
Error: No species selected
我也用“周围物种”试过了。这给了我以下错误:
C:\Users\merel\PycharmProjects\untitled\venv\Scripts\python.exe "C:/Users/merel/PycharmProjects/untitled/maxent python.py"
Error: Initialization flags not understood: species
Error: No species selected
我不知道为什么程序不理解这个论点。我还试着用x而不是物种来确定图书馆中没有物种这个词
如果我理解正确,您需要将参数/标志传递给Maxent的jar文件,以实现您的目标
我已经下载了Maxen并找到了必要的参数/标志。启动Maxent时,单击“帮助”并向下滚动到
Batch mode
,您可以在那里找到所有参数/标志,还有一个示例用法java -mx512m -jar maxent.jar environmentallayers=layers samplesfile=samples\bradypus.csv outputdirectory=outputs togglelayertype=ecoreg redoifexists autorun
您可以在路径后添加这些参数/标志,如下所示:
subprocess.call(['java', '-jar', r'C:\Program Files (x86)\Maxent\maxent.jar', 'environmentallayers=layers', 'samplesfile=samples\bradypus.csv', 'outputdirectory=outputs', 'togglelayertype=ecoreg', 'redoifexists', 'autorun'])
我希望这对你的项目有帮助。因为我对你的领域一无所知,所以我没有尝试过任何方法
编辑: 您不必调用.bat文件,因为它还使用给定的参数/标志执行maxent.jar
相关问题 更多 >
编程相关推荐