mirror of
https://bitbucket.org/cosmicvoids/vide_public.git
synced 2025-07-05 07:41:11 +00:00
checkpoint for cleaning up output files and consolidating
This commit is contained in:
parent
acdb19e6df
commit
d6a939d2cf
3 changed files with 214 additions and 249 deletions
|
@ -113,23 +113,14 @@ double expanFun (double z, void * p) {
|
|||
}
|
||||
|
||||
void openFiles(string outputDir, string sampleName,
|
||||
string prefix, string dataPortion,
|
||||
int numPartTot, int numKept,
|
||||
FILE** fpZobov, FILE** fpCenters,
|
||||
FILE** fpCentersNoCut,
|
||||
FILE** fpBarycenter, FILE** fpShapes,
|
||||
FILE** fpSkyPositions);
|
||||
FILE** fpOutput);
|
||||
|
||||
void closeFiles(FILE* fpZobov, FILE* fpCenters,
|
||||
FILE* fpCentersNoCut,
|
||||
FILE* fpBarycenter, FILE* fpShapes,
|
||||
FILE* fpSkyPositions);
|
||||
void closeFiles(FILE* fpOutput);
|
||||
|
||||
void outputVoids(string outputDir, string sampleName, string prefix,
|
||||
string dataPortion, int numPartTot,
|
||||
void outputVoids(string outputDir, string sampleName, int numPartTot,
|
||||
vector<VOID> voids,
|
||||
bool isObservation, double *boxLen,
|
||||
bool doTrim, bool doCentralDenCut);
|
||||
bool isObservation, double *boxLen);
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
|
||||
|
@ -145,8 +136,7 @@ int main(int argc, char **argv) {
|
|||
return 1;
|
||||
|
||||
if (!args.configFile_given) {
|
||||
if (pruneVoids_conf_required (&args,
|
||||
PRUNEVOIDS_CONF_PACKAGE))
|
||||
if (pruneVoids_conf_required (&args, PRUNEVOIDS_CONF_PACKAGE))
|
||||
return 1;
|
||||
} else {
|
||||
args_params.check_required = 1;
|
||||
|
@ -933,25 +923,11 @@ int main(int argc, char **argv) {
|
|||
dataPortions[0] = "central";
|
||||
dataPortions[1] = "all";
|
||||
|
||||
printf(" Output fully trimmed catalog...\n");
|
||||
prefix = "";
|
||||
for (int i = 0; i < 2; i++) {
|
||||
dataPortion = dataPortions[i];
|
||||
outputVoids(outputDir, sampleName, prefix, dataPortion,
|
||||
numPartTot,
|
||||
voids,
|
||||
args.isObservation_flag, boxLen, true, true);
|
||||
}
|
||||
|
||||
printf(" Output fully untrimmed catalog...\n");
|
||||
prefix = "untrimmed_";
|
||||
for (int i = 0; i < 2; i++) {
|
||||
dataPortion = dataPortions[i];
|
||||
outputVoids(outputDir, sampleName, prefix, dataPortion,
|
||||
outputVoids(outputDir, sampleName,
|
||||
numPartTot,
|
||||
voids,
|
||||
args.isObservation_flag, boxLen, false, false);
|
||||
}
|
||||
args.isObservation_flag, boxLen);
|
||||
|
||||
clock2 = clock();
|
||||
printf(" Time: %f sec (for %d voids)\n",
|
||||
|
@ -965,131 +941,47 @@ int main(int argc, char **argv) {
|
|||
|
||||
// ----------------------------------------------------------------------------
|
||||
void openFiles(string outputDir, string sampleName,
|
||||
string prefix, string dataPortion,
|
||||
int numPartTot, int numKept,
|
||||
FILE** fpZobov, FILE** fpCenters,
|
||||
FILE** fpBarycenter, FILE** fpShapes,
|
||||
FILE** fpExtra,
|
||||
FILE** fpSkyPositions) {
|
||||
FILE** fpOutput) {
|
||||
|
||||
*fpZobov = fopen((outputDir+"/"+prefix+"voidDesc_"+dataPortion+"_"+sampleName).c_str(), "w");
|
||||
fprintf(*fpZobov, "%d particles, %d voids.\n", numPartTot, numKept);
|
||||
fprintf(*fpZobov, "Void# FileVoid# CoreParticle CoreDens ZoneVol Zone#Part Void#Zones VoidVol Void#Part VoidDensContrast VoidProb\n");
|
||||
*fpOutput = fopen((outputDir+"/voidDatabase_"+sampleName).c_str(), "w");
|
||||
//fprintf(*fpZobov, "%d particles, %d voids.\n", numPartTot, numKept);
|
||||
fprintf(*fpOutput, "Void ID, void type, center (x,y,z) (Mpc/h), volume (normalized), volume(Mpc/h^3), radius (Mpc/h), redshift, RA, Dec, density contrast, max extent, nearest edge, num part, parent ID, tree level, num children, central density, core particle, core density, zone vol, zone num part, num zones, void probability, ellipticity, eig(1), eig(2), eig(3), eigv(1)-x, eiv(1)-y, eigv(1)-z, eigv(2)-x, eigv(2)-y, eigv(2)-z, eigv(3)-x, eigv(3)-y, eigv(3)-z\n");
|
||||
|
||||
*fpBarycenter = fopen((outputDir+"/"+prefix+"macrocenters_"+dataPortion+"_"+sampleName).c_str(), "w");
|
||||
|
||||
*fpCenters = fopen((outputDir+"/"+prefix+"centers_"+dataPortion+"_"+sampleName).c_str(), "w");
|
||||
fprintf(*fpCenters, "# center x,y,z (Mpc/h), volume (normalized), radius (Mpc/h), redshift, volume (Mpc/h^3), void ID, density contrast, num part, parent ID, tree level, number of children, central density\n");
|
||||
|
||||
*fpSkyPositions = fopen((outputDir+"/"+prefix+"sky_positions_"+dataPortion+"_"+sampleName).c_str(), "w");
|
||||
fprintf(*fpSkyPositions, "# RA, dec, redshift, radius (Mpc/h), void ID\n");
|
||||
|
||||
*fpShapes = fopen((outputDir+"/"+prefix+"shapes_"+dataPortion+"_"+sampleName).c_str(), "w");
|
||||
fprintf(*fpShapes, "# void ID, ellip, eig(1), eig(2), eig(3), eigv(1)-x, eiv(1)-y, eigv(1)-z, eigv(2)-x, eigv(2)-y, eigv(2)-z, eigv(3)-x, eigv(3)-y, eigv(3)-z\n");
|
||||
|
||||
*fpExtra = fopen((outputDir+"/"+prefix+"extraInfo_"+dataPortion+"_"+sampleName).c_str(), "w");
|
||||
fprintf(*fpExtra, "# void type, max radius, nearest edge\n");
|
||||
|
||||
} // end openFiles
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
void closeFiles(FILE* fpZobov, FILE* fpCenters,
|
||||
FILE* fpBarycenter, FILE* fpShapes,
|
||||
FILE* fpExtra,
|
||||
FILE* fpSkyPositions) {
|
||||
void closeFiles(FILE* fpOutput) {
|
||||
|
||||
fclose(fpZobov);
|
||||
fclose(fpCenters);
|
||||
fclose(fpBarycenter);
|
||||
fclose(fpOutput);
|
||||
//fclose(fpCenters);
|
||||
//fclose(fpBarycenter);
|
||||
//fclose(fpDistances);
|
||||
fclose(fpShapes);
|
||||
fclose(fpExtra);
|
||||
fclose(fpSkyPositions);
|
||||
//fclose(fpShapes);
|
||||
//fclose(fpExtra);
|
||||
//fclose(fpSkyPositions);
|
||||
|
||||
} // end closeFile
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
void outputVoids(string outputDir, string sampleName, string prefix,
|
||||
string dataPortion, int numPartTot,
|
||||
void outputVoids(string outputDir, string sampleName, int numPartTot,
|
||||
vector<VOID> voids,
|
||||
bool isObservation, double *boxLen, bool doTrim,
|
||||
bool doCentralDenCut) {
|
||||
bool isObservation, double *boxLen) {
|
||||
|
||||
int iVoid;
|
||||
VOID outVoid;
|
||||
FILE *fp, *fpZobov, *fpCenters, *fpCentersNoCut, *fpBarycenter,
|
||||
*fpShapes, *fpExtra, *fpSkyPositions;
|
||||
int iVoid;
|
||||
VOID outVoid;
|
||||
FILE *fp, *fpOutput;
|
||||
|
||||
|
||||
openFiles(outputDir, sampleName, prefix, dataPortion,
|
||||
openFiles(outputDir, sampleName,
|
||||
numPartTot, voids.size(),
|
||||
&fpZobov, &fpCenters, &fpBarycenter,
|
||||
&fpShapes, &fpExtra, &fpSkyPositions);
|
||||
&fpOutput);
|
||||
|
||||
|
||||
for (iVoid = 0; iVoid < voids.size(); iVoid++) {
|
||||
outVoid = voids[iVoid];
|
||||
for (iVoid = 0; iVoid < voids.size(); iVoid++) {
|
||||
outVoid = voids[iVoid];
|
||||
|
||||
|
||||
if (dataPortion == "central" && outVoid.voidType == EDGE_VOID) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (doTrim && outVoid.isLeaf) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (doCentralDenCut && outVoid.hasHighCentralDen) {
|
||||
continue;
|
||||
}
|
||||
|
||||
double outCenter[3];
|
||||
outCenter[0] = outVoid.macrocenter[0];
|
||||
outCenter[1] = outVoid.macrocenter[1];
|
||||
outCenter[2] = outVoid.macrocenter[2];
|
||||
|
||||
//if (isObservation) {
|
||||
// outCenter[0] = (outVoid.macrocenter[0]-boxLen[0]/2.)*100.;
|
||||
// outCenter[1] = (outVoid.macrocenter[1]-boxLen[1]/2.)*100.;
|
||||
// outCenter[2] = (outVoid.macrocenter[2]-boxLen[2]/2.)*100.;
|
||||
//}
|
||||
|
||||
fprintf(fpZobov, "%d %d %d %f %f %d %d %f %d %f %f\n",
|
||||
iVoid,
|
||||
outVoid.voidID,
|
||||
outVoid.coreParticle,
|
||||
outVoid.coreDens,
|
||||
outVoid.zoneVol,
|
||||
outVoid.zoneNumPart,
|
||||
outVoid.numZones,
|
||||
outVoid.vol,
|
||||
outVoid.numPart,
|
||||
outVoid.densCon,
|
||||
outVoid.voidProb);
|
||||
|
||||
fprintf(fpBarycenter, "%d %e %e %e\n",
|
||||
outVoid.voidID,
|
||||
outVoid.macrocenter[0],
|
||||
outVoid.macrocenter[1],
|
||||
outVoid.macrocenter[2]);
|
||||
|
||||
fprintf(fpCenters, "%.2f %.2f %.2f %.2f %.2f %.5f %.2f %d %f %d %d %d %d %.2f\n",
|
||||
outCenter[0],
|
||||
outCenter[1],
|
||||
outCenter[2],
|
||||
outVoid.vol,
|
||||
outVoid.radius,
|
||||
outVoid.redshift,
|
||||
4./3.*M_PI*pow(outVoid.radius, 3),
|
||||
outVoid.voidID,
|
||||
outVoid.densCon,
|
||||
outVoid.numPart,
|
||||
outVoid.parentID,
|
||||
outVoid.level,
|
||||
outVoid.numChildren,
|
||||
outVoid.centralDen);
|
||||
|
||||
double phi = atan2(outVoid.macrocenter[1]-boxLen[1]/2.,
|
||||
outVoid.macrocenter[0]-boxLen[0]/2.);
|
||||
if (phi < 0) phi += 2.*M_PI;
|
||||
|
@ -1098,16 +990,33 @@ void outputVoids(string outputDir, string sampleName, string prefix,
|
|||
double theta = acos((outVoid.macrocenter[2]-boxLen[2]/2.) /
|
||||
outVoid.redshiftInMpc);
|
||||
double dec = (M_PI/2. - theta) * 180./M_PI;
|
||||
|
||||
fprintf(fpSkyPositions, "%.2f %.2f %.5f %.2f %d\n",
|
||||
|
||||
fprintf(fpOutput, "%d %d %e %e %e %e %e %e %e %e %e %e %e %e %d %d %d %d %e %d %e %e %d %d %e %e %e %e %e %e %e %e %e %e %e %e %e %e\n",
|
||||
outVoid.voidID,
|
||||
outVoid.voidType,
|
||||
outVoid.macrocenter[0],
|
||||
outVoid.macrocenter[1],
|
||||
outVoid.macrocenter[2],
|
||||
outVoid.vol,
|
||||
4./3.*M_PI*pow(outVoid.radius, 3),
|
||||
outVoid.radius,
|
||||
outVoid.redshift,
|
||||
RA,
|
||||
dec,
|
||||
outVoid.redshift,
|
||||
outVoid.radius,
|
||||
outVoid.voidID);
|
||||
|
||||
fprintf(fpShapes, "%d %.6f %.2e %.2e %.2e %.2e %.2e %.2e %.2e %.2e %.2e %.2e %.2e %.2e\n",
|
||||
outVoid.voidID,
|
||||
outVoid.densCon,
|
||||
outVoid.maxRadius,
|
||||
outVoid.nearestFlag,
|
||||
outVoid.numPart,
|
||||
outVoid.parentID,
|
||||
outVoid.level,
|
||||
outVoid.numChildren,
|
||||
outVoid.centralDen,
|
||||
outVoid.coreParticle,
|
||||
outVoid.coreDens,
|
||||
outVoid.zoneVol,
|
||||
outVoid.zoneNumPart,
|
||||
outVoid.numZones,
|
||||
outVoid.voidProb,
|
||||
outVoid.ellip,
|
||||
gsl_vector_get(outVoid.eval, 0),
|
||||
gsl_vector_get(outVoid.eval, 1),
|
||||
|
@ -1123,14 +1032,8 @@ void outputVoids(string outputDir, string sampleName, string prefix,
|
|||
gsl_matrix_get(outVoid.evec, 2 ,2)
|
||||
);
|
||||
|
||||
fprintf(fpExtra, "%d %.5f %.5f\n",
|
||||
outVoid.voidType,
|
||||
outVoid.maxRadius,
|
||||
outVoid.nearestFlag
|
||||
);
|
||||
} // end iVoid
|
||||
|
||||
closeFiles(fpZobov, fpCenters, fpBarycenter,
|
||||
fpShapes, fpExtra, fpSkyPositions);
|
||||
closeFiles(fpOutput);
|
||||
|
||||
} // end outputVoids
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue