Recent Releases of ZodiPy

ZodiPy - v.1.1.2

What's Changed

  • Fix bug where extrapolation was not working by @MetinSa in https://github.com/Cosmoglobe/zodipy/pull/46

Full Changelog: https://github.com/Cosmoglobe/zodipy/compare/v1.1.1...v1.1.2

Scientific Software - Peer-reviewed - Python
Published by MetinSa 8 months ago

ZodiPy - v.1.1.1

What's Changed

  • Fixed bug where results would differ when initializing the model with wavelength vs frequency by @hermda02 in https://github.com/Cosmoglobe/zodipy/pull/44

New Contributors

  • @hermda02 made their first contribution in https://github.com/Cosmoglobe/zodipy/pull/44

Full Changelog: https://github.com/Cosmoglobe/zodipy/compare/v.1.1.0...v1.1.1

Scientific Software - Peer-reviewed - Python
Published by MetinSa 8 months ago

ZodiPy - v.1.1.0

This is a minor release with one new feature: - The grid_number_density function now accepts a model argument (replaces the old name argument) which can be either a string representing a built-in/registered zodiacal light model, or a custom or explicit ZodiacalLightModel.

What's Changed

  • Tried adding option to insert arbitrary model by @Takatho in https://github.com/Cosmoglobe/zodipy/pull/38

New Contributors

  • @Takatho made their first contribution in https://github.com/Cosmoglobe/zodipy/pull/38

Full Changelog: https://github.com/Cosmoglobe/zodipy/compare/v.1.0.0...v.1.1.0

Scientific Software - Peer-reviewed - Python
Published by MetinSa about 1 year ago

ZodiPy - v1.0.0

This release features a major rewrite of the ZodiPy API following the integration of ZodiPy to the Astropy ecosystem. See the usage documentation for an overview of how to use ZodiPy with the new API.

What's Changed

  • Renamed zodipy.Zodipy to zodipy.Model.
  • Removed all previous get_*_emission methods which are all replaced by the evaluate method, which takes in a astropy.coordinates.SkyCoord object. All user input (with the exception of obspos) is now directly provided through the SkyCoord object.
  • Support for per coordinate obstime and obspos values, for more accurate simulations. This also removes the need to manually chunk time-ordered data and re-evaluate ZodiPy. Now, a single call to the Model.evaluate method can compute the entire zodiacal light for a full instrument timestream.

Full Changelog: https://github.com/Cosmoglobe/zodipy/compare/v.0.9.2...v.1.0.0

Scientific Software - Peer-reviewed - Python
Published by MetinSa over 1 year ago

ZodiPy - v.0.9.2

This release contains no updated or changes to ZodiPy, but functions as a tag for Zenodo to archive the repository and issues a DOI.

Scientific Software - Peer-reviewed - Python
Published by MetinSa over 1 year ago

ZodiPy - v.0.9.1

This is a minor release that updates the project meta data.

Scientific Software - Peer-reviewed - Python
Published by MetinSa over 1 year ago

ZodiPy - v.0.9.0

This release drops support for Python 3.8 and updates developer dependencies.

Scientific Software - Peer-reviewed - Python
Published by MetinSa over 1 year ago

ZodiPy - v.0.8.6

[0.8.6] - 2024-03-21

Deprecated

Deprecated the keyword parallel used when initializing a Zodipy model. Instead, wether or not ZodiPy will parallelize the line-of-sight integrals is inferred from n_proc, where n_proc=1, which is the default value, means no parallelization.

Example

```python import zodipy

no parallelization

model = zodipy.Zodipy()

parallelization over 10 cores

model = zodipy.Zodipy(n_proc=10) ```

Scientific Software - Peer-reviewed - Python
Published by MetinSa almost 2 years ago

ZodiPy - v.0.8.5

Bug Fixes

  • Fix bug with the Earth-trailing feature component 37c7ab892be109f42a2402c560dd17adbbd45c48

Scientific Software - Peer-reviewed - Python
Published by MetinSa about 2 years ago

ZodiPy - Add new argument `interp_kind` to the initialization of `Zodipy`.

