#!/usr/bin/env python #+ # VIDE -- Void IDentification and Examination -- ./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. #+ __all__=['compareCatalogs',] from void_python_tools.backend import * import imp import pickle import os import matplotlib.pyplot as plt import numpy as np import argparse def compareCatalogs(baseCatalogDir, compareCatalogDir, outputDir="./", logDir="./", matchMethod="useID", dataPortion="central", strictMatch=True, pathToCTools="../../../c_tools"): # reports the overlap between two void catalogs # baseCatalogDir: directory of catalog 1 # compareCatagDir: directory of catalog 2 # outputDir: directory to place outputs # logDir: directory to place log files # matchMethod: "useID" to use unique IDs, "prox" to use overlap of Voronoi cells # dataPortion: "central" or "all" # strictMatch: if True, only attempt to match to trimmed catalog # pathToCTools: path to location of VIDE c_tools directory if not os.access(outputDir, os.F_OK): os.makedirs(outputDir) if not os.access(logDir, os.F_OK): os.makedirs(logDir) outFileName = outputDir + "/" + "voidOverlap" #+ ".dat" with open(baseCatalogDir+"/sample_info.dat", 'rb') as input: baseSample = pickle.load(input) with open(compareCatalogDir+"/sample_info.dat", 'rb') as input: sample = pickle.load(input) print " Comparing", baseSample.fullName, "to", sample.fullName, "...", sys.stdout.flush() sampleName = sample.fullName binPath = pathToCTools+"/analysis/voidOverlap" logFile = logDir+"/compare_"+baseSample.fullName+"_"+sampleName+".out" stepOutputFileName = outFileName + "_" + baseSample.fullName + "_" + \ sampleName + "_" launchVoidOverlap(baseSample, sample, baseCatalogDir, compareCatalogDir, binPath, thisDataPortion=dataPortion, logFile=logFile, continueRun=False, outputFile=stepOutputFileName, matchMethod=matchMethod, strictMatch=strictMatch) print " Done!" return