@@ -533,7 +533,9 @@ def shifted_spectra(spectra, shift):
533533 return jnp .real (shifted )
534534
535535
536- def integrated_spectrum (N , theta , phi , period , radius , wv , spectra , phase , inc , normalize = True ):
536+ def integrated_spectrum (
537+ N , theta , phi , period , radius , wv , spectra , phase , inc , normalize = True
538+ ):
537539 """
538540 Compute the integrated spectrum of a rotating star.
539541
@@ -565,17 +567,23 @@ def integrated_spectrum(N, theta, phi, period, radius, wv, spectra, phase, inc,
565567 """
566568 spectra = jnp .atleast_2d (spectra )
567569 if period is None :
568- spectra_shifted = spectra
570+ mask , projected , limb = mask_projected_limb (vec (N ), 0.0 , inc = inc )
571+ limb_geometry = projected * mask * limb
572+ spectra_shifted = spectra .T
573+
569574 else :
570575 mask , projected , limb = mask_projected_limb (vec (N ), phase , inc = inc )
571576 w_shift = doppler_shift (theta , phi , period , radius , phase )
572577 dw = wv [1 ] - wv [0 ]
573578 shift = w_shift [:, None ] * wv / dw
574579 limb_geometry = projected * mask * limb
575580 spectra_shifted = shifted_spectra (spectra .T , shift )
576-
577- if normalize :
578- integrated_spec = jnp .sum (spectra_shifted * limb_geometry [:, None ], 0 ) / jnp .sum (limb_geometry [:, None ] * spectra .T )
579- else :
580- integrated_spec = jnp .sum (spectra_shifted * limb_geometry [:, None ], 0 )
581- return integrated_spec
581+
582+ if normalize :
583+ integrated_spec = jnp .sum (
584+ spectra_shifted * limb_geometry [:, None ], 0
585+ ) / jnp .sum (limb_geometry [:, None ] * spectra .T )
586+ else :
587+ integrated_spec = jnp .sum (spectra_shifted * limb_geometry [:, None ], 0 )
588+
589+ return integrated_spec
0 commit comments