[0.8.4] - 2023-02-06

New

Previously only linear interpolation was performed for the relevant source and spectral parameters in the interplanetary dust models. Now the user may select between the various supported methods for Scipy's interp1d.

Example of how to use the new feature:

```python import zodipy

model = zodipy.Zodipy("Planck2018", interp_kind="quadratic") ```

Scientific Software - Peer-reviewed - Python
Published by MetinSa almost 3 years ago

ZodiPy - Fix bug with spectral parameter interpolation

[0.8.3] - 2023-01-11

Fixed

  • Fix a bug introduced in 0.8.1 that got through the previous release unspotted which resulted in spectral parameters being interpolated in wrong units.

Scientific Software - Peer-reviewed - Python
Published by MetinSa almost 3 years ago

ZodiPy - Fix bug with bandpasses in Hz

[0.8.2] - 2023-01-11

Fixed

  • Fixed a bug that appeared in 0.8.0 where bandpasses in GHz were evaluated in units of GHz instead of Hz in the Planck function.

Scientific Software - Peer-reviewed - Python
Published by MetinSa almost 3 years ago

ZodiPy - Dropping quadpy dependency

[0.8.1] - 2023-01-10

Changed

  • Dropping quadpy as a dependency and manually implementing gaussian quadrature for the line of sight integrals.

Scientific Software - Peer-reviewed - Python
Published by MetinSa almost 3 years ago

ZodiPy - Experimental Rowan-Robinson and May model, possibility to modify model parameters and major bandpass integration speed up

[0.8.0] - 2023-01-09

