In [1]:
fname = '/u/ki/swmclau2/des/Buzzard_v1.1_halos.fit'

In [2]:
import numpy as np
from astropy.io import fits
from halotools.sim_manager import UserSuppliedHaloCatalog
from collections import OrderedDict

In [3]:
hdul = fits.open(fname)
hdul[1].columns


Out[3]:
ColDefs(
    name = 'HALOID'; format = 'K'
    name = 'M200'; format = 'E'
    name = 'R200'; format = 'E'
    name = 'M200B'; format = 'E'
    name = 'R200B'; format = 'E'
    name = 'M500'; format = 'E'
    name = 'R500'; format = 'E'
    name = 'MVIR'; format = 'E'
    name = 'RVIR'; format = 'E'
    name = 'M2500'; format = 'E'
    name = 'R2500'; format = 'E'
    name = 'VRMS'; format = 'E'
    name = 'RS'; format = 'E'
    name = 'JX'; format = 'E'
    name = 'JY'; format = 'E'
    name = 'JZ'; format = 'E'
    name = 'SPIN'; format = 'E'
    name = 'HALOPX'; format = 'E'
    name = 'HALOPY'; format = 'E'
    name = 'HALOPZ'; format = 'E'
    name = 'HALOVX'; format = 'E'
    name = 'HALOVY'; format = 'E'
    name = 'HALOVZ'; format = 'E'
    name = 'LUMTOT'; format = 'E'
    name = 'LUM20'; format = 'E'
    name = 'LBCG'; format = 'E'
    name = 'RA'; format = 'E'
    name = 'DEC'; format = 'E'
    name = 'Z'; format = 'E'
    name = 'NGALS'; format = 'J'
    name = 'N18'; format = 'J'
    name = 'N19'; format = 'J'
    name = 'N20'; format = 'J'
    name = 'N21'; format = 'J'
    name = 'N22'; format = 'J'
    name = 'EDGE'; format = 'I'
    name = 'HOST_HALOID'; format = 'K'
    name = 'XOFF'; format = 'E'
    name = 'VOFF'; format = 'E'
    name = 'LAMBDA'; format = 'E'
    name = 'B_TO_A'; format = 'E'
    name = 'C_TO_A'; format = 'E'
    name = 'AX'; format = 'E'
    name = 'AY'; format = 'E'
    name = 'AZ'; format = 'E'
    name = 'VIRIAL_RATIO'; format = 'E'
)

In [4]:
print sorted(hdul[1].data['M200'][hdul[1].data['M200']>0])[:10]


[33488000000.0, 33488000000.0, 33488000000.0, 33488000000.0, 33488000000.0, 33488000000.0, 33488000000.0, 33488000000.0, 33488000000.0, 33488000000.0]

In [5]:
print sorted(hdul[1].data['M500'][hdul[1].data['M500']>0])[:10]


[33488000000.0, 33488000000.0, 33488000000.0, 33488000000.0, 33488000000.0, 33488000000.0, 33488000000.0, 33488000000.0, 33488000000.0, 33488000000.0]

In [6]:
np.log10(33488000000.0/20)


Out[6]:
9.22385921533063

In [10]:
data = hdul[1].data
min_pos = np.min([data['HALOPX'].min(), data['HALOPY'].min(), data['HALOPZ'].min()])
print min_pos
max_pos = np.max([data['HALOPX'].max(), data['HALOPY'].max(), data['HALOPZ'].max()])
print max_pos, max_pos-min_pos


-3733.5151
3732.7192 7466.2344

In [11]:
columns_to_keep_dict = {'halo_id':data['HALOID'], 'halo_mvir':data['MVIR'],
                        'halo_rvir':data['RVIR'], 'halo_rs':data['RS'],
                        'halo_x':data['HALOPX']- min_pos,
                        'halo_y':data['HALOPY']- min_pos,
                        'halo_z':data['HALOPZ']- min_pos,
                        'halo_vx':data['HALOVX'],
                        'halo_vy':data['HALOVY'], 'halo_vz':data['HALOVZ'],
                        'halo_ra':data['RA'], 'halo_dec':data['DEC'],
                        'halo_rz':data['Z'], 'halo_upid':data['HOST_HALOID'] }

