Advertisement
bolverk

dwek_calibration

May 2nd, 2015
529
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.55 KB | None | 0 0
  1. def organize_cooling_data(link):
  2.  
  3.     import urllib2
  4.  
  5.     res = {'temperature': [], 'cooling_function': []}
  6.     data = urllib2.urlopen(link)
  7.     for line in data:
  8.         temp = line.rstrip().split(',')
  9.         res['temperature'].append(float(temp[1]))
  10.         res['cooling_function'].append(float(temp[0]))
  11.     return res
  12.  
  13. def main():
  14.  
  15.     import numpy
  16.     import pylab
  17.     import pickle
  18.  
  19.     data = {'dust':organize_cooling_data('http://pastebin.com/raw.php?i=H6euHHNE'),
  20.             'atomic':organize_cooling_data('http://pastebin.com/raw.php?i=TtX0H7X7')}
  21.     denser_temperature = numpy.logspace(5,9,100)
  22.     for itm in data:
  23.         data[itm]['fit_params'] = numpy.polyfit(numpy.log(data[itm]['temperature']),
  24.                                                 numpy.log(data[itm]['cooling_function']),7)
  25.                                                          
  26.         pylab.loglog(data[itm]['temperature'], data[itm]['cooling_function'],'o',
  27.                      label=itm,linewidth=3)
  28.         pylab.loglog(denser_temperature,
  29.                      numpy.exp(numpy.polyval(data[itm]['fit_params'],
  30.                                              numpy.log(denser_temperature))),
  31.                      label=itm,linewidth=3)
  32.     pylab.legend(loc='best')
  33.     pylab.xlabel('Temperature [K]')
  34.     pylab.ylabel('Cooling function [erg*cc/s]')
  35.     pylab.ylim((1e-23,1e-20))
  36.     pylab.tick_params(axis='both', which='major', labelsize=12)
  37.     pickle.dump(data,open('cooling_function.pkl','wb'))
  38.     pylab.show()
  39.  
  40. if __name__ == '__main__':
  41.  
  42.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement