[yt-svn] commit/yt: sskory: Making the number of halos that are considered to be neighbors
Bitbucket
commits-noreply at bitbucket.org
Mon Dec 12 08:08:01 PST 2011
1 new commit in yt:
https://bitbucket.org/yt_analysis/yt/changeset/bdd0b1bfc80d/
changeset: bdd0b1bfc80d
branch: yt
user: sskory
date: 2011-12-12 17:05:36
summary: Making the number of halos that are considered to be neighbors
a more easily changed parameter, but not user-controlled.
I changed this when I was having issues with making a merger tree,
but it turned out this change had no effect, and something else
was going on. But still, I think that this is a better way of
doing things so I'm keeping it.
affected #: 1 file
diff -r 51081a9c53a45df490970db6ec88a91f94a17509 -r bdd0b1bfc80dd2963f010fcba4cf41384bb392eb yt/analysis_modules/halo_merger_tree/merger_tree.py
--- a/yt/analysis_modules/halo_merger_tree/merger_tree.py
+++ b/yt/analysis_modules/halo_merger_tree/merger_tree.py
@@ -86,6 +86,9 @@
"ChildHaloID3", "ChildHaloFrac3",
"ChildHaloID4", "ChildHaloFrac4"]
+NumNeighbors = 15
+NumDB = 5
+
class DatabaseFunctions(object):
# Common database functions so it doesn't have to be repeated.
def _open_database(self):
@@ -366,9 +369,9 @@
child_points = na.array(child_points)
fKD.pos = na.asfortranarray(child_points.T)
fKD.qv = na.empty(3, dtype='float64')
- fKD.dist = na.empty(5, dtype='float64')
- fKD.tags = na.empty(5, dtype='int64')
- fKD.nn = 5
+ fKD.dist = na.empty(NumNeighbors, dtype='float64')
+ fKD.tags = na.empty(NumNeighbors, dtype='int64')
+ fKD.nn = NumNeighbors
fKD.sort = True
fKD.rearrange = True
create_tree(0)
@@ -395,7 +398,7 @@
nIDs.append(n)
# We need to fill in fake halos if there aren't enough halos,
# which can happen at high redshifts.
- while len(nIDs) < 5:
+ while len(nIDs) < NumNeighbors:
nIDs.append(-1)
candidates[row[0]] = nIDs
@@ -405,12 +408,12 @@
self.candidates = candidates
# This stores the masses contributed to each child candidate.
- self.child_mass_arr = na.zeros(len(candidates)*5, dtype='float64')
+ self.child_mass_arr = na.zeros(len(candidates)*NumNeighbors, dtype='float64')
# Records where to put the entries in the above array.
self.child_mass_loc = defaultdict(dict)
for i,halo in enumerate(sorted(candidates)):
for j, child in enumerate(candidates[halo]):
- self.child_mass_loc[halo][child] = i*5 + j
+ self.child_mass_loc[halo][child] = i*NumNeighbors + j
def _build_h5_refs(self, filename):
# For this snapshot, add lists of file names that contain the
@@ -618,8 +621,8 @@
result = self.cursor.fetchone()
while result:
mass = result[0]
- self.child_mass_arr[mark:mark+5] /= mass
- mark += 5
+ self.child_mass_arr[mark:mark+NumNeighbors] /= mass
+ mark += NumNeighbors
result = self.cursor.fetchone()
# Get the global ID for the SnapHaloID=0 from the child, this will
@@ -642,14 +645,15 @@
# We need to get the GlobalHaloID for this child.
child_globalID = baseChildID + child
child_indexes.append(child_globalID)
- child_per.append(self.child_mass_arr[i*5 + j])
+ child_per.append(self.child_mass_arr[i*NumNeighbors + j])
# Sort by percentages, desending.
child_per, child_indexes = zip(*sorted(zip(child_per, child_indexes), reverse=True))
values = []
- for pair in zip(child_indexes, child_per):
+ for pair_count, pair in enumerate(zip(child_indexes, child_per)):
+ if pair_count == NumDB: break
values.extend([int(pair[0]), float(pair[1])])
#values.extend([parent_currt, parent_halo])
- # This has the child ID, child percent listed five times, followed
+ # This has the child ID, child percent listed NumDB times, followed
# by the currt and this parent halo ID (SnapHaloID).
#values = tuple(values)
self.write_values.append(values)
@@ -841,7 +845,7 @@
[1609, 0.0]]
"""
parents = []
- for i in range(5):
+ for i in range(NumDB):
string = "SELECT GlobalHaloID, ChildHaloFrac%d FROM Halos\
WHERE ChildHaloID%d=%d;" % (i, i, GlobalHaloID)
self.cursor.execute(string)
Repository URL: https://bitbucket.org/yt_analysis/yt/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
More information about the yt-svn
mailing list