In [39]:
#some of these are guesses; verify
columns_to_keep_dict['redshift'] = 0.0
columns_to_keep_dict['simname'] = 'buzzard'
columns_to_keep_dict['Lbox'] = 7470
columns_to_keep_dict['particle_mass'] = 1e8
halo_catalog = UserSuppliedHaloCatalog(**columns_to_keep_dict)

In [40]:
from halotools.empirical_models import PrebuiltHodModelFactory
model = PrebuiltHodModelFactory('zheng07')

In [41]:
min_mass = np.min(halo_catalog.halo_table['halo_mvir'])
print min_mass


3013900000000.0

In [42]:
sorted_mass = sorted(np.unique(halo_catalog.halo_table['halo_mvir']))

In [43]:
mindiff = np.min(np.diff(sorted_mass))
print np.log10(mindiff)


8.000604

In [44]:
np.min(halo_catalog.halo_table['halo_mvir'])/mindiff


Out[44]:
30097.162

In [ ]:
model.halo_prof_param_key

In [45]:
model.populate_mock(halo_catalog)


---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-45-b093c634158f> in <module>()
----> 1 model.populate_mock(halo_catalog)

/u/ki/swmclau2/.conda/envs/hodemulator/lib/python2.7/site-packages/halotools-0.6.dev4681-py2.7-linux-x86_64.egg/halotools/empirical_models/factories/hod_model_factory.pyc in populate_mock(self, halocat, **kwargs)
   1205 
   1206         """
-> 1207         ModelFactory.populate_mock(self, halocat, **kwargs)
   1208 
   1209 

/u/ki/swmclau2/.conda/envs/hodemulator/lib/python2.7/site-packages/halotools-0.6.dev4681-py2.7-linux-x86_64.egg/halotools/empirical_models/factories/model_factory_template.pyc in populate_mock(self, halocat, Num_ptcl_requirement, **kwargs)
    229         except KeyError:
    230             pass
--> 231         self.mock = self.mock_factory(**mock_factory_init_args)
    232 
    233         additional_potential_kwargs = ('masking_function', '_testing_mode', 'enforce_PBC', 'seed')

/u/ki/swmclau2/.conda/envs/hodemulator/lib/python2.7/site-packages/halotools-0.6.dev4681-py2.7-linux-x86_64.egg/halotools/empirical_models/factories/hod_mock_factory.pyc in __init__(self, Num_ptcl_requirement, halo_mass_column_key, **kwargs)
     91         self.halo_mass_column_key = halo_mass_column_key
     92 
---> 93         self.preprocess_halo_catalog(halocat)
     94 
     95     def preprocess_halo_catalog(self, halocat):

/u/ki/swmclau2/.conda/envs/hodemulator/lib/python2.7/site-packages/halotools-0.6.dev4681-py2.7-linux-x86_64.egg/halotools/empirical_models/factories/hod_mock_factory.pyc in preprocess_halo_catalog(self, halocat)
    128         cutoff_mvir = self.Num_ptcl_requirement*self.particle_mass
    129         mass_cut = halo_table[self.halo_mass_column_key] > cutoff_mvir
--> 130         max_column_value = np.max(halo_table[self.halo_mass_column_key])
    131         halo_table = halo_table[mass_cut]
    132         if len(halo_table) == 0:

/u/ki/swmclau2/.conda/envs/hodemulator/lib/python2.7/site-packages/numpy/core/fromnumeric.pyc in amax(a, axis, out, keepdims)
   2315             pass
   2316         else:
-> 2317             return amax(axis=axis, out=out, **kwargs)
   2318 
   2319     return _methods._amax(a, axis=axis,

/u/ki/swmclau2/.conda/envs/hodemulator/lib/python2.7/site-packages/numpy/core/_methods.pyc in _amax(a, axis, out, keepdims)
     24 # small reductions
     25 def _amax(a, axis=None, out=None, keepdims=False):
---> 26     return umr_maximum(a, axis, None, out, keepdims)
     27 
     28 def _amin(a, axis=None, out=None, keepdims=False):

ValueError: zero-size array to reduction operation maximum which has no identity

In [ ]: