Releases: Cosmoglobe/zodipy
Fix dependencies so ZodiPy works on Python > 3.10
[0.6.3] - 2022-06-24
Fixed
- Updated dependencies so ZodiPy now works properly on all Python versions >= 3.8
Solar Cutoff
[0.6.2] - 2022-06-22
Changed
- Added
solar_cutoff
as an argument to the initialisation ofZodipy
(see 73c0336). This argument takes in an angle (in degrees) and masks the emission for all pointing that has an angular distance between the sun smaller than the specifiedsolar_cutoff
. Due to the singularity in the interplanetary dust model, pointing looking directly at the Sun will get unphysical values. Although most experiments dont have scanning strategies looking in towards the Sun, this feature could be useful for simulated pointing and for making instantaneous full sky maps of the zodiacal emission.
Ported documentation from sphinx to mkdocs
[0.6.1] - 2022-06-20
Documentation was ported from sphinx (readthedocs) to mkdocs with gh-pages.
The new home for our documentation is now https://cosmoglobe.github.io/zodipy/
Significant changes to the ``Zodipy`` API
[0.6.0] - 2022-04-26
This release introduces significant changes to the Zodipy
API by splitting the old get_emisison
function into smaller components. The previous function was trying to do to much, which made the code harder to maintain and less pythonic. I believe it is better to split it into smaller components who each handle the specific use cases (get emission for pixels, angles, binned pixels, and binned angles).
The four new methods are: get_emission_ang
, get_emission_pix
, get_binned_emission_ang
, and get_binned_emission_pix
. For more information on how to use the new functions, please see the reference.
Support for frequency extrapolation, new solar irradiance models, and better performance using `quadpy`
This release introduces a new features and improves the performance of the Zodipy by using the quadpy library to perform vectorized line of sight integration.
[0.5.6] - 2022-04-19
- Added possibility to select between modern solar irradiance models for computing the scattered solar emission. These can be selected by specifying the
solar_irradiance_model
argument when initializingZodipy
. - Zodipy now throws an error by default if the selected frequency or wavelength is outside of the range covered by the selected interplanetary dust model. To linearly extrapolate the spectral parameters in the model, set
extarpolate=True
when initializingZodipy
. - Improved performance is achieved by introducing quadpy as a new dependency, which speeds up the line of sight integration.
Use Astropy `solar_system_ephemeris` API to compute position of Solar System bodies, accept pointing in form of angular coordinates
This release changes the interface of Zodipy to no longer depend on specific observer/earth position as input, and allows the user to provide pointing information in the form of angular coordinates.
- Zodipy now expects a
str
representing an observer and anastropy.time.Time
object representing the time of observation instead of the previously required observer and earth positions in AU. - The pointing information can now be given in the form of angles on the sky in co-latitude and longitude (
theta
andphi
). - The JPL ephemeris
de432s
will be downloaded the first time the interface is initialized (10 MB file).
Following is a new minimal Zodipy use case
from astropy import unit as u
from astropy.time import Time
from zodipy import Zodipy
model = Zodipy()
model.get_emission(
25*u.micron,
obs="earth",
obs_time=Time.now(),
theta=10*u.deg,
phi=40*u.deg,
)
>> <Quantity [16.65684599] MJy / sr>
Performance upgrade and changes to the user interface
This release provides a significant upgrades to the Zodipy performance speed (up to 2x from the previous release).
The performance is mainly the result of e76707c where the following changes were made:
- the Planck function and the Interplanetary temperature is tabulated instead of being computed along each line of sight
- the software architecture is refactored to remove redundant calculations
Additionally, the user interface is changed slightly.
The main interface is now called Zodipy
and features two methods: get_time_ordered_emission
and get_instantaneous_emission
.
Following is an example how to use Zodipy with the new interface:
from zodipy import Zodipy
model = Zodipy()
emission = model.get_time_ordered_emission(
25 * u.micron,
nside=256,
pixels=[...],
observer_pos=[...] * u.AU,
)
Reworked interface and implemented time-ordered emission
This release introduces significant changes to the way Zodipy is used compared to previous versions.
For a more in-depth guide on how to use Zodipy following the changes, see the README.
Changed
- The Zodipy interface interface is now initialized with the
InterplanetaryDustModel
class instead ofZodi
. - Instantaneous emission is now simulated using the
get_instantaneous_emission
method of the interface. - Time-ordered emission can now be simulated with the
get_time_ordered_emission
method of the interface.
Introduced testing and updated project dependency versions
This release updates project dependency versions and introduces unit and type testing
Changed
- Updated
pillow
and related dependencies due to invulnerability issues with versions < 8.3.2 - Introduced type checking with
mypy
- Introduced a few unit tests with
pytest
- Added GitHub actions to automatically run
pytest
andmypy
on push and pull requests
Zodipy 0.2.1 Release Notes
Note: This release only includes code refactoring. The behavior of Zodipy remains the same.
- Merged the two existing simulation strategies into a common strategy that handles both simulation use cases 43c29ed