An example combining heasp and pyxspecThe following example uses pyxspec to calculate a set of fluxes given the input response, multiplies the result by the response to give predicted counts and writes the result out as a spectrum. import os from heasp import * import xspec as xsp import nump as np responseName = "response.rsp" inputRSP = rmf(responseName) # energies needs to be the standard internal xspec energy array numEnergies = inputRSP.NumberEnergyBins() + 1 energies = np.empty((numEnergies)) energies[0] = inputRSP.getLowEnergyElement(0) for j in range(1,numEnergies): energies[j] = inputRSP.getHighEnergyElement(j-1) # set up the parameters array as a list params = [ 1.7 ] # calculate the model and output flux as a list fluxlist = [] xsp.callModelFunction("powerlaw", energies.tolist(), params, fluxlist) # convert the flux to a numpy array and multiply by the response flux = np.array(fluxlist) phaValues = inputRSP.multiplyByModel(flux) # set up the spectrum channel array channel = np.arange(phaValues.size).astype(np.int32) # pick an arbitrary exposure time of 10000 exposure = 10000.0 phaValues *= exposure phaOut = pha() phaOut.setFirstChannel(0) phaOut.setPha(phaValues) phaOut.setChannel(channel) phaOut.setExposure(exposure) phaOut.setDetChans(phaValues.size) phaOut.setPoisserr(True) phaOut.setDatatype("COUNT") phaOut.setSpectrumtype("TOTAL") phaOut.setResponseFile(responseName) phaOut.setTelescope(inputRSP.getTelescope()) phaOut.setInstrument(inputRSP.getInstrument()) phaOut.setFilter(inputRSP.getFilter()) phafile = "outputspectrum.pha" if (os.path.exists(phafile)): os.remove(phafile) status = phaOut.write(phafile) if status != 0: print("Failed to write outputspectrum.pha: status = ", status)
HEASARC Home | Observatories | Archive | Calibration | Software | Tools | Students/Teachers/Public Last modified: Wednesday, 28-Aug-2024 16:49:27 EDT HEASARC Staff Scientist Position - Applications are now being accepted for a Staff Scientist with significant experience and interest in the technical aspects of astrophysics research, to work in the High Energy Astrophysics Science Archive Research Center (HEASARC) at NASA Goddard Space Flight Center (GSFC) in Greenbelt, MD. Refer to the AAS Job register for full details. |