Releases: renecotyfanboy/jaxspec
v0.0.5
The 0.0.5 release of jaxspec
is out ! Many code refactoring and internal cleaning is happening, but there are also new features, including a direct fit method for your spectral models.
New features
jaxspec.fit
module now includesBayesianFitter
andMinimizationFitter
classes to perform either MCMC or direct minimization to find the best set of parameters. Note thatMinimizationFitter
is faster but more likely to fall in local minima.- Both
BayesianFitter
andMinimizationFitter
can fit the same model using multipleObsConfiguration
at once to obtain stronger constraints. Either pass alist[ObsConfiguration]
or adict[str, ObsConfiguration]
to achieve this. - Fit results are now plotable with any unit you want!
FitResult.plot_ppc
haw two new kwargs :x_unit
andy_type
.x_unit
argument can be any unit of length, frequency, or energy and the plot will adapt.y_type
can be any of "counts", "countrate", "photon_flux", "photon_flux_density" and will plot the equivalent curve. fakeit
andfakeit_for_multiple_parameters
can specifysparsify_matrix = True
for large RMF.jaxspec.util.abundances
now contains two tables.abundance_table
contains the most used abundance tables in astrophysics, andelement_table
contains various data about elements, imported from themendeleev
package.jaxspec
is now tested against the HEACIT dataset to ensure that it is performant at reading the many types of instrument and observation files produced by the OGIP standard.
Breaking changes
ChainResult
is renamed toFitResult
ChainResult.chain
is renamed toFitResult.to_chain
ChainResult.sample
has been split toFitResult.samples_haiku
for a two level dictionary of posterior samples, e.g.samples['powerlaw_1']['alpha']
, and toFitResult.samples_flat
for a one level dictionary of posterior samples, e.g.samples['powerlaw_1_alpha']
.BayesianModel
is renamed toBayesianFitter
.Instrument.from_ogip_file
now takes arf_path as a kwarg since some instruments use a single .rmf file to carry both the redistribution matrix and effective area.Instrument.from_ogip_file("data/PN.rmf","data/PN.arf")
should be changed toInstrument.from_ogip_file("data/PN.rmf", arf_path="data/PN.arf")
. Even if the first syntax should work, be carefull to check that you did not intervert .arf and .rmf.
v0.0.4
This small update speeds up the data reading process
s p a r s e
The v0.0.3 of jaxspec
includes a large rework of the internal data handling, enabling sparse representation until runtime. It also includes a larger test suite based of the HEACIT's data, with more reliable keyword and columns reading.
What's Changed
- Added Agauss, Zagauss and Zgauss by @CamilleDiez in #122
- Data upgrade by @renecotyfanboy in #137
Full Changelog: v0.0.2...v0.0.3
pypi update
jaxspec
is now deployed on pypi! Anyone can download it simply with pip install jaxspec
. This update comes with some new features and a better backend overall :
- Instrumental data is now backed with
xarray.Dataset
, allowing semantic dimension naming which (in my opinion) greatly improves the clarity of coding. - Same with instrument, which is now a wrapping around the amazing
arviz.InferenceData
, easing the use ofarviz
for various Bayesian checks on the fits - We reverted the ability to fit several observations at once, as it was implemented in an unmaintainable way. It will come back soon.
- Models are automatically transformed when including transformed prior distributions (e.g. LogUniform). It eases the use of NUTS to sample the posterior distributions
🎉 First release 🎉
This is the first release of jaxspec. It is highly unstable and a lot of API changes are to be expected until the first stable release.
At this time, you can basically use jaxspec to :
- Load OGIP data
- Define a spectral model
- Fit this spectral model using MCMC
- Include a background model
- Plot the results