From 57999f08d80a09c729433c2be1acbe6492e73a5f Mon Sep 17 00:00:00 2001 From: "P.M. Sutter" Date: Thu, 15 May 2014 09:00:53 -0400 Subject: [PATCH] aded generic void stacking routine --- .gitignore | 1 + .../void_python_tools/voidUtil/catalogUtil.py | 38 +++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/.gitignore b/.gitignore index e18bbb3..c1a1e59 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ .mydepend ./pipeline/miscTools/*.out +external/libsdf/libsw/Malloc.c c_tools/hod/hod c_tools/zobov2/jozov2/jozov2 c_tools/zobov2/voz1b1/voz1b1_2 diff --git a/python_tools/void_python_tools/voidUtil/catalogUtil.py b/python_tools/void_python_tools/voidUtil/catalogUtil.py index b72d0c2..d40daee 100644 --- a/python_tools/void_python_tools/voidUtil/catalogUtil.py +++ b/python_tools/void_python_tools/voidUtil/catalogUtil.py @@ -490,3 +490,41 @@ def filterVoidsOnCentralDen(catalog, maxCentralDen): return catalog + +# ----------------------------------------------------------------------------- +def stackVoids(catalog, stackMode = "ball"): + +# builds a stack of voids from the given catalog +# catalog: void catalog +# stackMode: +# "ball": spherical cut +# "voronoi": only void member particles +# +# returns: +# stackedPart: array of relative particle positions in the stack + + rMax = 100. + periodicLine = getPeriodic(catalog.sampleInfo) + + if stackMode == "ball": + partTree = getPartTree(catalog) + + stackedPart = [] + for void in catalog.voids: + center = void.barycenter + + if stackMode == "ball": + localPart = catalog.partPos[ getBall(partTree, center, rMax) ] + else: + voidPart = getVoidPart(catalog, void.voidID) + localPart = np.zeros((3,len(voidPart))) + localPart[0,:] = getArray(localPart, 'x') + localPart[1,:] = getArray(localPart, 'y') + localPart[2,:] = getArray(localPart, 'z') + + shiftedPart = shiftPart(localPart, center, periodicLine, catalog.ranges) + + stackedPart.extend(shiftedPart) + + return stackedPart +