[yt-svn] commit/yt: ngoldbaum: Merged in jzuhone/yt (pull request #2210)
commits-noreply at bitbucket.org
commits-noreply at bitbucket.org
Wed Jun 15 11:06:32 PDT 2016
1 new commit in yt:
https://bitbucket.org/yt_analysis/yt/commits/e0b1c973fefe/
Changeset: e0b1c973fefe
Branch: yt
User: ngoldbaum
Date: 2016-06-15 18:06:25+00:00
Summary: Merged in jzuhone/yt (pull request #2210)
Three fixes for photon_simulator
Affected #: 3 files
diff -r 3cc3e0d5b293914e592976c9c87e66e1a5b47154 -r e0b1c973fefe530286e6589ef119dce4e4fe09e4 yt/analysis_modules/photon_simulator/photon_simulator.py
--- a/yt/analysis_modules/photon_simulator/photon_simulator.py
+++ b/yt/analysis_modules/photon_simulator/photon_simulator.py
@@ -1194,8 +1194,9 @@
col6 = pyfits.Column(name='FLUX', format='D', array=np.array([flux.value]))
col7 = pyfits.Column(name='SPECTRUM', format='80A', array=np.array([phfile+"[PHLIST,1]"]))
col8 = pyfits.Column(name='IMAGE', format='80A', array=np.array([phfile+"[PHLIST,1]"]))
+ col9 = pyfits.Column(name='SRC_NAME', format='80A', array=np.array(["yt_src"]))
- coldefs = pyfits.ColDefs([col1, col2, col3, col4, col5, col6, col7, col8])
+ coldefs = pyfits.ColDefs([col1, col2, col3, col4, col5, col6, col7, col8, col9])
wrhdu = pyfits.BinTableHDU.from_columns(coldefs)
wrhdu.update_ext_name("SRC_CAT")
@@ -1350,13 +1351,17 @@
f = pyfits.open(self.parameters["RMF"])
nchan = int(f["EBOUNDS"].header["DETCHANS"])
num = 0
- for i in range(1,len(f["EBOUNDS"].columns)+1):
- if f["EBOUNDS"].header["TTYPE%d" % i] == "CHANNEL":
+ if "MATRIX" in f:
+ mat_key = "MATRIX"
+ elif "SPECRESP MATRIX" in f:
+ mat_key = "SPECRESP MATRIX"
+ for i in range(1,len(f[mat_key].columns)+1):
+ if f[mat_key].header["TTYPE%d" % i] == "F_CHAN":
num = i
break
if num > 0:
tlmin = "TLMIN%d" % num
- cmin = int(f["EBOUNDS"].header[tlmin])
+ cmin = int(f[mat_key].header[tlmin])
else:
mylog.warning("Cannot determine minimum allowed value for channel. " +
"Setting to 0, which may be wrong.")
diff -r 3cc3e0d5b293914e592976c9c87e66e1a5b47154 -r e0b1c973fefe530286e6589ef119dce4e4fe09e4 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
@@ -264,7 +264,7 @@
emid = self.emid.d
if self.thermal_broad:
sigma = E0*np.sqrt(2.*kT*erg_per_keV/(self.A[element]*amu_grams))/cl
- vec = broaden_lines(E0, sigma, amp, emid)*de
+ vec = broaden_lines(E0, sigma, amp, ebins)
else:
vec = np.histogram(E0, ebins, weights=amp)[0]
tmpspec += vec
diff -r 3cc3e0d5b293914e592976c9c87e66e1a5b47154 -r e0b1c973fefe530286e6589ef119dce4e4fe09e4 yt/analysis_modules/photon_simulator/utils.pyx
--- a/yt/analysis_modules/photon_simulator/utils.pyx
+++ b/yt/analysis_modules/photon_simulator/utils.pyx
@@ -1,31 +1,30 @@
import numpy as np
cimport numpy as np
cimport cython
-from libc.math cimport exp
-
-cdef double gfac = 1.0/np.sqrt(np.pi)
-
+from libc.math cimport erf
+
@cython.cdivision(True)
@cython.boundscheck(False)
@cython.wraparound(False)
def broaden_lines(np.ndarray[np.float64_t, ndim=1] E0,
np.ndarray[np.float64_t, ndim=1] sigma,
np.ndarray[np.float64_t, ndim=1] amp,
- np.ndarray[np.float64_t, ndim=1] E):
+ np.ndarray[np.float64_t, ndim=1] ebins):
- cdef int i, j, n
- cdef double x, isigma, iamp
- cdef np.ndarray[np.float64_t, ndim=1] lines
+ cdef int i, j, n, m
+ cdef double x, isigma
+ cdef np.ndarray[np.float64_t, ndim=1] cdf, vec
n = E0.shape[0]
- m = E.shape[0]
- lines = np.zeros(m)
-
+ m = ebins.shape[0]
+ cdf = np.zeros(m)
+ vec = np.zeros(m-1)
+
for i in range(n):
isigma = 1.0/sigma[i]
- iamp = gfac*amp[i]*isigma
for j in range(m):
- x = (E[j]-E0[i])*isigma
- lines[j] += iamp*exp(-x*x)
-
- return lines
+ x = (ebins[j]-E0[i])*isigma
+ cdf[j] = 0.5*(1+erf(x))
+ for j in range(m-1):
+ vec[j] = vec[j] + (cdf[j+1] - cdf[j])*amp[i]
+ return vec
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