mirror of
https://bitbucket.org/cosmicvoids/vide_public.git
synced 2025-07-04 15:21:11 +00:00
Some general housekeeping, making sure some new parameters are passed around correctly, and removing the storage of some unused files. This update is considered HIGHLY UNSTABLE. It will almost certainly break somewhere for simulations. Still under active development.
143 lines
5.2 KiB
Python
143 lines
5.2 KiB
Python
#!/usr/bin/env python
|
|
#+
|
|
# VIDE -- Void IDentification and Examination -- ./python_tools/void_pipeline/__init__.py
|
|
# Copyright (C) 2010-2014 Guilhem Lavaux
|
|
# Copyright (C) 2011-2014 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.
|
|
#+
|
|
|
|
# Stage 1 : prepare particles for void finding
|
|
# Stage 2 : find voids
|
|
# Stage 3 : prune catalog
|
|
|
|
from backend import *
|
|
import voidUtil
|
|
import imp
|
|
import os
|
|
import pickle
|
|
|
|
# ------------------------------------------------------------------------------
|
|
|
|
if (len(sys.argv) == 1):
|
|
print("Usage: python3 -m vide_pipeline parameter_file.py")
|
|
exit(-1)
|
|
|
|
if (len(sys.argv) > 1):
|
|
print("\n\n Welcome to VIDE!\n")
|
|
filename = sys.argv[1]
|
|
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)
|
|
regenerateFlag = False
|
|
globals().update(vars(parms))
|
|
void_path = os.path.split(voidUtil.__file__)[0]
|
|
ZOBOV_PATH=f'{void_path}/../vide/bin/' # this needs to be cleaned up
|
|
CTOOLS_PATH=ZOBOV_PATH
|
|
#print(f"ZOBOV_PATH is {ZOBOV_PATH}")
|
|
else:
|
|
print(" Using default parameters")
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# ------------------------------------------------------------------------------
|
|
|
|
if not os.access(logDir, os.F_OK):
|
|
os.makedirs(logDir)
|
|
|
|
if not os.access(figDir, os.F_OK):
|
|
os.makedirs(figDir)
|
|
|
|
if not continueRun:
|
|
print(" Cleaning out log files...")
|
|
|
|
if startCatalogStage <= 1 and glob.glob(logDir+"/prepare*") != []:
|
|
os.system("rm %s/prepare*" % logDir)
|
|
if startCatalogStage <= 2 and glob.glob(logDir+"/zobov*") != []:
|
|
os.system("rm %s/zobov*" % logDir)
|
|
if startCatalogStage <= 3 and glob.glob(logDir+"/prune*") != []:
|
|
os.system("rm %s/prune*" % logDir)
|
|
|
|
for sample in dataSampleList:
|
|
|
|
sampleName = sample.fullName
|
|
|
|
print(" Working with data set", sampleName, "...")
|
|
outputDir = workDir+"/sample_"+sampleName+"/"
|
|
sample.outputDir = outputDir
|
|
|
|
if not os.access(outputDir, os.F_OK):
|
|
os.makedirs(outputDir)
|
|
|
|
# ---------------------------------------------------------------------------
|
|
if (startCatalogStage <= 1) and (endCatalogStage >= 1) and not sample.isCombo:
|
|
print(" Preparing tracers from catalog...", end='')
|
|
sys.stdout.flush()
|
|
|
|
logFile = logDir+"/prepare_"+sampleName+".out"
|
|
|
|
if sample.dataType == "observation":
|
|
PREPARE_PATH = CTOOLS_PATH+"/prepObservation"
|
|
else:
|
|
PREPARE_PATH = CTOOLS_PATH+"/prepSimulation"
|
|
|
|
launchPrep(sample, PREPARE_PATH, workDir=workDir,
|
|
inputDataDir=inputDataDir, outputDir=outputDir,
|
|
figDir=figDir, logFile=logFile, useComoving=sample.useComoving,
|
|
continueRun=continueRun, regenerate=regenerateFlag)
|
|
|
|
# --------------------------------------------------------------------------
|
|
if (startCatalogStage <= 2) and (endCatalogStage >= 2) and not sample.isCombo:
|
|
print(" Finding voids...", end='')
|
|
sys.stdout.flush()
|
|
|
|
launchZobov(sample, ZOBOV_PATH, outputDir=outputDir, logDir=logDir,
|
|
continueRun=continueRun, numZobovDivisions=numZobovDivisions,
|
|
numZobovThreads=numZobovThreads,
|
|
mergingThreshold=mergingThreshold)
|
|
|
|
# -------------------------------------------------------------------------
|
|
if (startCatalogStage <= 3) and (endCatalogStage >= 3) and not sample.isCombo:
|
|
|
|
print(" Pruning void catalogs", "...", end='')
|
|
sys.stdout.flush()
|
|
|
|
logFile = logDir+"/pruneVoids_"+sampleName+".out"
|
|
|
|
PRUNE_PATH = CTOOLS_PATH+"/pruneVoids"
|
|
|
|
launchPrune(sample, PRUNE_PATH,
|
|
logFile=logFile, outputDir=outputDir,
|
|
useComoving=sample.useComoving, continueRun=continueRun,
|
|
mergingThreshold=mergingThreshold)
|
|
|
|
# -------------------------------------------------------------------------
|
|
if (startCatalogStage <= 4) and (endCatalogStage >= 4):
|
|
|
|
print(" Plotting...", end='')
|
|
sys.stdout.flush()
|
|
|
|
#for thisDataPortion in dataPortions:
|
|
#plotRedshiftDistribution(workDir, dataSampleList, figDir, showPlot=False,
|
|
# dataPortion=thisDataPortion, setName=setName)
|
|
#plotSizeDistribution(workDir, dataSampleList, figDir, showPlot=False,
|
|
# dataPortion=thisDataPortion, setName=setName)
|
|
#plotNumberDistribution(workDir, dataSampleList, figDir, showPlot=False,
|
|
# dataPortion=thisDataPortion, setName=setName)
|
|
#plotVoidDistribution(workDir, dataSampleList, figDir, showPlot=False,
|
|
# dataPortion=thisDataPortion, setName=setName)
|
|
|
|
print("\n VIDE finished!")
|