diff --git a/pyfstat/core.py b/pyfstat/core.py index 1ffda24527c33fad3e81e463993e0f90103557ff..4482121b3c3b09d9fd3d90182389720010d00f44 100755 --- a/pyfstat/core.py +++ b/pyfstat/core.py @@ -907,6 +907,18 @@ class ComputeFstat(BaseSearchClass): else: return ax + def write_atoms_to_file(self, fnamebase=''): + multiFatoms = getattr(self.FstatResults, 'multiFatoms', None) + if multiFatoms and multiFatoms[0]: + dopplerName = lalpulsar.PulsarDopplerParams2String ( self.PulsarDopplerParams ) + #fnameAtoms = os.path.join(self.outdir,'Fstatatoms_%s.dat' % dopplerName) + fnameAtoms = fnamebase + '_Fstatatoms_%s.dat' % dopplerName + fo = lal.FileOpen(fnameAtoms, 'w') + lalpulsar.write_MultiFstatAtoms_to_fp ( fo, multiFatoms[0] ) + del fo # instead of lal.FileClose() which is not SWIG-exported + else: + raise RuntimeError('Cannot print atoms vector to file: no FstatResults.multiFatoms, or it is None!') + class SemiCoherentSearch(ComputeFstat): """ A semi-coherent search """ diff --git a/pyfstat/grid_based_searches.py b/pyfstat/grid_based_searches.py index 20ddd0f18eaf0369f2410c37a5f05b0aa6d3649b..42b3c3e9a6e67b63815d59cae2cce9af0870017b 100644 --- a/pyfstat/grid_based_searches.py +++ b/pyfstat/grid_based_searches.py @@ -354,7 +354,8 @@ class TransientGridSearch(GridSearch): input_arrays=False, assumeSqrtSX=None, transientWindowType=None, t0Band=None, tauBand=None, dt0=None, dtau=None, - outputTransientFstatMap=False): + outputTransientFstatMap=False, + outputAtoms=False): """ Parameters ---------- @@ -442,6 +443,8 @@ class TransientGridSearch(GridSearch): thisCand += [windowRange.t0+maxidx[0]*windowRange.dt0, windowRange.tau+maxidx[1]*windowRange.dtau] data.append(thisCand) + if self.outputAtoms: + self.search.write_atoms_to_file(os.path.splitext(self.out_file)[0]) data = np.array(data, dtype=np.float) if return_data: