#!/usr/bin/env python #+ # VIDE -- Void IDEntification pipeline -- ./crossCompare/analysis/mergerTree.py # Copyright (C) 2010-2013 Guilhem Lavaux # Copyright (C) 2011-2013 P. M. Sutter # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. # # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #+ from void_python_tools.backend import * from void_python_tools.plotting import * import imp import pickle import os import matplotlib.pyplot as plt import numpy as np import argparse # ------------------------------------------------------------------------------ dataNameBase = "mergerTree" parser = argparse.ArgumentParser(description='Analyze.') parser.add_argument('--parm', dest='parm', default='datasetsToAnalyze.py', help='path to parameter file') args = parser.parse_args() # ------------------------------------------------------------------------------ filename = args.parm print " Loading parameters from", filename if not os.access(filename, os.F_OK): print " Cannot find parameter file %s!" % filename exit(-1) parms = imp.load_source("name", filename) globals().update(vars(parms)) if not os.access(dataDir, os.F_OK): os.makedirs(dataDir) outFileName = dataDir + "/" + dataNameBase #+ ".dat" with open(workDir+baseSampleDir+"/sample_info.dat", 'rb') as input: baseSample = pickle.load(input) for (iSample, sampleDir) in enumerate(sampleDirList): with open(workDir+sampleDir+"/sample_info.dat", 'rb') as input: sample = pickle.load(input) print " Working with", sample.fullName, "...", sys.stdout.flush() sampleName = sample.fullName binPath = CTOOLS_PATH+"/analysis/voidOverlap" logFile = os.getcwd()+"/mergerTree.log" stepOutputFileName = outFileName + "_" + baseSample.fullName + "_" + \ sampleName + "_" #stepOutputFileName = os.getcwd()+"/data/overlap_" launchVoidOverlap(sample, baseSample, workDir+sampleDir, workDir+baseSampleDir, binPath, thisDataPortion="central", logFile=logFile, continueRun=False, workDir=workDir, outputFile=stepOutputFileName, matchMethod="useID") # attach columns to summary file #if iSample == 1: # os.system("cp %s %s" % (stepOutputFileName, outFileName)) #else: # outFile = open("temp.out", "w") # stepOutFile1 = open(outFileName, "r") # stepOutFile2 = open(stepOutputFileName, "r") # # for line1 in stepOutFile1: # line1 = line1.rstrip() # line2 = stepOutFile2.readline() # outFile.write(line1+" "+line2) # # os.system("cp %s %s" % ("temp.out", outFileName)) # outFile.close() # stepOutFile1.close() # stepOutFile2.close() #if os.access("mergerTree.log", os.F_OK): os.unlink("mergerTree.log") #if os.access("temp.out", os.F_OK): os.unlink("temp.out") #if os.access("thisStep.out", os.F_OK): os.unlink("thisStep.out") print " Done!"