Skip to content

Commit 388937e

Browse files
authored
Merge pull request #2968 from cta-observatory/prepare-0.30
Prepare release 0.30
2 parents 5d985bc + 32c640e commit 388937e

21 files changed

Lines changed: 132 additions & 81 deletions

.mailmap

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,3 +113,5 @@ Christian Arauner <christian.arauner@tu-dortmund.de> <69584019+ChAr-De@users.nor
113113
Leonid Burmistrov <leonid.burmistrov@unige.ch>
114114
Leonid Burmistrov <leonid.burmistrov@unige.ch> <burm.leonid@gmail.com>
115115
Leonid Burmistrov <leonid.burmistrov@unige.ch> <55189646+burmist-git@users.noreply.github.com>
116+
117+
Yaocheng Chen <yaocheng.chencyc@gmail.com>

AUTHORS

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ Tino Michael <tino.michael@cea.fr>
99
Tomas Bylund <tomas.bylund@cea.fr>
1010
Christoph Toennis <christoph.toennis1988@gmail.com>
1111
Leonid Burmistrov <leonid.burmistrov@unige.ch>
12-
Jonas Hackfeld <jonas.hackfeld@ruhr-uni-bochum.de>
1312
Mykhailo Dalchenko <mykhailo.dalchenko@cern.ch>
13+
Jonas Hackfeld <jonas.hackfeld@ruhr-uni-bochum.de>
1414
Lukas Nickel <lukas.nickel@tu-dortmund.de>
1515
Noah Biederbeck <noah.biederbeck@tu-dortmund.de>
1616
Georg Schwefer <georg.schwefer@mpi-hd.mpg.de>
@@ -32,6 +32,7 @@ Kai Brügge <kai.bruegge@tu-dortmund.de>
3232
Felix Werner <felix.werner@mpi-hd.mpg.de>
3333
Satoshi Fukami <fukami@icrr.u-tokyo.ac.jp>
3434
Michele Mastropietro <michele.mastropietro@gmail.com>
35+
Yaocheng Chen <yaocheng.chencyc@gmail.com>
3536
Ruo-yu Shang <ryshang@tehanu.nevis.columbia.edu>
3637
Jeremie DECOCK <jd.jdhp@gmail.com>
3738
Shahjahan Iqbal <58781427+shahjahanIqbal@users.noreply.github.com>

CHANGES.rst

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,126 @@
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+
1124
ctapipe v0.29.0 (2026-01-14)
2125
============================
3126

docs/_static/switcher.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@
99
"version": "stable",
1010
"url": "https://ctapipe.readthedocs.io/en/stable/"
1111
},
12+
{
13+
"name": "v0.30.0",
14+
"version": "v0.30.0",
15+
"url": "https://ctapipe.readthedocs.io/en/v0.30.0/"
16+
},
1217
{
1318
"name": "v0.29.0",
1419
"version": "v0.29.0",

docs/changes/2880.api.rst

Lines changed: 0 additions & 3 deletions
This file was deleted.

docs/changes/2921.api.rst

Lines changed: 0 additions & 7 deletions
This file was deleted.

docs/changes/2921.bugfix.rst

Lines changed: 0 additions & 4 deletions
This file was deleted.

docs/changes/2923.maintenance.rst

Lines changed: 0 additions & 2 deletions
This file was deleted.

docs/changes/2928.feature.rst

Lines changed: 0 additions & 41 deletions
This file was deleted.

docs/changes/2930.bugfix.rst

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)