PageRenderTime 50ms CodeModel.GetById 25ms RepoModel.GetById 0ms app.codeStats 0ms

/HaloSize/halosize.py

https://bitbucket.org/paheliwala/kaggle-dark-worlds
Python | 33 lines | 25 code | 7 blank | 1 comment | 1 complexity | bc8ae6e9b678956c05fd4163de1d60d4 MD5 | raw file
  1. import pandas
  2. import cmath
  3. import math
  4. import numpy
  5. halos = pandas.read_csv( "../Raw/Training_halos.csv" )
  6. def distance( ):
  7. pass
  8. def gal_heading( v ):
  9. a = math.atan2( v['e2'],v['e1'] )/2 + math.pi/2;
  10. return a
  11. def estimate_size( sky_name ):
  12. filename = "../Raw/Train_Skies/Training_%s.csv" % sky_name
  13. h1 = halos[halos.SkyId == sky_name ]
  14. halo_z = float( h1.halo_x1 ) + 1j*float( h1.halo_y1 )
  15. sky = pandas.read_csv( filename )
  16. sky['z1'] = sky.x+1j*sky.y - halo_z
  17. sky['l1'] = sky['z1'].map(lambda x: abs(x))
  18. sky['a1'] = sky['z1'].map(lambda x: cmath.phase(x)) # Force angle
  19. sky_sub = sky[sky.l1 < 700]
  20. sky_sub['ga'] = sky_sub.apply(gal_heading,1)
  21. sky_sub['sa'] = numpy.abs( numpy.sin( sky_sub['ga'] - sky_sub['a1'] ) )
  22. return ( sky_sub['sa'].mean() )
  23. #print(halos)
  24. for i in xrange(1,301) :
  25. sky_name = "Sky%d" % i
  26. print i, estimate_size( sky_name )