|
| 1 | +ctapipe v0.30.0 (2026-03-20) |
| 2 | +============================ |
| 3 | + |
| 4 | +API Changes |
| 5 | +----------- |
| 6 | + |
| 7 | +- Rename "konrad" weights to "aspect-weighted-intensity" weights. |
| 8 | + |
| 9 | + Rename "Konrad" weights in ``HillasIntersection`` to "harmonic-mean-intensity". [`#2880 <https://github.com/cta-observatory/ctapipe/pull/2880>`__] |
| 10 | + |
| 11 | +- As a consequence of fixing the bug #2921, `ctapipe.core.ExpressionEngine` |
| 12 | + converts all input tables to `astropy.table.QTable` internally, which has a |
| 13 | + small side effect on what is allowed in expressions: all columns with units are |
| 14 | + now of type `astropy.units.Quantity`, instead of `astropy.table.Column`. Before, |
| 15 | + an expression like ``"some_column.quantity.to(u.m)"`` would work if a ``Table`` |
| 16 | + was passed (but would fail for a ``QTable``). Now, that expression should be |
| 17 | + ``some_column.to(u.m)`` [`#2921 <https://github.com/cta-observatory/ctapipe/pull/2921>`__] |
| 18 | + |
| 19 | +- Extended ``MonitoringSource`` with ``get_table()`` and ``get_values()`` methods |
| 20 | + for direct table access and time-based value interpolation. Implemented these |
| 21 | + methods in ``HDF5MonitoringSource`` with proper coordinate frame handling for |
| 22 | + telescope pointings. [`#2933 <https://github.com/cta-observatory/ctapipe/pull/2933>`__] |
| 23 | + |
| 24 | + |
| 25 | +Bug Fixes |
| 26 | +--------- |
| 27 | + |
| 28 | +- Fixed bug where units were incorrect in the output table of an |
| 29 | + `ctapipe.core.FeatureGenerator` if a table of class `astropy.table.Table` was |
| 30 | + passed to the call method. This bug did not affect calls using an |
| 31 | + `astropy.table.QTable`. [`#2921 <https://github.com/cta-observatory/ctapipe/pull/2921>`__] |
| 32 | + |
| 33 | +- Fixed bug where the ``is_valid`` field in the ``DL1CameraContainer`` returned by the ``VarianceExtractor`` was not being set correctly. [`#2930 <https://github.com/cta-observatory/ctapipe/pull/2930>`__] |
| 34 | + |
| 35 | +- Fix PointingInterpolator override in the loop over the telescopes in HDF5MonitoringSource. [`#2933 <https://github.com/cta-observatory/ctapipe/pull/2933>`__] |
| 36 | + |
| 37 | +- Fixed bug where telescope-wise fixed pointing tables were merged/appended/copied |
| 38 | + by default even if ``telescope_events`` flag were set to false. [`#2936 <https://github.com/cta-observatory/ctapipe/pull/2936>`__] |
| 39 | + |
| 40 | +- Fixed incorrect trigger compatibility check in ``HDF5EventSource.is_compatible``. |
| 41 | + |
| 42 | + ``has_trigger`` was mistakenly checking ``SIMULATION_TEL_TABLE`` due to a |
| 43 | + copy-paste error. It now correctly checks for the presence of DL1 trigger tables. [`#2949 <https://github.com/cta-observatory/ctapipe/pull/2949>`__] |
| 44 | + |
| 45 | + |
| 46 | +Data Model Changes |
| 47 | +------------------ |
| 48 | + |
| 49 | +- Add data quality monitoring groups to the HDF5 data format specification. [`#2965 <https://github.com/cta-observatory/ctapipe/pull/2965>`__] |
| 50 | + |
| 51 | + |
| 52 | +New Features |
| 53 | +------------ |
| 54 | + |
| 55 | +- Introduces the `~ctapipe.io.EventPreprocessor` class that can generically |
| 56 | + transform an event table by applying the following steps: |
| 57 | + |
| 58 | + * Generate new or rename existing columns with a `~ctapipe.core.FeatureGenerator` |
| 59 | + * Select "good" event rows with a `~ctapipe.core.QualityQuery` |
| 60 | + * Select which columns to output (by setting the ``features`` configuration |
| 61 | + attribute of the `~ctapipe.io.EventPreprocessor`) |
| 62 | + |
| 63 | + This is useful for doing the final steps of DL2 processing, and will eventually |
| 64 | + replace what is in `~ctapipe.io.DL2EventPreprocessor` and `~ctapipe.io.DL2EventLoader`, which will be deprecated in a future release. |
| 65 | + |
| 66 | + The `~ctapipe.io.EventPreprocessor` also includes the ability to pre-configure |
| 67 | + itself for specific use cases by setting the ``feature_set`` option. Currently |
| 68 | + only two are implemented: ``feature_set=dl2_irf``, which defines the transforms, |
| 69 | + event selection, and output features for processing simulated DL2 events, and |
| 70 | + ``feature_set=custom``, which has no pre-configuration and requires all |
| 71 | + parameters to be set by the user in a config file. More can be added by adding |
| 72 | + to the registry. |
| 73 | + |
| 74 | + The functionality of `~ctapipe.io.DL2EventLoader` can be mimicked with the following: |
| 75 | + |
| 76 | + .. code-block:: python |
| 77 | +
|
| 78 | + from ctapipe.io import TableLoader, EventPreprocessor |
| 79 | + from astropy.table import vstack |
| 80 | +
|
| 81 | + DL2FILE = "some_dl2_file.h5" |
| 82 | + with TableLoader(DL2FILE, dl2=True, simulated=True, observation_info=True) as loader: |
| 83 | + preprocess = EventPreprocessor(feature_set="dl2_irf") |
| 84 | + events = vstack( |
| 85 | + [ |
| 86 | + preprocess(QTable(c.data)) |
| 87 | + for c in loader.read_subarray_events_chunked(chunk_size=100_000) |
| 88 | + ] |
| 89 | + ) |
| 90 | +
|
| 91 | +
|
| 92 | + This also introduces a helper function `~ctapipe.coordinates.altaz_to_nominal` |
| 93 | + to convert columns of alt/az coordinates to FOV coordinates in the |
| 94 | + `~ctapipe.coordinates.NominalFrame`, which works with the |
| 95 | + `~ctapipe.core.FeatureGenerator`. [`#2928 <https://github.com/cta-observatory/ctapipe/pull/2928>`__] |
| 96 | + |
| 97 | +- Add option to filter out telescope events using their trigger ``EventType`` |
| 98 | + in ``SoftwareTrigger``. |
| 99 | + This is can be used e.g. to study mono telescope performance from Prod6 |
| 100 | + simulations by analyzing only telescope events with ``RANDOM_MONO`` event type |
| 101 | + or muon tagging by only analyzing ``MUON`` events. [`#2941 <https://github.com/cta-observatory/ctapipe/pull/2941>`__] |
| 102 | + |
| 103 | +- Allow to select gain for calibration events in SimTelEventSource, when skipping R1 calibration. [`#2943 <https://github.com/cta-observatory/ctapipe/pull/2943>`__] |
| 104 | + |
| 105 | +- Added ``tel_earth_locations`` lazy property to ``SubarrayDescription`` that caches telescope positions as ``EarthLocation`` objects. [`#2947 <https://github.com/cta-observatory/ctapipe/pull/2947>`__] |
| 106 | + |
| 107 | + |
| 108 | +Maintenance |
| 109 | +----------- |
| 110 | + |
| 111 | +- Pinned sphinx to 8.x until we can solve the warnings produced with 9.x, and |
| 112 | + removed some redundant (duplicated) API docs. [`#2923 <https://github.com/cta-observatory/ctapipe/pull/2923>`__] |
| 113 | + |
| 114 | +- Improve clarity and correctness of the Getting Started developer guide, fixing typos, outdated Git commands, and inconsistent terminology. [`#2948 <https://github.com/cta-observatory/ctapipe/pull/2948>`__] |
| 115 | + |
| 116 | +- Fix typos in ``README.rst`` and ``ctapipe.image.hillas.py``. [`#2956 <https://github.com/cta-observatory/ctapipe/pull/2956>`__] |
| 117 | + |
| 118 | +- Fix typos in ``ctapipe.reco.hillas_reconstructor``. [`#2957 <https://github.com/cta-observatory/ctapipe/pull/2957>`__] |
| 119 | + |
| 120 | + |
| 121 | +Refactoring and Optimization |
| 122 | +---------------------------- |
| 123 | + |
1 | 124 | ctapipe v0.29.0 (2026-01-14) |
2 | 125 | ============================ |
3 | 126 |
|
|
0 commit comments