Releases: cosimoNigro/agnpy
v0.5.0: introduced time evolution Latest
Time evolution
The major feature of this release is the addition of time-evolution capabilities, enabling the tracing of time-dependent changes in the electron distribution within a Blob. This time evolution may be driven by particle injection or escape, or by energy-changing processes such as synchrotron or SSC cooling. See the reference documentation for a complete description of the TimeEvolution class.
Other changes
- Fix energy shape by @pivosb in #131
- Do not automatically compute the luminosity distance from the redshift by @cosimoNigro in #138
- Fix the issues with the InterpolatedDistributions by @cosimoNigro in #145
- added pre-commit hooks with isort, black and flake8 by @cosimoNigro in #152
- added cosmology as an optional argument instead of d_L by @cosimoNigro in #151
- Add a function for integrating SED flux, for different types of radiative processes by @grzegorzbor in #153
- Moved the tests in the respective submodule subdirectories by @cosimoNigro in #154
- spectra documentation fix by @grzegorzbor in #156
- Update test section in README.md by @morcuended in #158
- Fixing not loading data with sherpa without declaring a systematics dictionary by @cosimoNigro in #165
- documentation fix - missing division by the speed of light in the formula by @grzegorzbor in #168
- documentation fixes for spectral constraints by @grzegorzbor in #169
- Fix doc snippet about EBL models by @HealthyPear in #180
- Update readthedocs.yaml config by @morcuended in #171
- Fix EBL absorption and interpolation, add a comparison with Gammapy by @cosimoNigro in #182
- fixing logging suppression by @cosimoNigro in #186
- Updated github action to automatically upload to pypi by @cosimoNigro in #185
- Bumping up python version in readthedocs configuration files by @cosimoNigro in #192
v0.4.0: introduced proton synchrotron
This is the first agnpy version including hadronic radiative processes.
@IlariaViale and @dimaniad6 have implemented a ProtonSynchrotron class.
v0.3.0: introduced proton particles distribution
v0.3.0 introduces proton particles distributions.
In the previous versions of the package, only an electron distribution was available, the latter had to be defined through a dictionary
# set the spectrum normalisation (total energy in electrons in this case)
spectrum_norm = 1e48 * u.Unit("erg")
# define the spectral function parametrisation through a dictionary
spectrum_dict = {
"type": "PowerLaw",
"parameters": {"p": 2.8, "gamma_min": 1e2, "gamma_max": 1e7},
}
# set the remaining quantities defining the blob
R_b = 1e16 * u.cm
B = 1 * u.G
z = Distance(1e27, unit=u.cm).z
delta_D = 10
Gamma = 10
blob = Blob(R_b, z, delta_D, Gamma, B, spectrum_norm, spectrum_dict)This was not very handy: I have simplified - and broke - the previous blob API.
From version 0.3.0 this is how electron distribution are defined and passed to the blob
# electron distribution
n_e = BrokenPowerLaw(
k=1e-8 * u.Unit("cm-3"),
p1=1.9,
p2=2.6,
gamma_b=1e4,
gamma_min=10,
gamma_max=1e6,
mass=m_e,
)
# set the quantities defining the blob
R_b = 1e16 * u.cm
z = Distance(1e27, unit=u.cm).z
delta_D = 10
Gamma = 10
B = 1 * u.G
blob = Blob(R_b, z, delta_D, Gamma, B, n_e=n_e)The new way of defining particle distributions also allows to define proton distributions
n_p = PowerLaw(k=0.1 * u.Unit("cm-3"), p=2.3, gamma_min=10, gamma_max=1e6, mass=m_p)
blob = Blob(R_b, z, delta_D, Gamma, B, n_e=n_e, n_p=n_p)The only difference between particle distributions is the mass argument.
This will eventually allow to describe other particle distributions.
To achieve this:
-
ElectronDistributionhas been changed toParticleDistribution. This is the base class from which all the different distributions (PowerLaw,BrokenPowerLawetc..) inherit; -
@dimaniad6 additionally implemented an
InterpolatedDistributionto read an arbitrary input particle distribution (two arrays: one for of Lorentz factors and the other for densities); -
the
Blobclass has been improved:- the different initialisation method available under the
spectrum_norm_typeargument of theBlobare now implemented in the baseParticleDistributionclass. I.e. one can initialisefrom_total_density,from_total_energy_density,from_density_at_gamma_1,from_total_energy; - several quantities are now provided as
propertiesand are evaluated on the fly from the base parameters ($R_b$ ,$z$ ,$\delta_D$ ,$\Gamma$ ,$B$ );
- the different initialisation method available under the
-
the other classes remain largely unchanged. They have just been modified internally to deal with the new definition of particle distributions;
-
note that the prefactor of the particle distribution has been renamed from
k_etok, as we are not describing exclusively electrons distributions now. This means that the corresponding parameter in the fit classes islog10_kinstead oflog10_k_e.
v0.2.0: incorporated sherpa and Gammapy wrappers
In this release, the sherpa and Gammapy wrapper - that before were simple examples in the documentation - have been added to the source code.
A agnpy.fit module has been introduced with two physical scenarios:
-
SycnhrotronSelfComptonModel, representing the sum of synchrotron and synchrotron self-Compton (SSC) radiation. This scenario is commonly considered to model BL Lac sources; -
ExternalComptonModel, representing the sum of synchrotron and synchrotron self-Compton radiation along with an external Compton (EC) component. EC scattering can be computed considering a list of target photon fields. This scenario is commonly considered to model flat spectrum radio quasars (FSRQs).
For each scenario, a sherpa or gammapy backend can be selected, such that the fit can be performed with both packages.
Some helper functions are added to load directly a file representing a MWL SED with a proper format into a data object of the two packages.
v0.1.8 minor fix in the usage of the default matplotlibrc
In the previous release I forgot to include the agnpy/utils/matplotlibrc in the MANIFEST.in.
To load it I am now using improtlib.resources rather than the deprecated Path(__file__).parent, see https://github.com/wimglenn/resources-example.
v0.1.7 minor fixes in the utils plot functions
This is a minor release fixing some inconsistencies in the agnpy.utils.plot functions.
v0.1.6 modifications in .zenodo.json to make the code findable by the ESAP
Changed few keywords in the .zenodo.json to make it findable by the ESAP platform.
v0.1.4 test new .zenodo.json on zenodo
I am creating this version just to test that the new .zenodo.json, generated from the codemeta.json using the OSSR tools is correctly parsed by zenodo.
v0.1.3: updates in data and docs
With this new release:
- an update was realised in the data: the MWL SED of PKS1510-089 in 2015 was not properly converted to erg cm-2 s-1;
- a notebook was added, following the referee report, giving some caveats on suing the thermal SED agnpy computes for the DT.
Test automatic deployment on pip
This is release is made just to test the automatic upload on pip via github actions.
There are no significant differences from 0.1.1.