CIAO和python

时间:2017-05-12 15:43:19

标签: python subprocess

我一直在尝试将Chandra分析工具(ciao)合并到python http://cxc.harvard.edu/ciao4.4/scripting/runtool.html中,并使用' wavdetect'作为我使用ciao的问题的命令。虽然' wavdetect'当我指定输入/输出文件的确切名称时效果很好,当我为这些文件使用连接名称时,它似乎没有提供任何输出。 (我验证了在wavdetect中读取的连接文件很好,但.wait()状态是1)。任何关于此错误的可能原因(解决方案?)的指针都会有所帮助。我在这里粘贴了我的程序的一部分:

from subprocess import *
p=Popen(["wavdetect","image1.img",
"deep_source_list.fits","deep_scell.fits",
"deep_img.img", "deep_bkg.bkg",     
"psffile=xrt_psf.fits",
"scales=1,1.41421,2.0,2.8284,4.0","regfile=region.reg",
"sigthresh=1e-6","clobber=yes"], stdout=PIPE, stderr=PIPE)
p.wait()

(工作顺利)

from subprocess import *
for k in (3,4):
innfile="9" + str(k) + ".img"
listfile="9" + str(k) + "_source_list.fits"
scell="9" + str(k) + "_scell.fits"
image="9" + str(k) + "_img.img"
bkg="9" + str(k) + "_bkg.bkg"
regionfile="9" + str(k) + "region.reg"
print(regionfile)
q=Popen(["wavdetect",innfile,listfile,scell,image,bkg,
"psffile=xrt_psf.fits", "scales= 1,1.41421,2.0,2.8284,4.0", regionfile,
"sigthresh=1e-6", "clobber=yes"], stdout=PIPE, stderr=PIPE)
q.wait()

(给我q.wait()= 1而没有输出)

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

为了结束,我正在回答我自己的问题:

我写信给ciao服务台,他建议我做出以下改动:

 innfile="infile=9{}.img".format(k) listfile="outfile=9{}_source_list.fits".format(k) scell="scellfile=9{}_scell.fits".format(k) image="imagefile=9{}_img.img".format(k) bkg="defnbkgfile=9{}_bkg.bkg".format(k) regionfile="regfile=9{}region.reg".format(k)

和Viola一起工作了!