This release features an experimental implementation of the Rowan-Robinson and May zodiacal model (https://ui.adsabs.harvard.edu/abs/2013MNRAS.429.2894R/abstract), a new interface for being able to change and update the model parameters (useful for testing and sampling), and a significant performance boosts when working with bandpasses.

New

  • An implementation of the Rowan-Robinsan and May model: model = zodipy.Zodipy(model="rrm-experimental"). This implementation is still in development and should not be used for results, but it features several new and exciting zodiacal components (such as interstellar dust) when compared to the Kelsall model, and perhaps a more physical description of the dust in the solar system.
  • An interface for manipulating the parameters in a model which includes the two new methods get_parameters() -> dict which outputs a dictionary of all the model parameters, and update_parameters(parameters) which takes in a dictionary on the form outputted by get_parameters and updates the model: ```python model = zodipy.Zodipy()

parameters = model.getparameters() parameters["comps"]["cloud"]["i"] = 5 model.updateparameters(parameters) ```

Changed

  • Removed numba as a dependency: Switched from brute force bandpass integration using numba, to an interpolation technique. This heavily speeds up computations when using bandpasses and removes the need for numba as a dependency in zodipy

Scientific Software - Peer-reviewed - Python
Published by MetinSa almost 3 years ago

ZodiPy - Fix bug with bandpasses

[0.7.5] - 2022-10-24

This release contains mostly technical bug fixes. Be sure to upgrade your version of ZodiPy if you are working with bandpasses in micron.

Fixes

  • Fixed yet another bug with bandpasses in microns being improperly converted to frequency.

Scientific Software - Peer-reviewed - Python
Published by MetinSa about 3 years ago

ZodiPy - Bug fix

[0.7.3] - 2022-10-14

Fix

  • Fixed a bug where the weights of bandpasses given in microns were not flipped when the bandpass was converted to frequency units.

Scientific Software - Peer-reviewed - Python
Published by MetinSa about 3 years ago

ZodiPy - Revert back to not distributing pointing in parallel by default

[0.7.2] - 2022-10-13

New

  • Revert default value for parallel to False when initializing Zodipy. In many common use cases, the user will want to use ZodiPy in a parallel environment, where instead of distributing the pointing in each chunk over the CPU's, the chunks themselves are distributed.

Scientific Software - Peer-reviewed - Python
Published by MetinSa about 3 years ago

ZodiPy - Removed unintentional nested parallelization and renamed argument `gauss_quad_order` to `gauss_quad_degree`

[0.7.1] - 2022-10-11

New

  • Renamed argument gauss_quad_order to gauss_quad_degree in Zodipy(). ### Changed
  • Fixed issue with nested parallelization where using a large number of processes would cause oversubscription and bloated threads.

Scientific Software - Peer-reviewed - Python
Published by MetinSa about 3 years ago

ZodiPy - Add support for bandpass integration

[0.7.0] - 2022-10-06

New

  • Added support for bandpass integration. The get_*_emission_* methods now accept a sequence of frequencies to the freq argument and corresponding weights to the new weights argument.
  • Add numba as a dependency.

Changed

  • By default, ZodiPy will now run concurrently and spawn processes based on the number of available CPU's (given by os.cpu_count()). This can be turned off by initializing Zodipy with parallel=False. The number of CPUs can be manually specified by using the n_proc keyword when initializing ZodiPy.

Scientific Software - Peer-reviewed - Python
Published by MetinSa about 3 years ago

ZodiPy - Fix multiprocessing start method

[0.6.6] - 2022-07-05

Fixed

  • start_method for multiprocessing now defaults to using "fork" for linux and macOS systems, which means that users no longer need to wrap the code in if __name__ == "__main__" guards unless they are on Windows.

Scientific Software - Peer-reviewed - Python
Published by MetinSa over 3 years ago

ZodiPy - Performance improvements

[0.6.5] - 2022-07-04

Changed

  • Improved performance of ZodiPy by up to 40% for single process calls. This was achieved by refactoring the brightness integral function to take advantage of that we are no longer using component specific line of sight discretisation e1edd34252b83ad999aca4ef46b7e4b1435f68f1.

Scientific Software - Peer-reviewed - Python
Published by MetinSa over 3 years ago

ZodiPy - Add parallelization for large pointing sequences

[0.6.4] - 2022-07-04

New

  • ZodiPy can now compute the emission in parallel by distributing the pointing over multiple processes. This is useful for large pointing sequences or making binned maps with large nside where the execution would be slow due to the massive amount of line of sights that needs to be evaluated. This feature is disabled by default, but is activated by initializing Zodipy with parallel=True. Optionally, the user may also specify the number of desired processes with the n_proc argument. See the new Parallel computations section in the documentation for an example of how to use ZodiPy with this feature.

Scientific Software - Peer-reviewed - Python
Published by MetinSa over 3 years ago

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

Scientific Software - Peer-reviewed - Python
Published by MetinSa over 3 years ago

ZodiPy - Solar Cutoff

[0.6.2] - 2022-06-22

Changed - Added solar_cutoff as an argument to the initialisation of Zodipy (see 73c03360c68a1a13f548bd4d3b8131b859bff160). 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 specified solar_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.

Scientific Software - Peer-reviewed - Python
Published by MetinSa over 3 years ago

ZodiPy - 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/

Scientific Software - Peer-reviewed - Python
Published by MetinSa over 3 years ago

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.

Scientific Software - Peer-reviewed - Python
Published by MetinSa over 3 years ago

ZodiPy - 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 initializing Zodipy.
  • 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 initializing Zodipy.
  • Improved performance is achieved by introducing quadpy as a new dependency, which speeds up the line of sight integration.

Scientific Software - Peer-reviewed - Python
Published by MetinSa over 3 years ago

ZodiPy - 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 an astropy.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 and phi).
  • 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 ```python from astropy import unit as u from astropy.time import Time from zodipy import Zodipy

model = Zodipy() model.getemission( 25*u.micron, obs="earth", obstime=Time.now(), theta=10u.deg, phi=40u.deg, )

```

Scientific Software - Peer-reviewed - Python
Published by MetinSa almost 4 years ago

ZodiPy - 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 e76707cbf91eee76dffef8269cf6aa2620d4e026 where the following changes were made: 1) the Planck function and the Interplanetary temperature is tabulated instead of being computed along each line of sight 2) 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:

```python from zodipy import Zodipy

model = Zodipy() emission = model.gettimeorderedemission( 25 * u.micron, nside=256, pixels=[...], observerpos=[...] * u.AU, ) ```

Scientific Software - Peer-reviewed - Python
Published by MetinSa almost 4 years ago

