Skip to content

Latest commit

 

History

History
297 lines (150 loc) · 18.4 KB

CHANGELOG.md

File metadata and controls

297 lines (150 loc) · 18.4 KB

HEAD

  • 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

  • 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

  • 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

  • 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 PR.

  • 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

  • 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

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

  • Solve typing error in destriper #272

  • Include default PTEP IMO for tests and demos #230

  • 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

  • Implement a bandpass generator #160, #200

Version 0.10.0

  • 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

Version 0.9.0

  • Some memory optimization in pointing production #222, coordinate rotation and noise #223

  • Implement new methods in the Simulation class: fill_tods, compute_pos_and_vel, add_dipole and add_noise #221

  • Breaking change: add multiple TOD support to describe_mpi_distribution and make the field MpiObservationDescr.tod_dtype a list of strings #220

  • Add links to the manual in the example notebook #219

  • Implement new methods in the Simulation class: set_scanning_strategy, set_instrument, set_hwp, and deprecate generate_spin2ecl_quaternions #217

  • Add gzip_compression keyword to write_observations #214

  • Run more comprehensive tests on different TOD components #212

  • Add a link to the IMO webpage @SSDC for each entity/quantity/data file included in simulation reports #211

  • Fix issue #209 #210

  • Add flag for coordinate system choice of madam output maps #208

  • Improve support for multiple TODs #205

Version 0.8.0

  • Breaking change Interface of get_pointings modified, new function get_pointings_for_observation simplifies the pointing generation for a list of observations #198

  • Ensure chronological order for Madam FITS files and make sure that exporting them to Madam works with MPI #204

  • Properly install Madam template files #202

  • Mark installation errors for rich traceback in CI builds as non fatal #199

  • Fix bug in make_bin_map #196

Version 0.7.0

  • Update and fix dependencies #192

  • Allow nnz=1 in the destriper #191

  • Improve the performance of the pointing generator #190

  • Add support for Madam (through an external call) #186

Version 0.6.0

  • Breaking change The wrapper to the TOAST2 mapmaker has been fixed, and the parameter baseline_length was renamed to baseline_length_s to make clear what the measurement unit is #182

Version 0.5.0

  • Breaking change New API for noise module #151:

    • Function add_noise has been renamed to add_noise_to_observations, and its parameter noisetype has been renamed into noise_type for consistency with other parameters (breaking)

    • New functions add_white_noise and add_one_over_f_noise are exported (they were already implemented but were not visible)

    • Each Simulation object creates random number generators (field Simulation.random), in a way that is safe even for MPI applications

  • Breaking change New API for scan_map_in_observations and add_dipole_to_observations, which now accept list of pointing matrices and simplify the parameters describing the HWP #171

  • Add a notebook to show an example of how to use the framework (#178)

  • Support the production of maps in Galactic coordinates through the TOAST2 wrapper to the Madam map-maker (#177)

  • Make make_bin_map compute pixel indices instead of requiring them as input, add support for Galactic coordinates #176

  • Use a more robust algorithm to compute pointings #175

  • Improve the documentation for the destriper #172

  • Add a high-pass filter for the noise #169

  • Upgrade NumPy from 1.20 to 1.21, Numba from 0.54 to 0.55, Rich from 6.2 to 11.0 #152

  • Add the ability to create Singularity container from branches different than master #163

  • Make MBS tests more robust against disappearing temporary directories #162

  • Remove NumPy's and Healpy's deprecation warnings #158

  • Use a cache to speed up CI builds PR#147

  • Create a script that fetches information about the latest release and produce a release announcement PR#156

  • Option for rotating the pointing from ecliptic to galactic coordinates in scan_map #164

  • Fix issue #148

Version 0.4.0

  • Breaking change Drop support for Python 3.6, enable Python 3.9 #136

  • Breaking change Rename keyword distribute to split_list_over_processes in Simulation.create_observations #110

  • Breaking change Switch to thermodynamic units in the MBS module #123

  • Functions to write/load TODs to HDF5 files #139

  • Module for simulating hwp systematics (hwp_sys) PR#117. The algebra is described in Giardiello et al.

  • Fix Singularity builds #145

  • Make the TOAST destriper more robust when MPI is/isn't present #106

  • Option in Mbs for maps in ecliptic coordinates #133

  • Module for scanning a map and filling TOD #131

Version 0.3.0

Version 0.2.1

Version 0.2.0

Version 0.2.0 alpha

  • Add a text-mode browser for the IMO PR#103

  • Implement the tools to build a Singularity container PR#96

  • Implement an interface to the TOAST mapmaker PR#86

  • Fix issue #101 (No proper "parents" in Entry objects) PR#102

  • Make the README point to the latest version of the documentation PR#99

  • Ensure that tests do not write within the source-code directory PR#97

  • Add a STATUS.md file showing the overall implementation status of the simulation modules PR#87

  • Clarify how the IMO is used by litebird_sim PR#94

  • Make tests run faster by using ducc0 0.8.0 PR#92

  • Misc minor changes: gitignore .DS_Store; losslessly compress some assets PR#88

  • Improve the Observation API. Deprecate the pointing-related methods (moved to scanning), quantities are local by default PR#84

  • Permit to use pre-allocated buffers when generating quaternions and pointing angles PR#83

  • Add support for PySM3 in new class Mbs PR#76

  • Add the parameter include_git_diff in Simulation.flush() PR#81

  • Add the ability to specify the size of the floating-point type used in Observation objects PR#79

  • Simple bin map-maker PR#73

  • Use SI units in class SpinningScanningStrategy (breaking change) PR#69

  • Use dataclasses, rename Detector to DetectorInfo and Instrument to InstrumentInfo (breaking change) PR#60

  • Improve the docs PR#72, PR#82

  • Code cleanups PR#71

  • Improve the README PR#70

  • Fix issue #61

Version 0.1.0

  • First release