Releases: litebird/litebird_sim
Version 0.16.0
-
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
Version 0.15.2
- Add more tutorials #443
Version 0.15.1
-
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
-
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
andMbsparams
used inHwpSys.set_parameters()
have been renamed tochannel
andmbs_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]
andskip 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()
andHWP.add_hwp_angle()
, remove deprecated functionsSimulation.generate_spin2ecl_quaternions()
andwrite_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
-
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 requiresObservation
as an argument. And several functions to add pointing systematics are merged intoleft_multiply_syst_quats()
. -
Breaking change: Redefinition (ωt instead of 2ωt) of the hwp angle returned by
get_pointings()
. Change in the pointing returned byObservation.get_pointings()
, now behaving as it was before this commit. Documentation updated accordingly. #340 -
Breaking change: Change to the pointing API #358, in detail:
-
DetectorInfo has three new attributes: pol_angle_rad (polarization angle), pol_efficiency (polarization efficiency)and mueller_hwp (mueller matrix of the HWP).
-
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 variablehas_hwp
that is set to true if an HWP object is passed toprepare_pointings()
. -
The mock vPTEP IMo has been updated accordingly.
-
The
HWP
class has a new field called mueller, that contains the mueller matrix of the HWP. -
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
-
Breaking change: new API for pointing computation #319. Here is a in-depth list of all the breaking changes in this PR:
-
Quaternions describing the orientation of the detectors must now be encoded using a
RotQuaternion
object; plain NumPy arrays are no longer supported. -
Quaternions are now computed using the function
prepare_pointings()
(low-level) and the methodSimulation.prepare_pointings()
(high-level, you should use this). Pointings are no longer kept in memory until you retrieve them usingObservation.get_pointings()
. -
Pointings are no longer accessible using the field
pointings
in theObservation
class. (Not 100% true, see below.) They are computed on the fly by the methodObservation.get_pointings()
. -
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 φ. -
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 functionprecompute_pointings()
(low-level) and the methodSimulation.precompute_pointings()
(high-level). This initializes a number of fields in eachObservation
object, but they are shaped as described in the previous point, i.e., ψ is kept in the same matrix as θ and φ. -
The argument
dtype_tod
of the methodSimulation.create_observations
has becometod_type
for consistency with other similar parameters. -
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 change. -
Breaking change: Reworking of the IO,
write_observations
andread_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
toruff
#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
-
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
-
Some memory optimization #245
-
Improve the docstring for
scan_map_in_observations
#248 -
New interface for
make_bin_map
inSimulation
#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