Advertisement
Guest User

codeeee

a guest
Oct 14th, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.54 KB | None | 0 0
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. from astropy.io import ascii
  4. import glob
  5.  
  6. c = 2.99792458e8 #m/sec
  7.  
  8. star1 = np.loadtxt('Ab15f.dat.fix', delimiter=',',\
  9. unpack=True, skiprows=1)
  10. star2 = np.loadtxt('Bb14.dat.fix', delimiter=',',\
  11. unpack=True, skiprows=1)
  12. star3 = np.loadtxt('Bb42.dat.fix', delimiter=',',\
  13. unpack=True, skiprows=1)
  14.  
  15. plt.plot(star1[0],star1[1])
  16. plt.xlim([3000,9000])
  17. plt.xlabel('Wavelength (Ångström)')
  18. plt.ylabel('Flux density (erg/cm²/s/Ångström)')
  19. plt.title('Spectrum of star Ab15f, type A2V')
  20. plt.show()
  21.  
  22. plt.plot(star2[0],star2[1])
  23. plt.xlim([3000,9000])
  24. plt.xlabel('Wavelength (Ångström)')
  25. plt.ylabel('Flux density (erg/cm²/s/Ångström)')
  26. plt.title('Spectrum of star Bb14, type A0V')
  27. plt.show()
  28.  
  29. plt.plot(star3[0],star3[1])
  30. plt.xlim([3000,9000])
  31. plt.xlabel('Wavelength (Ångström)')
  32. plt.ylabel('Flux density (erg/cm²/s/Ångström)')
  33. plt.title('Spectrum of star Bb42, type F8V')
  34. plt.show()
  35.  
  36. #3A
  37.  
  38. vega = ascii.read('vega.fnu.csv')
  39. vega_wavelength = 10*vega[0][:]
  40. vega_flux = vega[1][:]*(c/((1e-9*vega[0][:])**2))*1e-10
  41.  
  42. plt.plot(vega_wavelength,vega_flux)
  43. plt.xlim([3000,9000])
  44. plt.xlabel('Wavelength (Ångström)')
  45. plt.ylabel('Flux density (erg/cm²/s/Ångström)')
  46. plt.title('Vega')
  47. plt.show()
  48.  
  49. lambda0_U = 3659
  50. dlambda_U = 660
  51.  
  52. lowerboundU = lambda0_U-(dlambda_U/2)
  53. upperboundU = lambda0_U+(dlambda_U/2)
  54.  
  55. wavelengthsU = np.linspace(lowerboundU,upperboundU,100)
  56. interpFluxU = np.interp(wavelengthsU,vega_wavelength,vega_flux)
  57.  
  58. C_U = 2.5 * np.log10(np.trapz(interpFluxU*wavelengthsU)/np.trapz(wavelengthsU))
  59. print(C_U)
  60.  
  61. #plt.plot(wavelengthsU,interpFluxU,'-x',label='interpolant')
  62. #plt.plot(vega_wavelength,vega_flux, 'o',label='data')
  63. #plt.xlim([lowerboundU,upperboundU])
  64. #plt.xlabel('Wavelength (Ångström)')
  65. #plt.ylabel('Flux density (erg/cm²/s/Ångström)')
  66. #plt.title('Vega in the U-band range ($\lambda$ = 3659)')
  67. #plt.legend(loc='lower right')
  68. #plt.show()
  69.  
  70. lambda0_B = 4582
  71. dlambda_B = 940
  72.  
  73. lowerboundB = lambda0_B-(dlambda_B/2)
  74. upperboundB = lambda0_B+(dlambda_B/2)
  75.  
  76. wavelengthsB = np.linspace(lowerboundB,upperboundB,100)
  77. interpFluxB = np.interp(wavelengthsB,vega_wavelength,vega_flux)
  78.  
  79. C_B = 2.5 * np.log10(np.trapz(interpFluxB*wavelengthsB)/np.trapz(wavelengthsB))
  80. print(C_B)
  81.  
  82. lambda0_V = 5448
  83. dlambda_V = 880
  84.  
  85. lowerboundV = lambda0_V-(dlambda_V/2)
  86. upperboundV = lambda0_V+(dlambda_V/2)
  87.  
  88. wavelengthsV = np.linspace(lowerboundV,upperboundV,100)
  89. interpFluxV = np.interp(wavelengthsV,vega_wavelength,vega_flux)
  90.  
  91. C_V = 2.5 * np.log10(np.trapz(interpFluxV*wavelengthsV)/np.trapz(wavelengthsV))
  92. print(C_V)
  93.  
  94. #Next, we read in all the files:
  95.  
  96. filenames = sorted(glob.glob('*.dat.fix'))
  97. magnitude_U = np.zeros(92) #Empty arrays to fill with magnitudes of stars
  98. magnitude_B = np.zeros(92)
  99. magnitude_V = np.zeros(92)
  100.  
  101. for i in range(len(filenames)):
  102. star = np.loadtxt(filenames[i], delimiter=',',\
  103. unpack=True, skiprows=1)
  104.  
  105. interpFluxU = np.interp(wavelengthsU,star[0],star[1])
  106. m_U = -2.5 * \
  107. np.log10(np.trapz(interpFluxU*wavelengthsU)/np.trapz(wavelengthsU)) + C_U
  108. magnitude_U[i] = m_U
  109.  
  110. interpFluxB = np.interp(wavelengthsB,star[0],star[1])
  111. m_B = -2.5 * \
  112. np.log10(np.trapz(interpFluxB*wavelengthsB)/np.trapz(wavelengthsB)) + C_B
  113. magnitude_B[i] = m_B
  114.  
  115. interpFluxV = np.interp(wavelengthsV,star[0],star[1])
  116. m_V = -2.5 * \
  117. np.log10(np.trapz(interpFluxV*wavelengthsV)/np.trapz(wavelengthsV)) + C_V
  118. magnitude_V[i] = m_V
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement