我正在尝试创建一个脚本,为不同的输入重新运行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使用哪个输入。但是,我似乎找不到任何关于指定程序输入的函数的文档。
有没有人对下一步有什么想法?
#en0#
现在我有以下代码:
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而不是种,以确保库中不存在物种这个词。
发布于 2020-01-17 19:17:44
如果我理解正确的话,您需要将参数/标志传递给Maxent的jar文件以实现您的目标。
我已经下载了Maxen,并找到了必要的参数/标志。当你启动Maxent时,点击help并向下滚动到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。
https://stackoverflow.com/questions/59785029
复制相似问题