Skip to content

Releases: cta-observatory/ctapipe

v0.18.1 – 2023-03-17

17 Mar 10:31
38d173c
Compare
Choose a tag to compare

Summary

This is a bugfix release fixing three bugs and including some maintenance changes to the repository.

See the detailed changelog in the documentation and the list of merged PRs down below.

This release is also the first to include CEP 1, the definition of the CEP process, in the released ctapipe documentation.

Contributors

@LukasBeiske, @StFroese, @Tobychev, @kosack, @maxnoe and @nbiederbeck

What has changed since v0.18.0

Pull-requests containing changes of multiple nature are repeated.

New features

Maintenance

v0.18.0 – 2023-02-09

09 Feb 14:41
3afb8e3
Compare
Choose a tag to compare

Summary

For the detailed changelog, please visit https://ctapipe.readthedocs.io/en/latest/changelog.html#ctapipe-v0-18-0-2023-02-09

Below, you can find a list of contributors and grouped list of all merged pull requests.

Contributors

@LukasBeiske, @LukasNickel, @RuneDominik, @StFroese, @Tobychev, @henningpt, @kosack, @maxnoe and @nbiederbeck

What has changed since v0.17.0

Pull-requests containing changes of multiple nature are repeated.

New features

API Changes

  • Raise error in case expected telescope-data is missing in HDF5EventSource (#2244) @RuneDominik
  • Make muon analysis part of the processing tool (#2168) @StFroese

Bug Fixes

  • Add rng attribute back to TrainEnergyRegressor (#2247) @maxnoe
  • fix import error in metadata: fails on systems without pwd (#2152) @kosack
  • Correctly setup components in dump-instrument-info, add test (#2106) @maxnoe

Refactoring and Optimization

Maintenance

v0.17.0 – 2022-09-27

28 Sep 08:29
370b6b9
Compare
Choose a tag to compare

Summary

There are three major changes in this release:

  1. It is now possible to configure multiple reconstructors to be applied (at the moment, this means you can both run HillasReconstructor and HillasIntersection using ctapipe-process).

  2. The naming scheme of telescope wise quantities at dl2 changed. In 0.16, e.g. the reconstructed impact distance to a specific telescope was HillasReconstructor_tel_distance, missing the prefix of the container the field was defined in. This is now fixed and the same column is now HillasReconstructor_tel_impact_distance.

  3. The HillasReconstructor was optimized to remove pure-python loops over telescopes which resulted in a ca. 5x speed up when running on a La Palma prod6 run.

For smaller changes and bug fixes, see blow list of merged PRs.

Contributors

@Hckjs, @HealthyPear, @LukasNickel, @StFroese, @kosack, @maxnoe and @nbiederbeck

What has changed since v0.16.0

Pull-requests containing changes of multiple nature are repeated.

New features

API Changes

Data Model Changes

Bug Fixes

  • Fix invalid case in HillasReconstructor and HillasIntersection (#2082) @maxnoe
  • Convert float32 pi/2 value to float64 pi/2 value in SimTelEventSource (#2077) @maxnoe
  • Allow data model version 4 in HDFEventSource, actually check which frame is used for hillas parameters (#2079) @maxnoe
  • Fix unreachable assertion in Provenance unit test (#2072) @HealthyPear
  • Fix wrong container used for camera frame in ImageProcessor, fixes #2062 (#2070) @maxnoe
  • Fix tables.Node.__del__ throwing exceptions on interpreter exit when writing index tables, fixes #2067 (#2069) @maxnoe
  • Sort unique cameras/types/optics to generate stable indices in hdf5, fixes #2063 (#2066) @maxnoe
  • Make ExpressionEngine be no Component. Fixes #2065. (#2068) @nbiederbeck
  • Fix camera rotation in examples/camera_rotation.py (#2056) @Hckjs
  • Report HDF5EventSource as compatible for dl2 only files, fixes #2058 (#2059) @LukasNickel
  • Merge simulated impact (#2049) @nbiederbeck
  • Fix Container.as_dict for case of flatten=True and add_prefix=True (#1887) @maxnoe

Refactoring and Optimization

  • Vectorize operations in HillasReconstructor (#2036) @maxnoe

Maintenance

v0.16.0 – 2022-08-01

01 Aug 08:50
2c82d49
Compare
Choose a tag to compare

Summary

This next major release of ctapipe includes a large number of improvements and new features, as well as significant changes to the API and data model that fix outstanding problems with both. Due to the nature of these required changes and to keep the code reasonably maintainable (in this pre-1.0 release), files written by earlier versions of ctapipe are not guaranteed to be readable with this one.

Contributors

@aknierim, @kosack, @maxnoe, @nbiederbeck, @satoshifukami0115 and @vuillaut

What has changed since v0.15.0

Pull-requests containing changes of multiple nature are repeated.

New features

  • ObsConfig data model (#1973) @kosack
  • Add abstract InvalidPixelHandler and NeighborAverage implementation, apply in CameraCalibrator and TwoPassWindowSum. Pass invalid pixels to extractors. (#2023) @maxnoe
  • Get reference_location and optics/camera name from simtel metadata if available (#2018) @maxnoe
  • Add methods to read run config and shower distribution to TableLoader (#2010) @maxnoe
  • added a better template for release-drafter (#1880) @kosack
  • Add another cleaning method in cleaning.py (#1672) @satoshifukami0115
  • Round floats for hashing in instrument module, use __slots__ (#1986) @maxnoe
  • Add location of subarray reference point to SubarrayDescription (#1980) @maxnoe
  • recursively validate containers (#1976) @kosack
  • Improve units code in hillas_parameters (#1988) @maxnoe
  • Add TableLoader.read_telescope_events_by_type_chunked (#1984) @maxnoe
  • Maintain event order of input file in TableLoader, fixes #1966 (#1968) @maxnoe
  • Chunked table loader (#1935) @maxnoe
  • Read dl2 in hdf5eventsource (#1940) @maxnoe
  • add joined option to SubarrayDescription.to_table (#1939) @maxnoe
  • compute impact distance to shower axis (#1899) @kosack
  • Improved configuration of reference metadata (#1889) @kosack
  • Allow passing already opened h5file to table loader (#1933) @maxnoe
  • Add overwrite option to write_table (#1932) @maxnoe
  • Support reading files created with extract_calibevent (#1929) @maxnoe
  • improve array display (#1911) @kosack

API Changes

  • Use n_ prefix consistently, (rename all num_ to n_), fixes #986 (#2046) @maxnoe
  • Remove cutflow (#1766) @maxnoe
  • Add pixel, channel, sample information to CameraReadout, update OpticsDescription (#2019) @maxnoe
  • Remove support for by_type split files (#2032) @maxnoe
  • Rework h5 metadata (#2003) @maxnoe
  • Use pytest fixtures in unit tests instead of from_name methods (#1985) @maxnoe
  • Store both equivalent and effective focal length in OpticsDescription, add __slots__ (#1923) @maxnoe
  • Replace deepcopying defaults with default_factory (#1991) @maxnoe
  • Use module of Tool to setup logging (#1964) @maxnoe
  • Add QualityQuery.get_table_mask, compile python code (#1943) @maxnoe
  • Load all dl2 available groups in TableLoader (#1934) @maxnoe
  • Use container classes for TableReader.read method, do not reuse same container instance (#1921) @maxnoe

Data Model Changes

  • ObsConfig data model (#1973) @kosack
  • Rename ReconstructedContainer.tel_ids -> telescopes, fixes 1953 (#2044) @maxnoe
  • Use n_ prefix consistently, (rename all num_ to n_), fixes #986 (#2046) @maxnoe
  • Add pixel, channel, sample information to CameraReadout, update OpticsDescription (#2019) @maxnoe
  • Rework h5 metadata (#2003) @maxnoe
  • Fix datalevels (#2004) @maxnoe
  • Store both equivalent and effective focal length in OpticsDescription, add __slots__ (#1923) @maxnoe
  • Rework container prefix handling (#1949) @maxnoe
  • Add location of subarray reference point to SubarrayDescription (#1980) @maxnoe
  • compute impact distance to shower axis (#1899) @kosack

Bug Fixes

  • Fix missing f-string (#2043) @nbiederbeck
  • Fix columns order when string column present, fixes #2041 (#2042) @maxnoe
  • Fix writing and merging of dl2 statistics, fixes #1884 (#1885) @maxnoe
  • Fix pixel rotation for very large offsets in NominalFrame (#2037) @maxnoe
  • Fix wrong pixel area and rotation in nominal frame, fixes #2028 (#2029) @maxnoe
  • Fix error message for missing effective focal length (#2026) @maxnoe
  • Remove restriction on existing file in EventSource.input_url, fixes #1821 (#1998) @maxnoe
  • Fix TableLoader reading empty table (#2013) @nbiederbeck
  • Fix datalevels (#2004) @maxnoe
  • Include number of mirror tiles in guessing keys to be able to distinguish between MAGIC 1 and MAGIC 2 (#1977) @maxnoe
  • Use correct traitlet for event type enum in eventtypefilter (#2002) @maxnoe
  • Add dl2 datalevel in hdf5 source, add datalevel tests (#2001) @maxnoe
  • Ignore unknown column metadata in read_table (#1992) @maxnoe
  • Fix comparison of timestamps in calibration code (#1987) @maxnoe
  • Fix missing start/stop for reading impact table, use correct type in simteleventsource (#1982) @maxnoe
  • Hash rounded versions of floats for CameraGeometry (#1956) @maxnoe
  • Fix impact being written for non-triggered telescopes, fixes #1961 (#1967) @maxnoe
  • fixed bug that prevented printing of QualityQuery (#1958) @kosack
  • Fix ArrayDisplay creating legend in wrong axes with multiple axes active (#1946) @maxnoe
  • Store true_image_sum also when true image is not written (#1893) @maxnoe
  • Better error message in case unknown telescopes are selected, fixes #1924 (#1925) @maxnoe
  • Minor visual bugfix: better html repr for Tool and Component (#1905) @kosack

Refactoring and Optimization

  • Use tel_id consistently (replacing telid -> tel_id), fixes #1457 (#2045) @maxnoe
  • Remove cutflow (#1766) @maxnoe
  • Add 'raises' to run_tool, which raises exceptions instead of logging them. (#2038) @nbiederbeck
  • ExpressionEngine for QualityQuery and FeatureGenerator (#2014) @nbiederbeck
  • Return tuples from SubArray properties, add suport for single value in get_tel_ids (#2027) @maxnoe
  • Use pytest fixtures in unit tests instead of from_name methods (#1985) @maxnoe
  • Ignore containers and maps by default in HDF5Writer (#1945) @maxnoe
  • Hdf5EventSource performance improvements and skip empty events, fixes #1916 (#1917) @maxnoe
  • Directly return peak position from neighbor average waveform (#1914) @maxnoe

Maintenance

  • updated incorrect comments in base_config.yaml (#2040) @kosack
  • Remove support for by_type split files (#2032) @maxnoe
  • Fixed Typo in docstring (#2009) @aknierim
  • added a better template for release-drafter (#1880) @kosack
  • Add flake8 pre-commit hook. Change black hook to also format notebooks. (#1993) @nbiederbeck
  • Avoid warning in case of reading DL1a only files with HDF5EventSource (#1994) @maxnoe
  • Automatically include fields in docstrings for containers (#1990) @maxnoe
  • Create a fresh ArrayEventContainer for each event in HDF5EventSource (#1970) @maxnoe
  • Create a fresh ArrayEventContainer for each event in SimTelEventSource (#1952) @maxnoe
  • Update CI actions versions (#1951) @maxnoe
  • Simplify units code in subarray (#1950) @maxnoe
  • Use a simple kwarg instead of a traitlet for TableLoader.h5file (#1937) @maxnoe
  • Improve TableLoader docs, fixes #1930 (#1931) @maxnoe
  • Print version info in pytest header (#1919) @maxnoe

v0.15.0 – 2022-05-23

23 May 09:36
d7478e0
Compare
Choose a tag to compare

What's Changed since v0.14.0

The main change in this release is that the SimTelEventSource will use the effective focal length,
which is the focal length corrected for the mean effect of aberrations like coma, by default.
This will raise an error if this information is not available in the input file (which is the case for files from before prod5).

To analyze these files with ctapipe 0.15, you need to pass the SimTelEventSource.focal_length_choice="nominal".
Using the effective focal length much improves the off-axis angular resolution of e.g. the HillasReconstructor.

  • Use effective focal length by default, always guess telescope names from nominal (#1910) @maxnoe
  • Fix ctapipe license in tutorial (#1907) @maxnoe
  • Fix merge tool in case --skip-images is given but no images in input file (#1906) @maxnoe
  • Keep z coordinate in tilted ground frame (#1903) @maxnoe
  • Fix HDF5EventSource.len to take max_events into account (#1897) @maxnoe
  • Add alias for prov log (#1890) @maxnoe
  • update README for v0.14.0 (#1886) @kosack
  • Fix setting up logging hierarchy, fixes #1882 (#1883) @maxnoe

Contributors

@kosack and @maxnoe

v0.14.0 – 2022-04-14

14 Apr 10:23
0612a33
Compare
Choose a tag to compare

What's Changed since v0.13.0

This release fixes an important issue in the stereo reconstruction: the quality criteria for individual telescope events to enter into the stereo reconstruction were not applied correctly. Fixing this required an API change.
The quality criteria are now part of the Reconstructor as StereoQualityQuery, not part of the ShowerProcessor any more. As part of this change, we also added back support for using the HillasIntersection additionally to the HillasReconstructor.

The second large change is the addition of support for two better formats for config files. Additionally to the json supported before, ctapipe now also supports yaml and toml configuration files and tools support giving multiple configuration files.

  • Fix bug in ShowerProcessor / HillasReconstructor not using QualityQuery correctly, add support for HillasIntersection in ShowerProcessor (#1875) @maxnoe
  • allow YAML and TOML config files and multiple configs (#1856) @kosack
  • Remove parallel=True for neighbor_waveform_sum, fixes #1532 (#1878) @maxnoe
  • Add switch to ImageProcessor to enable/disable ImageModifier (#1873) @maxnoe

Contributors

@kosack and @maxnoe

v0.13.0 – 2022-04-08

08 Apr 14:55
9b2ea31
Compare
Choose a tag to compare

This is mainly a maintenance release updating the versions of some core depedencies (python >= 3.8, astropy >= 5.0) but there are also some changes to the data model and format and a couple of new features and bug fixes.

What's Changed since v0.12.0

Contributors

@HealthyPear, @LukasNickel, @kosack, @maxnoe and @vuillaut

v0.12.0 – 2021-11-23

23 Nov 10:02
22655d1
Compare
Choose a tag to compare

What's Changed since v0.11.0

The main changes in this release are related to expanding the data model to include DL2 and the computation of DL2 parameters. This also required changing the units of some DL1 parameters from the CameraFrame to the TelescopeFrame to make them easier to compare between telescopes, which includes an overhaul of how the HillasReconstructor works (supporting both frames as input), and adds include a new Component ShowerProcessor that generates DL2(a) information. The data model was expanded to include DL2 and to support a more general InstrumentDescription serialization. DL1Writer was refactored into a general DataWriter that writes the full data model. TableLoader provides a user interface to load all events at once from ctapipe output files, joining them as needed, which is useful for benchmarking.

The ctapipe-stage1 tool was removed and replaced with the more general ctapipe-process, which can now handle any transformation from R0 to DL2a, depending on what configuration file it is given. A ctapipe-quickstarttool was added to generate some starting config files, and a ctapipe-fileinfo tool to show file header information for any files written by ctapipe.

New Features

Breaking Changes

Both of these change the data model, but the code remains backward-compatible.

  • Use indices for camera / optics lookup in from_hdf / to_hdf (#1426) @maxnoe
  • Hillas parameters in telescope frame (optionally) (#1591) @LukasNickel
  • ctapipe-stage1 refactored into ctapipe-process (#1726)

Performance Improvements

Bug Fixes and Refactoring

Documentation, Testing, and Build updates

a big change is that tests are now parallelizable, leading to faster results from the CI system.

Contributors

@Hckjs, @HealthyPear, @LukasNickel, @kosack, @maxnoe, @nbiederbeck and @vuillaut

v0.11.0

10 May 14:17
b4d1e29
Compare
Choose a tag to compare

What's Changed since v0.10.5

This is a major upgrade due to the removal of some deprecated and internally unused modules and functions.
We also changed the default of CameraCalibrator.apply_waveform_timeshift and invalid configuration options will now raise an error,
so some configs might need updates.

One major change is that the event sources now will adapt the subarray and trigger info if allowed_tels is used.

Breaking changes

New features

Bug fixes / maintenance

Contributors

@HealthyPear, @LukasNickel, @maxnoe, @orelgueta and @vuillaut

v0.10.5

04 Mar 13:30
d853908
Compare
Choose a tag to compare

What's Changed since v0.10.4

  • fix a bug in twopass extractor where the timing slope was wrong (#1639) @kosack
  • Add missing f-string in dl1-merge to see broken filenames, fixes #1643 (#1644) @Hckjs
  • Make sure each test gets a copy of event/subarray (#1637) @maxnoe

Contributors

@Hckjs, @kosack and @maxnoe