[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