[yt-svn] commit/yt: 4 new changesets
commits-noreply at bitbucket.org
commits-noreply at bitbucket.org
Mon Dec 7 10:27:47 PST 2015
4 new commits in yt:
https://bitbucket.org/yt_analysis/yt/commits/57556b6f1df5/
Changeset: 57556b6f1df5
Branch: yt
User: ngoldbaum
Date: 2015-12-03 20:32:12+00:00
Summary: Only do IO once when creating spectral models, leading to a decent speed-up
Affected #: 1 file
diff -r 315acc8b8296a1655efbc5fa6dfc9c88fab44b62 -r 57556b6f1df5b9e2b2dacc4092c302e63694466f yt/analysis_modules/photon_simulator/spectral_models.py
--- a/yt/analysis_modules/photon_simulator/spectral_models.py
+++ b/yt/analysis_modules/photon_simulator/spectral_models.py
@@ -246,19 +246,16 @@
self.maxlam = self.wvbins.max()
self.scale_factor = 1.0/(1.+zobs)
- def _make_spectrum(self, kT, element, tindex):
+ def _make_spectrum(self, kT, element, tindex, line_fields, coco_fields):
tmpspec = np.zeros(self.nchan)
- line_data = self.line_handle[tindex].data
- coco_data = self.coco_handle[tindex].data
+ i = np.where((line_fields['element'] == element) &
+ (line_fields['lambda'] > self.minlam) &
+ (line_fields['lambda'] < self.maxlam))[0]
- i = np.where((line_data.field('element') == element) &
- (line_data.field('lambda') > self.minlam) &
- (line_data.field('lambda') < self.maxlam))[0]
-
- E0 = hc/line_data.field('lambda')[i].astype("float64")*self.scale_factor
- amp = line_data.field('epsilon')[i].astype("float64")
+ E0 = hc/line_fields['lambda'][i].astype("float64")*self.scale_factor
+ amp = line_fields['epsilon'][i].astype("float64")
ebins = self.ebins.d
de = self.de.d
emid = self.emid.d
@@ -269,22 +266,22 @@
vec = np.histogram(E0, ebins, weights=amp)[0]
tmpspec += vec
- ind = np.where((coco_data.field('Z') == element) &
- (coco_data.field('rmJ') == 0))[0]
+ ind = np.where((coco_fields['Z'] == element) &
+ (coco_fields['rmJ'] == 0))[0]
if len(ind) == 0:
return tmpspec
else:
ind = ind[0]
- n_cont = coco_data.field('N_Cont')[ind]
- e_cont = coco_data.field('E_Cont')[ind][:n_cont]
- continuum = coco_data.field('Continuum')[ind][:n_cont]
+ n_cont = coco_fields['N_Cont'][ind]
+ e_cont = coco_fields['E_Cont'][ind][:n_cont]
+ continuum = coco_fields['Continuum'][ind][:n_cont]
tmpspec += np.interp(emid, e_cont*self.scale_factor, continuum)*de/self.scale_factor
- n_pseudo = coco_data.field('N_Pseudo')[ind]
- e_pseudo = coco_data.field('E_Pseudo')[ind][:n_pseudo]
- pseudo = coco_data.field('Pseudo')[ind][:n_pseudo]
+ n_pseudo = coco_fields['N_Pseudo'][ind]
+ e_pseudo = coco_fields['E_Pseudo'][ind][:n_pseudo]
+ pseudo = coco_fields['Pseudo'][ind][:n_pseudo]
tmpspec += np.interp(emid, e_pseudo*self.scale_factor, pseudo)*de/self.scale_factor
@@ -302,14 +299,26 @@
if tindex >= self.Tvals.shape[0]-1 or tindex < 0:
return YTArray(cspec_l, "cm**3/s"), YTArray(mspec_l, "cm**3/s")
dT = (kT-self.Tvals[tindex])/self.dTvals[tindex]
+ # preload data to avoid astropy IO in _make_spectrum
+ line_data = self.line_handle[tindex].data
+ coco_data = self.coco_handle[tindex].data
+ line_fields = ('element', 'lambda', 'epsilon')
+ coco_fields = ('Z', 'rmJ', 'N_Cont', 'E_Cont', 'Continuum', 'N_Pseudo',
+ 'E_Pseudo', 'Pseudo')
+ line_fields = {el: line_data.field(el) for el in line_fields}
+ coco_fields = {el: coco_data.field(el) for el in coco_fields}
# First do H,He, and trace elements
for elem in self.cosmic_elem:
- cspec_l += self._make_spectrum(kT, elem, tindex+2)
- cspec_r += self._make_spectrum(kT, elem, tindex+3)
+ cspec_l += self._make_spectrum(
+ kT, elem, tindex+2, line_fields, coco_fields)
+ cspec_r += self._make_spectrum(
+ kT, elem, tindex+3, line_fields, coco_fields)
# Next do the metals
for elem in self.metal_elem:
- mspec_l += self._make_spectrum(kT, elem, tindex+2)
- mspec_r += self._make_spectrum(kT, elem, tindex+3)
+ mspec_l += self._make_spectrum(
+ kT, elem, tindex+2, line_fields, coco_fields)
+ mspec_r += self._make_spectrum(
+ kT, elem, tindex+3, line_fields, coco_fields)
cosmic_spec = YTArray(cspec_l*(1.-dT)+cspec_r*dT, "cm**3/s")
metal_spec = YTArray(mspec_l*(1.-dT)+mspec_r*dT, "cm**3/s")
return cosmic_spec, metal_spec
https://bitbucket.org/yt_analysis/yt/commits/98c32cf581cf/
Changeset: 98c32cf581cf
Branch: yt
User: ngoldbaum
Date: 2015-12-03 20:53:37+00:00
Summary: Ensure 'xsky' is generated for all photon simulator answer tests
Affected #: 1 file
diff -r 57556b6f1df5b9e2b2dacc4092c302e63694466f -r 98c32cf581cff2a821843c6aaf41f1d2ff22d005 yt/analysis_modules/photon_simulator/tests/test_sloshing.py
--- a/yt/analysis_modules/photon_simulator/tests/test_sloshing.py
+++ b/yt/analysis_modules/photon_simulator/tests/test_sloshing.py
@@ -87,7 +87,7 @@
events1 = photons1.project_photons([1.0,-0.5,0.2], responses=[arf,rmf],
absorb_model=tbabs_model,
convolve_energies=True, prng=prng)
-
+ events1['xsky']
return_events = return_data(events1.events)
tests.append(GenericArrayTest(ds, return_events, args=[a]))
https://bitbucket.org/yt_analysis/yt/commits/fcbc7db3e119/
Changeset: fcbc7db3e119
Branch: yt
User: ngoldbaum
Date: 2015-12-03 22:38:08+00:00
Summary: Backing out 57556b6
Affected #: 1 file
diff -r 98c32cf581cff2a821843c6aaf41f1d2ff22d005 -r fcbc7db3e119a73f3221e27b6f3e6cf85698c23a yt/analysis_modules/photon_simulator/spectral_models.py
--- a/yt/analysis_modules/photon_simulator/spectral_models.py
+++ b/yt/analysis_modules/photon_simulator/spectral_models.py
@@ -246,16 +246,19 @@
self.maxlam = self.wvbins.max()
self.scale_factor = 1.0/(1.+zobs)
- def _make_spectrum(self, kT, element, tindex, line_fields, coco_fields):
+ def _make_spectrum(self, kT, element, tindex):
tmpspec = np.zeros(self.nchan)
- i = np.where((line_fields['element'] == element) &
- (line_fields['lambda'] > self.minlam) &
- (line_fields['lambda'] < self.maxlam))[0]
+ line_data = self.line_handle[tindex].data
+ coco_data = self.coco_handle[tindex].data
- E0 = hc/line_fields['lambda'][i].astype("float64")*self.scale_factor
- amp = line_fields['epsilon'][i].astype("float64")
+ i = np.where((line_data.field('element') == element) &
+ (line_data.field('lambda') > self.minlam) &
+ (line_data.field('lambda') < self.maxlam))[0]
+
+ E0 = hc/line_data.field('lambda')[i].astype("float64")*self.scale_factor
+ amp = line_data.field('epsilon')[i].astype("float64")
ebins = self.ebins.d
de = self.de.d
emid = self.emid.d
@@ -266,22 +269,22 @@
vec = np.histogram(E0, ebins, weights=amp)[0]
tmpspec += vec
- ind = np.where((coco_fields['Z'] == element) &
- (coco_fields['rmJ'] == 0))[0]
+ ind = np.where((coco_data.field('Z') == element) &
+ (coco_data.field('rmJ') == 0))[0]
if len(ind) == 0:
return tmpspec
else:
ind = ind[0]
- n_cont = coco_fields['N_Cont'][ind]
- e_cont = coco_fields['E_Cont'][ind][:n_cont]
- continuum = coco_fields['Continuum'][ind][:n_cont]
+ n_cont = coco_data.field('N_Cont')[ind]
+ e_cont = coco_data.field('E_Cont')[ind][:n_cont]
+ continuum = coco_data.field('Continuum')[ind][:n_cont]
tmpspec += np.interp(emid, e_cont*self.scale_factor, continuum)*de/self.scale_factor
- n_pseudo = coco_fields['N_Pseudo'][ind]
- e_pseudo = coco_fields['E_Pseudo'][ind][:n_pseudo]
- pseudo = coco_fields['Pseudo'][ind][:n_pseudo]
+ n_pseudo = coco_data.field('N_Pseudo')[ind]
+ e_pseudo = coco_data.field('E_Pseudo')[ind][:n_pseudo]
+ pseudo = coco_data.field('Pseudo')[ind][:n_pseudo]
tmpspec += np.interp(emid, e_pseudo*self.scale_factor, pseudo)*de/self.scale_factor
@@ -299,26 +302,14 @@
if tindex >= self.Tvals.shape[0]-1 or tindex < 0:
return YTArray(cspec_l, "cm**3/s"), YTArray(mspec_l, "cm**3/s")
dT = (kT-self.Tvals[tindex])/self.dTvals[tindex]
- # preload data to avoid astropy IO in _make_spectrum
- line_data = self.line_handle[tindex].data
- coco_data = self.coco_handle[tindex].data
- line_fields = ('element', 'lambda', 'epsilon')
- coco_fields = ('Z', 'rmJ', 'N_Cont', 'E_Cont', 'Continuum', 'N_Pseudo',
- 'E_Pseudo', 'Pseudo')
- line_fields = {el: line_data.field(el) for el in line_fields}
- coco_fields = {el: coco_data.field(el) for el in coco_fields}
# First do H,He, and trace elements
for elem in self.cosmic_elem:
- cspec_l += self._make_spectrum(
- kT, elem, tindex+2, line_fields, coco_fields)
- cspec_r += self._make_spectrum(
- kT, elem, tindex+3, line_fields, coco_fields)
+ cspec_l += self._make_spectrum(kT, elem, tindex+2)
+ cspec_r += self._make_spectrum(kT, elem, tindex+3)
# Next do the metals
for elem in self.metal_elem:
- mspec_l += self._make_spectrum(
- kT, elem, tindex+2, line_fields, coco_fields)
- mspec_r += self._make_spectrum(
- kT, elem, tindex+3, line_fields, coco_fields)
+ mspec_l += self._make_spectrum(kT, elem, tindex+2)
+ mspec_r += self._make_spectrum(kT, elem, tindex+3)
cosmic_spec = YTArray(cspec_l*(1.-dT)+cspec_r*dT, "cm**3/s")
metal_spec = YTArray(mspec_l*(1.-dT)+mspec_r*dT, "cm**3/s")
return cosmic_spec, metal_spec
https://bitbucket.org/yt_analysis/yt/commits/4a8fa18eaf11/
Changeset: 4a8fa18eaf11
Branch: yt
User: xarthisius
Date: 2015-12-07 18:27:40+00:00
Summary: Merged in ngoldbaum/yt (pull request #1895)
Fix photon simulator answer tests
Affected #: 2 files
diff -r 56f79d0c073d5edf98df699844e1003874cea13f -r 4a8fa18eaf118a4249c1e31c6b31c8ab6997d66b yt/analysis_modules/photon_simulator/tests/test_sloshing.py
--- a/yt/analysis_modules/photon_simulator/tests/test_sloshing.py
+++ b/yt/analysis_modules/photon_simulator/tests/test_sloshing.py
@@ -87,7 +87,7 @@
events1 = photons1.project_photons([1.0,-0.5,0.2], responses=[arf,rmf],
absorb_model=tbabs_model,
convolve_energies=True, prng=prng)
-
+ events1['xsky']
return_events = return_data(events1.events)
tests.append(GenericArrayTest(ds, return_events, args=[a]))
Repository URL: https://bitbucket.org/yt_analysis/yt/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
More information about the yt-svn
mailing list