Skip to content

Releases: litebird/litebird_sim

Version 0.16.0

15 Sep 15:47
Compare
Choose a tag to compare
  • Add pre-commit hook to keep syntax compliant with py3.10+ #461

  • Fix issue #459

  • Fix issue #457

  • Fix incorrect handling of HWP with precomputed pointing #456

  • Improve the documentation #450

  • New method Imo.open_data_file #449

  • Improved SphericalHarmonics class, algebra and I/O implemented #448

  • Import Yusuke Takase's grasp2alm code #447

  • Change hwp_angle calculation to the complex domain #433

Version 0.15.3

01 Jul 02:55
dbfec64
Compare
Choose a tag to compare
  • Fix the computation of HWP angles #444

  • Add low-level interface to BrahMap #440

  • Set Mueller matrix phases in Hwp_sys module as class attributes, instead of being hardcoded #442

Version 0.15.2

30 Jun 04:49
Compare
Choose a tag to compare
  • Add more tutorials #443

Version 0.15.1

23 Jun 11:03
Compare
Choose a tag to compare
  • Fixed s4,s5,d9,d10 and added s7 in Mbs #437

  • Make sure that the PTEP IMo, the Madam templates, and the static files required to create the HTML reports are installed properly by pip and enable Binder/Google Colab #436

  • Make the HWP_sys module able to deal with missing pixels, let the output maps to use a different NSIDE than the one of the inputs #432

  • Fix bug in the computation of pointings for the HWP_sys module #429

  • Upgrade PySM to 3.4.2 #431 (Thanks to Andrea Zonca!)

Version 0.15.0

06 Jun 15:45
Compare
Choose a tag to compare
  • Breaking change: New improved seeding strategy using RNGHierarchy #414

  • Breaking change: Drop support for Python 3.9, add support for 3.13. Note that this implies that we do no longer support TOAST2, as it does not work with Python 3.10 #409

  • Breaking change: The HWP and ψ angles in the HWP Systematics module have been redefined to be consistent #377

  • Breaking change: The two parameters Channel and Mbsparams used in HwpSys.set_parameters() have been renamed to channel and mbs_params #422

  • Remove extra dependencies from pyproject.toml #423

  • Add interpolation to hwp_sys #420

  • Change default ellipticity in IMo vPTEP #419 and improved documentation for beam synthesis #416

  • Measure code coverage in PRs #415

  • Move map rotation from galactic to ecliptic at generation in mbs and test #413

  • Make actual use of [skipci] and skip ci] in commit messages #410

  • New option in Simulation.get_sky() for generating maps per channel, option for storing sky and beam alms in the observations #408

  • Make MPI tests more robusts and produce a “MPI” section in the output report #405

  • Add interface to BrahMap GLS mapmaker and relative tests #400.

  • Replace allreduce with Allreduce in binning.py #407.

  • Function for nullifying tods in the class Simulation #389.

  • Save det_idx in HDF5 files and make MPI test fail properly #402

  • Option for centering the pointing in the beam convolution plus some reworking of the pointing API (new methods added to the class Observation) #397

  • Bug in Simulation.get_sky() fixed #398

  • Fix a bug in prepare_pointings #396

  • Deprecate apply_hwp_to_obs() and HWP.add_hwp_angle(), remove deprecated functions Simulation.generate_spin2ecl_quaternions() and write_observations()

  • Fix docstrings and type hints for mueller_hwp #381

  • Fix the formatting of a few docstrings #391

  • Common interface to compute pointings and detector polarization angle #378

  • Module for performing the 4π beam convolution #338

  • Make @_profile preserve docstrings #371

  • Upgrade Ducc0 to 0.38.0 and clarify how to compile Ducc0 from sources #383, #390, #394

  • Update documentation for hwp_sys and non_linearity modules #404

  • Add non-linearity coupling with hwp systematic effects #395

  • Set numba parallelization (only) in compute_signal_for_one_detector in hwp_sys #395

  • Update test_hwp_sys.py #395

  • Change hwp angle variable name in hwp_sys.py so it is cohererent with documentation #395

  • Remove the optical optical power argument from the 2f hwpss code #395

  • Update test_hwp_diff_emiss.py #395

  • Add option to pass a seed to generate a random g_1 term in the non-linearity module #395

  • Fix a bug in using MPI parallelization in hwp_sys #395

Version 0.14.0

