From de9263b1d8b93ca524ce34f5faee8ac5f3ac08c6 Mon Sep 17 00:00:00 2001 From: "P.M. Sutter" Date: Tue, 5 Mar 2013 12:30:00 -0600 Subject: [PATCH 1/3] halo catalog prep appear to work with SDF format --- .../pipeline_source/prepareCatalogs.in.py | 61 +++++++++++-------- 1 file changed, 37 insertions(+), 24 deletions(-) diff --git a/python_tools/pipeline_source/prepareCatalogs.in.py b/python_tools/pipeline_source/prepareCatalogs.in.py index 78d426b..0a657a6 100644 --- a/python_tools/pipeline_source/prepareCatalogs.in.py +++ b/python_tools/pipeline_source/prepareCatalogs.in.py @@ -391,21 +391,22 @@ if (args.script or args.all) and haloFileBase != "": sys.stdout.flush() # estimate number of halos to get density - if haloFileDummy == '': - dataFile = catalogDir+haloFileBase+fileNums[0] - else: - dataFile = catalogDir+haloFileBase.replace(haloFileDummy, fileNums[0]) + #if haloFileDummy == '': + # dataFile = catalogDir+haloFileBase+fileNums[0] + #else: + # dataFile = catalogDir+haloFileBase.replace(haloFileDummy, fileNums[0]) + # + #inFile = open(dataFile, 'r') + #numPart = 0 + #for (iLine, line) in enumerate(inFile): + # if iLine < haloFileNumComLines: continue + # line = line.split(haloFileColSep) + # if minHaloMass == "none" or float(line[haloFileMCol]) > minHaloMass: + # numPart += 1 + #inFile.close() - inFile = open(dataFile, 'r') - numPart = 0 - for (iLine, line) in enumerate(inFile): - if iLine < haloFileNumComLines: continue - line = line.split(haloFileColSep) - if minHaloMass == "none" or float(line[haloFileMCol]) > minHaloMass: - numPart += 1 - inFile.close() - - minRadius = 2*int(np.ceil(lbox/numPart**(1./3.))) + #minRadius = 2*int(np.ceil(lbox/numPart**(1./3.))) + minRadies = 10 setName = prefix+"halos_min"+str(minHaloMass) writeScript(setName, prefix+"halos_min"+str(minHaloMass)+"_z", "multidark", @@ -436,29 +437,41 @@ if (args.halos or args.all) and haloFileBase != "": fileNums[iRedshift]) inFile = open(dataFile, 'r') numPart = 0 - for (iLine, line) in enumerate(inFile): - if iLine < haloFileNumComLines: continue - line = line.split(haloFileColSep) - if minHaloMass == "none" or float(line[haloFileMCol]) > minHaloMass: - numPart += 1 - inFile.close() + if dataFormat == "sdf": + for line in inFile: + if "nhalos" in line: + numPart = int(line.split()[3].strip(';')) + break + inFile.close() + else: + for (iLine, line) in enumerate(inFile): + if iLine < haloFileNumComLines: continue + line = line.split(haloFileColSep) + if minHaloMass == "none" or float(line[haloFileMCol]) > minHaloMass: + numPart += 1 + inFile.close() sampleName = prefix+"halos_min"+str(minHaloMass)+"_z"+fileNums[iRedshift] - outFile = open(catalogDir+"/"+sampleName+".dat", 'w') + outFileName = catalogDir+"/"+sampleName+".dat" + outFile = open(outFileName, 'w') outFile.write("%f\n" %(lbox)) outFile.write("%s\n" %(omegaM)) outFile.write("%s\n" %(hubble)) outFile.write("%s\n" %(redshift)) outFile.write("%d\n" %(numPart)) + outFile.close() if dataFormat == "sdf": # TODO process halo file with SDFcvt - SDFcvt_PATH = "@CMAKE_BINARY_DIR@/ep_build/sdf/bin/SDFcvt/" - outFile = open(catalogDir+"/"+sampleName+".dat", 'w') + SDFcvt_PATH = "@CMAKE_BINARY_DIR@/external/libsdf/apps/SDFcvt/SDFcvt.x86_64" + if minHaloMass == "none": minHaloMass = 0.0 + command = "%s %s mass id x y z vz vy vx | awk '{if ($1>%g) print $2, $3, $4, $5, $6, $7, $8}'>>%s" % (SDFcvt_PATH, dataFile, minHaloMass, outFileName ) + os.system(command) + outFile = open(outFileName, 'a') outFile.write("-99 -99 -99 -99 -99 -99 -99\n") outFile.close() else: - outFile = open(catalogDir+"/"+sampleName+".dat", 'w') + outFile = open(outFileName, 'a') inFile = open(dataFile, 'r') for (iHalo,line) in enumerate(inFile): if iHalo < haloFileNumComLines: continue From 6e164b1fe8f235dd6f533efa37e2b23b6fa45596 Mon Sep 17 00:00:00 2001 From: Guilhem Lavaux Date: Tue, 5 Mar 2013 13:32:04 -0500 Subject: [PATCH 2/3] Setup the configured scripts as executables From 84fc94f471b8c723b0d1d4db7bcf8448b39e8fcb Mon Sep 17 00:00:00 2001 From: "P.M. Sutter" Date: Tue, 5 Mar 2013 13:25:19 -0600 Subject: [PATCH 3/3] HOD appears to work now with SDF format --- .../pipeline_source/prepareCatalogs.in.py | 41 ++++++++++--------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/python_tools/pipeline_source/prepareCatalogs.in.py b/python_tools/pipeline_source/prepareCatalogs.in.py index 0a657a6..372c002 100644 --- a/python_tools/pipeline_source/prepareCatalogs.in.py +++ b/python_tools/pipeline_source/prepareCatalogs.in.py @@ -462,7 +462,6 @@ if (args.halos or args.all) and haloFileBase != "": outFile.close() if dataFormat == "sdf": - # TODO process halo file with SDFcvt SDFcvt_PATH = "@CMAKE_BINARY_DIR@/external/libsdf/apps/SDFcvt/SDFcvt.x86_64" if minHaloMass == "none": minHaloMass = 0.0 command = "%s %s mass id x y z vz vy vx | awk '{if ($1>%g) print $2, $3, $4, $5, $6, $7, $8}'>>%s" % (SDFcvt_PATH, dataFile, minHaloMass, outFileName ) @@ -538,7 +537,7 @@ if (args.script or args.all) and haloFileBase != "": print " Doing HOD scripts" sys.stdout.flush() for thisHod in hodParmList: - print " ", thisHod['name'] + print " ", thisHod['name'] setName = prefix+"hod_"+thisHod['name'] writeScript(setName, prefix+"hod_"+thisHod['name']+"_z", "multidark", scriptDir, catalogDir, fileNums, redshifts, @@ -550,28 +549,30 @@ if (args.script or args.all) and haloFileBase != "": if (args.hod or args.all) and haloFileBase != "": print " Doing HOD" sys.stdout.flush() - for thisHod in hodParmList: - print " ", thisHod['name'] + for (iRedshift, redshift) in enumerate(redshifts): + print " z = ", redshift sys.stdout.flush() - for (iRedshift, redshift) in enumerate(redshifts): - print " z = ", redshift + + if haloFileDummy == '': + haloFile = catalogDir+haloFileBase+fileNums[iRedshift] + else: + haloFile = catalogDir+haloFileBase.replace(haloFileDummy, + fileNums[iRedshift]) + + if dataFormat == "sdf": + inFile = haloFile + outFile = haloFile+"_temp" + SDFcvt_PATH = "@CMAKE_BINARY_DIR@/external/libsdf/apps/SDFcvt/SDFcvt.x86_64" + command = "%s %s mass x y z vx vy vz>>%s" % (SDFcvt_PATH, inFile, outFile) + os.system(command) + haloFile = outFile + + for thisHod in hodParmList: + print " ", thisHod['name'] sys.stdout.flush() parFileName = "./hod.par" parFile = open(parFileName, 'w') - if haloFileDummy == '': - haloFile = catalogDir+haloFileBase+fileNums[iRedshift] - else: - haloFile = catalogDir+haloFileBase.replace(haloFileDummy, - fileNums[iRedshift]) - - if dataFormat == "sdf": - # TODO process halo file with SDFcvt - inFile = haloFile - outFile = haloFile+"_temp" - - haloFile = outFile - parFile.write(parFileText.format(omegaM=omegaM, hubble=hubble, redshift=redshift, @@ -597,6 +598,6 @@ if (args.hod or args.all) and haloFileBase != "": os.system("mv %s/hod.mock %s" % (catalogDir, outFileName)) os.system("rm %s/hod.*" % catalogDir) - os.system("rm %s" % haloFile) + if dataFormat == "sdf": os.system("rm %s" % haloFile) print " Done!"