checkpoint for cleaning up output files and consolidating

This commit is contained in:
Paul M. Sutter 2025-05-20 16:46:38 -04:00
parent acdb19e6df
commit d6a939d2cf
3 changed files with 214 additions and 249 deletions

View file

@ -299,35 +299,35 @@ def findEdgeGalaxies(galFile, maskFile, edgeGalFile, contourFile,
log.write(" Saving galaxy flags to file...\n")
np.savetxt(edgeGalFile, flagList, fmt="%d")
# paint galaxy flags onto healpix map for diagnostics
# TODO - drop this when done testing
log.write(" Saving diagnostic maps to file...\n")
flagMap = np.zeros(len(contourMap))
justEdgeRA = RA[flagList == 1]
justEdgeDec = Dec[flagList == 1]
## paint galaxy flags onto healpix map for diagnostics
## TODO - drop this when done testing
#log.write(" Saving diagnostic maps to file...\n")
#flagMap = np.zeros(len(contourMap))
#justEdgeRA = RA[flagList == 1]
#justEdgeDec = Dec[flagList == 1]
phi, theta = convertAngle(justEdgeRA, justEdgeDec)
#phi, theta = convertAngle(justEdgeRA, justEdgeDec)
ipix = healpy.ang2pix(nside, theta, phi)
for i in ipix:
flagMap[i] += 1
#np.put(flagMap, ipix, 1)
#ipix = healpy.ang2pix(nside, theta, phi)
#for i in ipix:
# flagMap[i] += 1
##np.put(flagMap, ipix, 1)
healpy.write_map(outputDir+"/flagged_galaxies.fits", flagMap,
overwrite=True,
dtype=np.dtype('float64'))
#healpy.write_map(outputDir+"/flagged_galaxies.fits", flagMap,
# overwrite=True,
# dtype=np.dtype('float64'))
allGalMap = np.zeros(len(contourMap))
phi, theta = convertAngle(RA, Dec)
#allGalMap = np.zeros(len(contourMap))
#phi, theta = convertAngle(RA, Dec)
ipix = healpy.ang2pix(nside, theta, phi)
for i in ipix:
allGalMap[i] += 1
#np.put(allGalMap, ipix, 1)
#ipix = healpy.ang2pix(nside, theta, phi)
#for i in ipix:
# allGalMap[i] += 1
##np.put(allGalMap, ipix, 1)
healpy.write_map(outputDir+"/all_galaxies.fits", allGalMap,
overwrite=True,
dtype=np.dtype('float64'))
#healpy.write_map(outputDir+"/all_galaxies.fits", allGalMap,
# overwrite=True,
# dtype=np.dtype('float64'))
return

View file

@ -31,7 +31,10 @@ import os
NetCDFFile = Dataset
ncFloat = 'f8'
# -----------------------------------------------------------------------------
CATALOG_V1 = 1
CATALOG_V2 = 2
# -----------------------------------------------------------------------
def loadPart(sampleDir):
print(" Loading particle data...")
sys.stdout.flush()
@ -270,11 +273,14 @@ def loadVoidCatalog(sampleDir,
print("Loading catalog from ", sampleDir)
isOldCatalog = os.path.exists(sampleDir+"/mask_index.txt")
if os.path.exists(sampleDir+"/mask_index.txt"):
version = CATALOG_V1
else:
version = CATALOG_V2
if isOldCatalog and clearNearBoundaries:
if version == CATALOG_V1 and clearNearBoundaries:
print("WARNING: Old catalog. Unable to clear near boundaries.")
if isOldCatalog and maxCentralDen != -1:
if version == CATALOG_V1 and maxCentralDen != -1:
print("WARNING: Old catalog. Central density cuts already applied.")
if replicateOldCentralVoids:
@ -310,19 +316,24 @@ def loadVoidCatalog(sampleDir,
# for new catalogs, we will load by default the whole shebang, then
# apply filters later. for old catalogs, we need to pick the right file
prefix = "untrimmed_"
if isOldCatalog and clearTree: prefix = ""
if version == CATALOG_V1:
if clearTree:
prefix = ""
else:
prefix = "untrimmed_"
dataPortion = "all"
if isOldCatalog and clearEdges: dataPortion = "central"
if clearEdges:
dataPortion = "central"
else:
dataPortion = "all"
print("Loading voids...")
fileName = sampleDir+"/"+prefix+"voidDesc_"+dataPortion+"_"+sample.fullName+".out"
print("Loading version-1 voids...")
fileName = sampleDir+"/"+prefix+"voidDesc_"+dataPortion+"_"+sample.fullName+".out"
catData = np.loadtxt(fileName, comments="#", skiprows=2)
catalog.voids = []
for line in catData:
catalog.voids.append(Bunch(iVoid = int(line[0]),
catData = np.loadtxt(fileName, comments="#", skiprows=2)
catalog.voids = []
for line in catData:
catalog.voids.append(Bunch(iVoid = int(line[0]),
voidID = int(line[1]),
coreParticle = line[2],
coreDens = line[3],
@ -335,7 +346,6 @@ def loadVoidCatalog(sampleDir,
voidProb = line[10],
# below values to be read in or computed later
radius = 0.,
macrocenter = np.zeros((3)),
redshift = 0,
RA = 0,
Dec = 0,
@ -351,78 +361,130 @@ def loadVoidCatalog(sampleDir,
nearestEdge = 0.
))
catalog.numVoids = len(catalog.voids)
print(" Read %d voids" % catalog.numVoids)
catalog.numVoids = len(catalog.voids)
print(" Read %d voids" % catalog.numVoids)
print("Loading macrocenters...")
iLine = 0
for line in open(sampleDir+"/"+prefix+"macrocenters_"+dataPortion+"_"+sample.fullName+".out"):
line = line.split()
catalog.voids[iLine].macrocenter[0] = float(line[1])
catalog.voids[iLine].macrocenter[1] = float(line[2])
catalog.voids[iLine].macrocenter[2] = float(line[3])
iLine += 1
print("Loading macrocenters...")
iLine = 0
for line in open(sampleDir+"/"+prefix+"macrocenters_"+dataPortion+"_"+sample.fullName+".out"):
line = line.split()
catalog.voids[iLine].macrocenter[0] = float(line[1])
catalog.voids[iLine].macrocenter[1] = float(line[2])
catalog.voids[iLine].macrocenter[2] = float(line[3])
iLine += 1
iLine = 0
fileName = sampleDir+"/"+prefix+"sky_positions_"+dataPortion+"_"+sample.fullName+".out"
catData = np.loadtxt(fileName, comments="#")
for line in catData:
catalog.voids[iLine].RA = float(line[0])
catalog.voids[iLine].Dec = float(line[1])
iLine += 1
iLine = 0
fileName = sampleDir+"/"+prefix+"sky_positions_"+dataPortion+"_"+sample.fullName+".out"
catData = np.loadtxt(fileName, comments="#")
for line in catData:
catalog.voids[iLine].RA = float(line[0])
catalog.voids[iLine].Dec = float(line[1])
iLine += 1
print("Loading derived void information...")
fileName = sampleDir+"/"+prefix+"centers_"+dataPortion+"_"+sample.fullName+".out"
catData = np.loadtxt(fileName, comments="#")
for (iLine,line) in enumerate(catData):
catalog.voids[iLine].volume = float(line[6])
catalog.voids[iLine].radius = float(line[4])
catalog.voids[iLine].redshift = float(line[5])
catalog.voids[iLine].parentID = float(line[10])
catalog.voids[iLine].treeLevel = float(line[11])
catalog.voids[iLine].numChildren = float(line[12])
catalog.voids[iLine].centralDen = float(line[13])
iLine += 1
fileName = sampleDir+"/"+prefix+"shapes_"+dataPortion+"_"+sample.fullName+".out"
catData = np.loadtxt(fileName, comments="#")
for (iLine,line) in enumerate(catData):
catalog.voids[iLine].ellipticity = float(line[1])
catalog.voids[iLine].eigenVals[0] = float(line[2])
catalog.voids[iLine].eigenVals[1] = float(line[3])
catalog.voids[iLine].eigenVals[2] = float(line[4])
catalog.voids[iLine].eigenVecs[0][0] = float(line[5])
catalog.voids[iLine].eigenVecs[0][1] = float(line[6])
catalog.voids[iLine].eigenVecs[0][2] = float(line[7])
catalog.voids[iLine].eigenVecs[1][0] = float(line[8])
catalog.voids[iLine].eigenVecs[1][1] = float(line[9])
catalog.voids[iLine].eigenVecs[1][2] = float(line[10])
catalog.voids[iLine].eigenVecs[2][0] = float(line[11])
catalog.voids[iLine].eigenVecs[2][1] = float(line[12])
catalog.voids[iLine].eigenVecs[2][2] = float(line[13])
iLine += 1
fileName = sampleDir+"/"+prefix+"extraInfo_"+dataPortion+"_"+sample.fullName+".out"
if os.path.exists(fileName):
print("Loading derived void information...")
fileName = sampleDir+"/"+prefix+"centers_"+dataPortion+"_"+sample.fullName+".out"
catData = np.loadtxt(fileName, comments="#")
for (iLine,line) in enumerate(catData):
catalog.voids[iLine].voidType = int(line[0])
catalog.voids[iLine].maxRadius = float(line[1])
catalog.voids[iLine].nearestEdge = float(line[2])
catalog.voids[iLine].volume = float(line[6])
catalog.voids[iLine].radius = float(line[4])
catalog.voids[iLine].redshift = float(line[5])
catalog.voids[iLine].parentID = float(line[10])
catalog.voids[iLine].treeLevel = float(line[11])
catalog.voids[iLine].numChildren = float(line[12])
catalog.voids[iLine].centralDen = float(line[13])
iLine += 1
fileName = sampleDir+"/"+prefix+"shapes_"+dataPortion+"_"+sample.fullName+".out"
catData = np.loadtxt(fileName, comments="#")
for (iLine,line) in enumerate(catData):
catalog.voids[iLine].ellipticity = float(line[1])
catalog.voids[iLine].eigenVals[0] = float(line[2])
catalog.voids[iLine].eigenVals[1] = float(line[3])
catalog.voids[iLine].eigenVals[2] = float(line[4])
catalog.voids[iLine].eigenVecs[0][0] = float(line[5])
catalog.voids[iLine].eigenVecs[0][1] = float(line[6])
catalog.voids[iLine].eigenVecs[0][2] = float(line[7])
catalog.voids[iLine].eigenVecs[1][0] = float(line[8])
catalog.voids[iLine].eigenVecs[1][1] = float(line[9])
catalog.voids[iLine].eigenVecs[1][2] = float(line[10])
catalog.voids[iLine].eigenVecs[2][0] = float(line[11])
catalog.voids[iLine].eigenVecs[2][1] = float(line[12])
catalog.voids[iLine].eigenVecs[2][2] = float(line[13])
iLine += 1
iLine += 1
else:
print(" Old catalog: extra info file not found")
print("Loading version-2 voids...")
fileName = sampleDir+"/"+prefix+"voidDatabase_"+sample.fullName+".out"
catalog.voids = []
for line in catData:
macrocenter = np.zeros((3))
macrocenter[0] = float(line[2])
macrocenter[1] = float(line[3])
macrocenter[2] = float(line[4])
eigenVals = np.zeros((3))
eigenVecs = np.zeros((3,3))
eigenVals[0] = float(line[26])
eigenVals[1] = float(line[27])
eigenVals[2] = float(line[28])
eigenVecs[0][0] = float(line[29])
eigenVecs[0][1] = float(line[30])
eigenVecs[0][2] = float(line[31])
eigenVecs[1][0] = float(line[32])
eigenVecs[1][1] = float(line[33])
eigenVecs[1][2] = float(line[34])
eigenVecs[2][0] = float(line[35])
eigenVecs[2][1] = float(line[36])
eigenVecs[2][2] = float(line[37])
catalog.voids.append(Bunch(
voidID = int(line[0]),
voidType = int(line[1]),
macrocenter = macrocenter,
voidVol = float(line[5]),
volume = float(line[6]),
radius = float(line[7]),
redshift = float(line[8]),
RA = float(line[9]),
Dec = float(line[10]),
densCon = float(line[11]),
maxRadius = float(line[12]),
nearestEdge = float(line[13]),
numPart = int(line[14]),
parentID = int(line[15]),
treeLevel = int(line[16]),
numChildren = int(line[17]),
centralDen = float(line[18]),
coreParticle = int(line[19]),
coreDens = float(line[20]),
zoneVol = float(line[21]),
zoneNumPart = int(line[22]),
numZones = int(line[23]),
voidProb = float(line[24]),
ellipticity = float(line[25]),
eigenVals = eigenVals,
eigenVecs = eigenVecs
))
catalog.numVoids = len(catalog.voids)
print(" Read %d voids" % catalog.numVoids)
# apply filters to new catalogs
if not isOldCatalog:
if version != CATALOG_V1:
print("Filtering catalog...")
if clearEdges: catalog = filterOnType(catalog, CENTRAL_VOID)
if clearTree: catalog = filterOnTreeLevel(catalog, level=-1)