20 Feb 09:51
Compare
Choose a tag to compare
  • Breaking change: Bug in the 1/f noise generation has been corrected. Previously, the frequency array was miscalculated due to an incorrect factor of 2 in the sample spacing passed to the SciPy function fft.rfftfreq. #362.

  • Breaking change: PointingSys() now requires Observation as an argument. And several functions to add pointing systematics are merged into left_multiply_syst_quats().

  • Breaking change: Redefinition (ωt instead of 2ωt) of the hwp angle returned by get_pointings(). Change in the pointing returned by Observation.get_pointings(), now behaving as it was before this commit. Documentation updated accordingly. #340

  • Breaking change: Change to the pointing API #358, in detail:

    1. DetectorInfo has three new attributes: pol_angle_rad (polarization angle), pol_efficiency (polarization efficiency)and mueller_hwp (mueller matrix of the HWP).

    2. get_pointings() return only the orientation ψ of the detector, the polarization angle is a separate variable stored in the Observation class. The same class also handles the mueller_hwp for each detector, and it has a new bool variable has_hwp that is set to true if an HWP object is passed to prepare_pointings().

    3. The mock vPTEP IMo has been updated accordingly.

    4. The HWP class has a new field called mueller, that contains the mueller matrix of the HWP.

    5. The function scan_map() now handles three possible algebras: (i) no HWP, (ii) ideal HWP, (iii) generic optical chain.

  • Implementation of distributing detectors across the MPI processes by grouping them according to given attributes #334

  • Restructure the manual and use a new, cleaner style #342

  • Module for including nonlinearity in the simulations #331

  • Improve the documentation of the binner and the destriper #333

  • Make the code compatible with Python 3.12 #332

  • plot_fp.py which visualizes focal plane and DetectorInfo is implemented. Also it can generate a dector list file by clicking visualized detectors. The function is executable by: python -m litebird_sim.plot_fp #345

  • Simulation.add_noise() uses self.random as default random number generator #349

  • Mbs updated, code aligned to pysm 3.4.0, CO lines included plus other new foreground models #347

Version 0.13.0

25 Jun 20:05
Compare
Choose a tag to compare
  • Breaking change: new API for pointing computation #319. Here is a in-depth list of all the breaking changes in this PR:

    1. Quaternions describing the orientation of the detectors must now be encoded using a RotQuaternion object; plain NumPy arrays are no longer supported.

    2. Quaternions are now computed using the function prepare_pointings() (low-level) and the method Simulation.prepare_pointings() (high-level, you should use this). Pointings are no longer kept in memory until you retrieve them using Observation.get_pointings().

    3. Pointings are no longer accessible using the field pointings in the Observation class. (Not 100% true, see below.) They are computed on the fly by the method Observation.get_pointings().

    4. The way pointings are returned differs from how they were stored before. The result of a call to Observation.get_pointings() is a 2-element tuple: the first element contains a (N, 3) NumPy array containing the colatitude θ, the longitude φ, and the orientation ψ, while the second element is an array of the angles of the HWP. Thus, the orientation angle ψ is now stored together with θ and φ.

    5. If you want to pre-compute all the pointings instead of computing them on the fly each time you call Observation.get_pointings(), you can use the function precompute_pointings() (low-level) and the method Simulation.precompute_pointings() (high-level). This initializes a number of fields in each Observation object, but they are shaped as described in the previous point, i.e., ψ is kept in the same matrix as θ and φ.

    6. The argument dtype_tod of the method Simulation.create_observations has become tod_type for consistency with other similar parameters.

    7. The format of the HDF5 files has been slightly changed to let additional information about pointings to be stored.

    See the comments in PR#319 and discussion #312 for more details.

  • Add data splits in time and detector space to destriped maps #309

  • Fix issue #317

  • Implement a time profiler #308

Version 0.12.0

15 Mar 12:43
Compare
Choose a tag to compare
  • Breaking change: Disambiguate between “polarization angle” and “orientation” #305. A few functions have been renamed as a consequence of this change; however, they are low-level functions that are used internally (compute_pointing_and_polangle, all_compute_pointing_and_polangle, polarization_angle), so external codes should be unaffected by this change.

  • Breaking change: Reworking of the IO, write_observations and read_observations are now part of the class simulation #293

  • Mbs optionally returns alms instead of maps #306

  • Include the possibility to pass components to fill_tods, add_dipole and add_noise #302

  • Add data splits in time and detector space to binned maps #291

  • Add support for partial multithreading using Numba #276

  • Fixing bug in mbs to pass general bandpass to mbs #271

  • Support for numpy.float128 made optional, this fixes importing issue on ARM architectures #286

  • Improve the documentation about noise simulations #283

  • Use libinsdb to access the IMO #282

  • Move from flake8/black to ruff #281

  • New module to simulate HWP systematics #232

Version 0.11.0

10 Nov 15:26
Compare
Choose a tag to compare
  • Breaking change: Change the interface to the binner, implement a new destriper, and make the dependency on TOAST optional #260

  • Breaking change: Drop support for Python 3.7 and 3.8 #254

  • Breaking change: Fix noise seed inconsistency #256

  • Implement a bandpass generator #160, #200

  • Include default PTEP IMO for tests and demos #230

  • Be more robust when parsing UUIDs and URLs coming from the IMo #274

  • Solve typing error in destriper #272

  • Fixed typo in timeordered.rst #250

  • Fix error in reading observation when it does not have tod field #262

  • Bug in mbs for band integration solved #251

Version 0.10.0

17 Jun 08:34
Compare
Choose a tag to compare
  • Some memory optimization #245

  • Improve the docstring for scan_map_in_observations #248

  • New interface for make_bin_map in Simulation #244

  • Added gain drift simulation module #243

  • Enable the use of other names than tod when calling the TOAST2 destriper #242

  • Use Poetry instead of Pip to specify the dependencies for the documentation #237

  • Remove bandpass-related warnings #236

  • Add TOD interpolation #233

  • Improve the documentation #231

  • Mbs supports generic bandpasses and can generate solar dipole #227

  • Improve the support for multiple TODs in the same Observation #225