From 0b54a31d0ca356917305baeba293aa17249cb769 Mon Sep 17 00:00:00 2001 From: "P.M. Sutter" Date: Sun, 18 Nov 2012 14:23:50 -0600 Subject: [PATCH] many bug fixes from the previous update; new changes appear to work now --- c_tools/libzobov/contour_pixels.cpp | 30 +++++++++++++++++++ c_tools/libzobov/contour_pixels.hpp | 1 + c_tools/mock/generateFromCatalog.cpp | 12 ++++---- c_tools/mock/generateMock.cpp | 2 ++ pipeline/generateCatalog.py | 20 +++++++++++-- pipeline/prepareCatalogs.py | 24 ++++++++------- .../void_python_tools/backend/launchers.py | 4 +-- 7 files changed, 72 insertions(+), 21 deletions(-) diff --git a/c_tools/libzobov/contour_pixels.cpp b/c_tools/libzobov/contour_pixels.cpp index 6486ae7..6aa7935 100644 --- a/c_tools/libzobov/contour_pixels.cpp +++ b/c_tools/libzobov/contour_pixels.cpp @@ -54,3 +54,33 @@ void computeContourPixels(Healpix_Map& m, vector& contour) write_Healpix_map_to_fits(h, contour_map, planckType()); } } + +void computeMaskPixels(Healpix_Map& m, vector& contour) +{ + for (int p = 0; p < m.Npix(); p++) + { + + if (m[p]>0) + { + contour.push_back(p); + // This is boundary go to next pixel + } + } + + if (DEBUG) + { + Healpix_Map contour_map; + + contour_map.SetNside(m.Nside(), RING); + contour_map.fill(0); + for (int p = 0; p < contour.size(); p++) + { + contour_map[contour[p]]=1; + } + + fitshandle h; + h.create("!mask_map.fits"); + write_Healpix_map_to_fits(h, contour_map, planckType()); + } +} + diff --git a/c_tools/libzobov/contour_pixels.hpp b/c_tools/libzobov/contour_pixels.hpp index d3a893b..c576477 100644 --- a/c_tools/libzobov/contour_pixels.hpp +++ b/c_tools/libzobov/contour_pixels.hpp @@ -7,5 +7,6 @@ void computeContourPixels(Healpix_Map& map, std::vector& contour); void computeFilledPixels(Healpix_Map& map, std::vector& contour); +void computeMaskPixels(Healpix_Map& map, std::vector& contour); #endif diff --git a/c_tools/mock/generateFromCatalog.cpp b/c_tools/mock/generateFromCatalog.cpp index 1024f48..1d49da3 100644 --- a/c_tools/mock/generateFromCatalog.cpp +++ b/c_tools/mock/generateFromCatalog.cpp @@ -295,10 +295,10 @@ void generateSurfaceMask(generateFromCatalog_info& args , int nPart = 100; // TEST - for (int iDir = 0; iDir < 0; iDir++) { - for (int iFace = 0; iFace < 0; iFace++) { - //for (int iDir = 0; iDir < 3; iDir++) { - //for (int iFace = 0; iFace < 2; iFace++) { + //for (int iDir = 0; iDir < 0; iDir++) { + //for (int iFace = 0; iFace < 0; iFace++) { + for (int iDir = 0; iDir < 3; iDir++) { + for (int iFace = 0; iFace < 2; iFace++) { int iy = (iDir + 1) % 3; int iz = (iDir + 2) % 3; @@ -483,6 +483,7 @@ void saveForZobov(ParticleData& pdata, const string& fname, const string& paramn //delete[] expansion_fac; +/* FILE *infoFile = fopen("sample_info.txt", "w"); fprintf(infoFile, "x_min = %f\n", -Lmax/100.); fprintf(infoFile, "x_max = %f\n", Lmax/100.); @@ -493,7 +494,7 @@ void saveForZobov(ParticleData& pdata, const string& fname, const string& paramn fprintf(infoFile, "mask_index = %d\n", pdata.mask_index); fprintf(infoFile, "total_particles = %d\n", pdata.pos.size()); fclose(infoFile); - +*/ } @@ -545,6 +546,7 @@ int main(int argc, char **argv) mask.Import(o_mask); computeContourPixels(mask,pixel_list); + computeMaskPixels(mask,full_mask_list); // We compute a cube holding all the galaxies + the survey surface mask diff --git a/c_tools/mock/generateMock.cpp b/c_tools/mock/generateMock.cpp index 06d06d3..7dacef6 100644 --- a/c_tools/mock/generateMock.cpp +++ b/c_tools/mock/generateMock.cpp @@ -505,6 +505,7 @@ void makeBox(SimuData *simu, double *efac, SimuData *&boxed, generateMock_info& delete[] expansion_fac; +/* FILE *fp = fopen("sample_info.txt", "w"); fprintf(fp, "x_min = %f\n", ranges[0][0]); fprintf(fp, "x_max = %f\n", ranges[0][1]); @@ -515,6 +516,7 @@ void makeBox(SimuData *simu, double *efac, SimuData *&boxed, generateMock_info& fprintf(fp, "mask_index = -1\n"); fprintf(fp, "total_particles = %d\n", boxed->NumPart); fclose(fp); +*/ } void makeBoxFromParameter(SimuData *simu, double *efac, SimuData* &boxed, generateMock_info& args_info) diff --git a/pipeline/generateCatalog.py b/pipeline/generateCatalog.py index 9ebd693..b60a6db 100755 --- a/pipeline/generateCatalog.py +++ b/pipeline/generateCatalog.py @@ -64,9 +64,23 @@ for sample in dataSampleList: # save this sample's information with open(zobovDir+"/sample_info.dat", 'w') as output: pickle.dump(sample, output, pickle.HIGHEST_PROTOCOL) - #fp = open(zobovDir+"/sample_info.txt", 'w') - #fp.write("Redshift range: %f - %f" %(sample.zBoundary[0], sample.zBoundary[1]) - #fp.close() + + fp = open(zobovDir+"/sample_info.txt", 'w') + fp.write("Sample name: %s\n" % sample.fullName) + fp.write("Sample nickname: %s\n" % sample.nickName) + fp.write("Data type: %s\n" % sample.dataType) + fp.write("Redshift range: %f - %f\n" %(sample.zBoundary[0],sample.zBoundary[1])) + fp.write("Estimated mean particle separation: %g\n" % sample.minVoidRadius) + + if (sample.dataType == "simulation"): + fp.write("Particles placed on lightcone: %g\n" % sample.useLightCone) + fp.write("Peculiar velocities included: %g\n" % sample.usePecVel) + fp.write("Additional subsampling fraction: %g\n" % sample.subsample) + fp.write("Simulation box length (Mpc/h): %g\n" % sample.boxLen) + fp.write("Simulation Omega_M: %g\n" % sample.omegaM) + fp.write("Number of simulation subvolumes: %g\n", sample.numSubvolumes) + fp.write("My subvolume index: %g\n", sample.mySubvolume) + fp.close() # --------------------------------------------------------------------------- if (startCatalogStage <= 1) and (endCatalogStage >= 1) and not sample.isCombo: diff --git a/pipeline/prepareCatalogs.py b/pipeline/prepareCatalogs.py index b149401..13a96e9 100755 --- a/pipeline/prepareCatalogs.py +++ b/pipeline/prepareCatalogs.py @@ -323,26 +323,28 @@ if (args.script or args.all) and dataFormat == "multidark": print " Doing halo scripts" for minHaloMass in minHaloMasses: + # estimate number of halos to get density dataFile = catalogDir+haloFileBase+fileNums[0] inFile = open(dataFile, 'r') numPart = 0 for line in inFile: line = line.split(',') - if numHaloMass == "none" or float(line[6]) > minHaloMass: - numPart += 1 + if minHaloMass == "none" or float(line[6]) > minHaloMass: + numPart += 1 inFile.close() minRadius = 2*int(np.ceil(lbox/numPart**(1./3.))) if dataFormat == "multidark": - setName = prefix+"halos_min"str(minHaloMass) + setName = prefix+"halos_min"+str(minHaloMass) writeScript(setName, "md.halos_min"+str(minHaloMass)+"_z", scriptDir, catalogDir, fileNums, redshifts, numSubvolumes, numSlices, False, lbox, minRadius, omegaM) writeScript(setName, "md.halos_min"+str(minHaloMass)+"_z", scriptDir, catalogDir, fileNums, - numSlices, True, lbox, minRadius, omegaM) + redshifts, + numSubvolumes, numSlices, True, lbox, minRadius, omegaM) if args.halos or args.all: print " Doing halos" @@ -355,9 +357,11 @@ if args.halos or args.all: dataFile = catalogDir+haloFileBase+fileNums[iRedshift] inFile = open(dataFile, 'r') + numPart = 0 for line in inFile: line = line.split(',') - if numHaloMass == "none" or float(line[6]) > minHaloMass: + if minHaloMass == "none" or float(line[6]) > minHaloMass: + numPart += 1 inFile.close() sampleName = "md.halos_z"+redshift @@ -370,18 +374,16 @@ if args.halos or args.all: outFile.write("%d\n" %(numPart)) inFile = open(dataFile, 'r') - numKept = 0 - for line in inFile: - if numHaloMass == "none" or float(line[6]) > minHaloMass: - numKept += 1 - line = line.split(',') + for (iHalo,line) in enumerate(inFile): + line = line.split(',') + if minHaloMass == "none" or float(line[6]) > minHaloMass: x = float(line[0]) y = float(line[1]) z = float(line[2]) vz = float(line[5]) # write to output file - outFile.write("%d %e %e %e %e\n" %(numKept,x,y,z,vz)) + outFile.write("%d %e %e %e %e\n" %(iHalo,x,y,z,vz)) inFile.close() outFile.close() diff --git a/python_tools/void_python_tools/backend/launchers.py b/python_tools/void_python_tools/backend/launchers.py index 280f568..0d24ca7 100755 --- a/python_tools/void_python_tools/backend/launchers.py +++ b/python_tools/void_python_tools/backend/launchers.py @@ -83,7 +83,7 @@ def launchGenerate(sample, binPath, workDir=None, inputDataDir=None, if os.access("mask_index.txt", os.F_OK): os.system("mv %s %s" % ("mask_index.txt", zobovDir)) os.system("mv %s %s" % ("total_particles.txt", zobovDir)) - os.system("mv %s %s" % ("sample_info.txt", zobovDir)) + #os.system("mv %s %s" % ("sample_info.txt", zobovDir)) if os.access("galaxies.txt", os.F_OK): os.system("mv %s %s" % ("galaxies.txt", zobovDir)) @@ -160,7 +160,7 @@ def launchGenerate(sample, binPath, workDir=None, inputDataDir=None, if os.access("comoving_distance.txt", os.F_OK): os.system("mv %s %s" % ("comoving_distance.txt", zobovDir)) - os.system("mv %s %s" % ("sample_info.txt", zobovDir)) + #os.system("mv %s %s" % ("sample_info.txt", zobovDir)) if os.access(parmFile, os.F_OK): os.unlink(parmFile)