ZodiPy - 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 of Zodi.
  • 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.

Scientific Software - Peer-reviewed - Python
Published by MetinSa about 4 years ago

ZodiPy - 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 and mypy on push and pull requests

Scientific Software - Peer-reviewed - Python
Published by MetinSa over 4 years ago

ZodiPy - 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 43c29ed5ad4ec02bdde5e977f71b7185f16f509e

Scientific Software - Peer-reviewed - Python
Published by MetinSa over 4 years ago

ZodiPy - Zodipy 0.2.0 Release Notes

Note: This release only refactored code implementation and restructured files

  • Moved logic for selecting simulation strategy out of the Zodi initialization to its own file _integration.py ac84be61102078b96876f1f7c5037a48f6eaa236

Scientific Software - Peer-reviewed - Python
Published by MetinSa over 4 years ago

ZodiPy - Zodipy 0.1.9 Release Notes

  • Implemented manual step-wise integration to drastically improve memory consumption for high nsides 8c510111494a72a7b8f4f929a286a3d6a5ef5b9a
  • Renamed some files
  • Added more type hints

Scientific Software - Peer-reviewed - Python
Published by MetinSa over 4 years ago

ZodiPy - Zodipy 0.1.8 Release Notes

Note: This release only refactored code implementation and restructured files

  • Renamed files d1cd49cb21fe63ac17a32dbfe8e655c163f6e60f.
  • Fixed bug where the angle theta for the earth-trailing component was not properly constrained deb3e3cca121e9816959acd721f3fb0cb9f03f84.

Scientific Software - Peer-reviewed - Python
Published by MetinSa over 4 years ago

ZodiPy - Zodipy 0.1.7 Release Notes

Note: This release only refactored the code implementation - Implemented the factory method pattern into various aspects of the code d5703dd05f871ea95cc4be07f9e8bcf7ee92d213 943dd148531767b7b3d79455f88485648a51dc4e

Scientific Software - Peer-reviewed - Python
Published by MetinSa over 4 years ago

ZodiPy - Zodipy 0.1.6 Release Notes

  • Changed Zodi input arguments (start, stop, and step -> epochs) and removed solar_cut keyword 77f9912c2051edda368222022ede960f95b78dad.
  • Added possibility to include hit maps to produce pixel weighted average simulations and refactored the SimulationStrategy classes b84e250a8fac0a36c640d0a4f06083758e8dd956 2f95b3f59d73639ce4b893b5daed8c67048da234.

Scientific Software - Peer-reviewed - Python
Published by MetinSa over 4 years ago

ZodiPy - Zodipy 0.1.5 Release Notes

  • Refactored code, updated documentation, and changed keyword name in get_emission from mask -> solar_cut 44b7ab01326ecb2c928c6d643a871e6831372e08 95da02d93d807d28d8ffb64468ffc11be3a5c904.

Scientific Software - Peer-reviewed - Python
Published by MetinSa over 4 years ago

ZodiPy - Zodipy 0.1.4 Release Notes

  • Added possibility to mask pixels during an observation 6edfc1aab6e9a85fbe9381071bed855ae7788501 aaa79f20111004606c544443202b10570307b60f b7f1486f70446d98c8e72cd3ae986a9cb07137ef.
  • Observation times are now given through three separate keywords (start, stop, step) to the Zodi object, 6f79b42c8b9217941ee72e372fb97ff331aabc40 c3e08b43e4a9d59a1f549398e1ba2ee62362ccea.

Scientific Software - Peer-reviewed - Python
Published by MetinSa over 4 years ago

ZodiPy - Zodipy 0.1.3 Release Notes

  • Changed input argument types to Zodi object 1703eb8.
  • Fixed import override 6cbf848.
  • Added __all__.

Scientific Software - Peer-reviewed - Python
Published by MetinSa over 4 years ago

ZodiPy - Zodipy 0.1.2 Release Notes

  • Fix bug where initializing the Zodi interface without any arguments would raise an exception f9da748.

Scientific Software - Peer-reviewed - Python
Published by MetinSa over 4 years ago