Skip to content

Commit 7ac2feb

Browse files
authored
Merge pull request #2550 from cta-observatory/prepare_v0.21.0
Prepare changelog for 0.21.0
2 parents 49c9ab8 + 0101dbf commit 7ac2feb

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+255
-190
lines changed

CHANGES.rst

Lines changed: 246 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,249 @@
1+
Ctapipe v0.21.0 (2024-04-25)
2+
============================
3+
4+
5+
API Changes
6+
-----------
7+
8+
- ``reference_location`` is now a required argument for ``SubarrayDescription``
9+
[`#2402 <https://github.com/cta-observatory/ctapipe/pull/2402>`__]
10+
11+
- ``CameraGeometry.position_to_pix_index`` will now return the minimum integer value for invalid
12+
pixel coordinates instead of -1 due to the danger of using -1 as an index in python accessing
13+
the last element of a data array for invalid pixels.
14+
The function will now also no longer raise an error if the arguments are empty arrays and instead
15+
just return an empty index array.
16+
The function will also no longer log a warning in case of coordinates that do not match a camera pixel.
17+
The function is very low-level and if not finding a pixel at the tested position warrants a warning or
18+
is expected will depend on the calling code. [`#2397 <https://github.com/cta-observatory/ctapipe/pull/2397>`__]
19+
20+
- Change the definition of the ``leakage_pixels_width_{1,2}`` image features
21+
to give the ratio of pixels at the border to the pixels after cleaning
22+
instead of to the total number of pixels of the camera. [`#2432 <https://github.com/cta-observatory/ctapipe/pull/2432>`__]
23+
24+
- Change how the ``DataWriter`` writes pointing information.
25+
Before, each unique pointing position was written in a table
26+
with the event time as index column into ``dl1/monitoring/telescope/pointing``.
27+
28+
This has two issues: For observed data, each pointing will be unique
29+
in horizontal coordinates due to tracking a fixed ICRS coordinate.
30+
Resulting in a pointing position written for each event, although the
31+
resolution of the monitoring is much lower.
32+
For simulated events, the event time is the timestamp of the simulation
33+
and pointing is fixed in ``AltAz``.
34+
``ctapipe`` was using the closest point in time for simulated events when
35+
reading data back in, however, this is problematic in case of many
36+
simulation runs processed in parallel.
37+
38+
We now store the first received pointing information
39+
in the ``configuration/telescope/pointing`` table per obs id,
40+
only for simulation events. [`#2438 <https://github.com/cta-observatory/ctapipe/pull/2438>`__]
41+
42+
- Replace ``n_signal`` and ``n_background`` options in ``ctapipe-train-particle-classifier``
43+
with ``n_events`` and ``signal_fraction``, where ``signal_fraction`` = n_signal / (n_signal + n_background). [`#2465 <https://github.com/cta-observatory/ctapipe/pull/2465>`__]
44+
45+
- Move the ``TableLoader`` options from being traitlets to
46+
each ``read_...`` method allowing to load different data with the
47+
same TableLoader-Instance.
48+
49+
In addition the default values for the options have changed. [`#2482 <https://github.com/cta-observatory/ctapipe/pull/2482>`__]
50+
51+
- Adding monitoring: MonitoringCameraContainer as keyword argument to
52+
the ``ImageCleaner`` API so cleaning algorithms can now access
53+
relevant information for methods that e.g. require monitoring information. [`#2511 <https://github.com/cta-observatory/ctapipe/pull/2511>`__]
54+
55+
- Unified the options for DataWriter and the data level names:
56+
57+
+-------------------------+--------------------------+
58+
| Old | New |
59+
+=========================+==========================+
60+
| ``write_raw_waveforms`` | ``write_r0_waveforms`` |
61+
+-------------------------+--------------------------+
62+
| ``write_waveforms`` | ``write_r1_waveforms`` |
63+
+-------------------------+--------------------------+
64+
| ``write_images`` | ``write_dl1_images`` |
65+
+-------------------------+--------------------------+
66+
| ``write_parameters`` | ``write_dl1_parameters`` |
67+
+-------------------------+--------------------------+
68+
| ``write_showers`` | ``write_dl2`` |
69+
+-------------------------+--------------------------+
70+
71+
This changes requires that existing configuration files are updated
72+
if they use these parameters [`#2520 <https://github.com/cta-observatory/ctapipe/pull/2520>`__]
73+
74+
75+
Bug Fixes
76+
---------
77+
78+
- Ensure that ``SubarrayDescription.reference_location`` is always generated by
79+
```SimTelEventSource``, even if the metadata is missing. In that case, construct a
80+
dummy location with the correct observatory height and latitude and longitude
81+
equal to zero ("Null Island").
82+
83+
- Fixed the definition of ``h_max``, which was both inconsistent between
84+
`~ctapipe.reco.HillasReconstructor` and `~ctapipe.reco.HillasIntersection`
85+
implementations, and was also incorrect since it was measured from the
86+
observatory elevation rather than from sea level.
87+
88+
The value of ``h_max`` is now defined as the height above sea level of the
89+
shower-max point (in meters), not the distance to that point. Therefore it is
90+
not corrected for the zenith angle of the shower. This is consistent with the
91+
options currently used for *CORSIKA*, where the *SLANT* option is set to false,
92+
meaning heights are actual heights not distances from the impact point, and
93+
``x_max`` is a *depth*, not a *slant depth*. Note that this definition may be
94+
inconsistent with other observatories where slant-depths are used, and also note
95+
that the slant depth or distance to shower max are the more useful quantities
96+
for shower physics. [`#2403 <https://github.com/cta-observatory/ctapipe/pull/2403>`__]
97+
98+
- Add the example config for ctapipe-train-disp-reconstructor
99+
to the list of configs generated by ctapipe-quickstart. [`#2414 <https://github.com/cta-observatory/ctapipe/pull/2414>`__]
100+
101+
- Do not use a hidden attribute of ``SKLearnReconstructor`` in ``ctapipe-apply-models``. [`#2418 <https://github.com/cta-observatory/ctapipe/pull/2418>`__]
102+
103+
- Add docstring for ``ctapipe-train-disp-reconstructor``. [`#2420 <https://github.com/cta-observatory/ctapipe/pull/2420>`__]
104+
105+
- Remove warnings about missing R1 or DL0 data when using the CameraCalibrator.
106+
These were previously emitted directly as python warnings and did not use the
107+
component logging system, which they now do.
108+
As we do not actually expect R1 to be present it was also moved down to
109+
debug level. [`#2421 <https://github.com/cta-observatory/ctapipe/pull/2421>`__]
110+
111+
- Check that the array pointing is given in horizontal coordinates
112+
before training a ``DispReconstructor``. [`#2431 <https://github.com/cta-observatory/ctapipe/pull/2431>`__]
113+
114+
- Fix additional, unwanted columns being written into disp prediction output. [`#2440 <https://github.com/cta-observatory/ctapipe/pull/2440>`__]
115+
116+
- Properly transform pixel coordinates between ``CameraFrame``
117+
and ``TelescopeFrame`` in ``MuonIntensityFitter`` taking.
118+
Before, ``MuonIntensityFitter`` always used the equivalent focal
119+
length for transformations, now it is using the focal length
120+
attached to the ``CameraGeometry``, thus respecting the
121+
``focal_length_choice`` options of the event sources. [`#2464 <https://github.com/cta-observatory/ctapipe/pull/2464>`__]
122+
123+
- Fix colored logging in case of custom log levels being defined. [`#2505 <https://github.com/cta-observatory/ctapipe/pull/2505>`__]
124+
125+
- Fix a possible out-of-bounds array access in the FlashCamExtractor. [`#2544 <https://github.com/cta-observatory/ctapipe/pull/2544>`__]
126+
127+
128+
Data Model Changes
129+
------------------
130+
131+
- Remove redundant ``is_valid`` field in ``DispContainer`` and rename the remaining field.
132+
Use the same prefix for both containers filled by ``DispReconstructor``.
133+
134+
Fix default name of ``DispReconstructor`` target column.
135+
136+
Let ``HDF5EventSource`` load ``DispContainer``. [`#2443 <https://github.com/cta-observatory/ctapipe/pull/2443>`__]
137+
138+
- Change R1- and DL0-waveforms datamodel shape from (n_pixels, n_samples)
139+
to be always (n_channels, n_pixels, n_samples). ``HDF5EventSource`` was adjusted
140+
accordingly to support also older datamodel versions.
141+
142+
Re-introduce also the possibility of running ``ImageExtractor``\s on data
143+
consisting of multiple gain channels. [`#2529 <https://github.com/cta-observatory/ctapipe/pull/2529>`__]
144+
145+
146+
New Features
147+
------------
148+
149+
- Large updates to the Image Pixel-wise fit for Atmospheric Cherenkov Telescopes reconstruction method (https://doi.org/10.48550/arXiv.1403.2993)
150+
151+
* ImPACT - General code clean up and optimisation. Now updated to work similarly to other reconstructors using the standardised interface, such that it can be used ctapipe-process. Significant improvements to tests too
152+
* ImPACT_utilities - Created new file to hold general usage functions, numba used in some areas for speedup
153+
* template_network_interpolator - Now works with templates with different zenith and azimuth angles
154+
* unstructured_interpolator - Significant speed improvements
155+
* pixel_likelihood - Constants added back to neg_log_likelihood_approx, these are quite important to obtaining a well normalised goodness of fit.
156+
* hillas_intersection - Fixed bug in core position being incorrectly calculated, fixed tests too [`#2305 <https://github.com/cta-observatory/ctapipe/pull/2305>`__]
157+
158+
- Allow passing the matplotlib axes to the ``SubarrayDescription.peek`` function,
159+
fix warnings in case of layout engine being already defined. [`#2369 <https://github.com/cta-observatory/ctapipe/pull/2369>`__]
160+
161+
- Add support for interpolating a monitoring pointing table
162+
in ``TableLoader``. The corresponding table is not yet written by ``ctapipe``,
163+
but can be written by external tools.
164+
This is to enable analysis of real observations, where the pointing changes over time in
165+
alt/az. [`#2409 <https://github.com/cta-observatory/ctapipe/pull/2409>`__]
166+
167+
- Implement the overburden-to height a.s.l. transformation function in the atmosphere module
168+
and test that round-trip returns original value. [`#2422 <https://github.com/cta-observatory/ctapipe/pull/2422>`__]
169+
170+
- In case no configuration is found for a telescope in ``TelescopeParameter``,
171+
it is now checked whether the telescope exists at all to provide a better
172+
error message. [`#2429 <https://github.com/cta-observatory/ctapipe/pull/2429>`__]
173+
174+
- Allow setting n_jobs on the command line for the
175+
train_* and apply_models tools using a new ``n_jobs`` flag.
176+
This temporarily overwrites any settings in the (model) config(s). [`#2430 <https://github.com/cta-observatory/ctapipe/pull/2430>`__]
177+
178+
- Add support for using ``str`` and ``Path`` objects as input
179+
to ``ctapipe.io.get_hdf5_datalevels``. [`#2451 <https://github.com/cta-observatory/ctapipe/pull/2451>`__]
180+
181+
- The recommended citation for ctapipe has been updated to the ICRC 2023 proceeding,
182+
please update. [`#2470 <https://github.com/cta-observatory/ctapipe/pull/2470>`__]
183+
184+
- Support astropy 6.0. [`#2475 <https://github.com/cta-observatory/ctapipe/pull/2475>`__]
185+
186+
- The ``DispReconstructor`` now computes a score for how certain the prediction of the disp sign is. [`#2479 <https://github.com/cta-observatory/ctapipe/pull/2479>`__]
187+
188+
- Also load the new fixed pointing information in ``TableLoader``.
189+
190+
Add option ``keep_order`` to ``ctapipe.io.astropy_helpers.join_allow_empty``
191+
that will keep the original order of rows when performing left or right joins. [`#2481 <https://github.com/cta-observatory/ctapipe/pull/2481>`__]
192+
193+
- Add an ``AstroQuantity`` trait which can hold any ``astropy.units.Quantity``. [`#2524 <https://github.com/cta-observatory/ctapipe/pull/2524>`__]
194+
195+
- Add function ``ctapipe.coordinates.get_point_on_shower_axis``
196+
that computes a point on the shower axis in alt/az as seen
197+
from a telescope. [`#2537 <https://github.com/cta-observatory/ctapipe/pull/2537>`__]
198+
199+
- Update bokeh dependency to version 3.x. [`#2549 <https://github.com/cta-observatory/ctapipe/pull/2549>`__]
200+
201+
202+
Maintenance
203+
-----------
204+
205+
- The CI system now reports to the CTA SonarQube instance for code quality tracking [`#2214 <https://github.com/cta-observatory/ctapipe/pull/2214>`__]
206+
207+
- Updated some numpy calls to not use deprecated functions. [`#2406 <https://github.com/cta-observatory/ctapipe/pull/2406>`__]
208+
209+
- The ``ctapipe`` source code repository now uses the ``src/``-based layout.
210+
This fixes the editable installation of ctapipe. [`#2459 <https://github.com/cta-observatory/ctapipe/pull/2459>`__]
211+
212+
- Fix headings in docs. Change occurrences of ``API Reference`` to ``Reference/API`` for consistency.
213+
Change capitalization of some headings for consistency. [`#2474 <https://github.com/cta-observatory/ctapipe/pull/2474>`__]
214+
215+
- The ``from_name`` methods of instrument description classes now raise a warning
216+
that it is better to access instrument information via a ``SubarrayDescription``.
217+
218+
Also improve documentation in instrument module to explain when not to use the
219+
various ``from_name()`` methods. These are provided for the case when no event
220+
data is available, e.g. for unit testing or demos, but do not guarantee that the
221+
returned instrument information corresponds to a particular set of event data. [`#2485 <https://github.com/cta-observatory/ctapipe/pull/2485>`__]
222+
223+
- Support and test on python 3.12. [`#2486 <https://github.com/cta-observatory/ctapipe/pull/2486>`__]
224+
225+
- Drop support for python 3.9. [`#2526 <https://github.com/cta-observatory/ctapipe/pull/2526>`__]
226+
227+
228+
Refactoring and Optimization
229+
----------------------------
230+
231+
- Load data and apply event and column selection in chunks in ``ctapipe-train-*``
232+
before merging afterwards.
233+
This reduces memory usage. [`#2423 <https://github.com/cta-observatory/ctapipe/pull/2423>`__]
234+
235+
- Make default ML config files more readable and add comments. [`#2455 <https://github.com/cta-observatory/ctapipe/pull/2455>`__]
236+
237+
- Update and add missing docstrings related to the ML functionalities. [`#2456 <https://github.com/cta-observatory/ctapipe/pull/2456>`__]
238+
239+
- Add ``true_impact_distance`` to the output of ``CrossValidator``. [`#2468 <https://github.com/cta-observatory/ctapipe/pull/2468>`__]
240+
241+
- Add ``cache=True`` to some numba-compiled functions which were missing it. [`#2477 <https://github.com/cta-observatory/ctapipe/pull/2477>`__]
242+
243+
- Write cross validation results for each model out immediately after validation to free up memory earlier. [`#2483 <https://github.com/cta-observatory/ctapipe/pull/2483>`__]
244+
245+
- Compute deconvolution parameters in FlashCamExtractor only as needed. [`#2545 <https://github.com/cta-observatory/ctapipe/pull/2545>`__]
246+
1247
ctapipe v0.20.0 (2023-09-11)
2248
============================
3249

docs/_static/switcher.json

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,35 +10,25 @@
1010
"url": "https://ctapipe.readthedocs.io/en/stable/"
1111
},
1212
{
13-
"name": "v0.19.3",
14-
"version": "v0.19.3",
15-
"url": "https://ctapipe.readthedocs.io/en/v0.19.3/"
16-
},
17-
{
18-
"name": "v0.19.2",
19-
"version": "v0.19.2",
20-
"url": "https://ctapipe.readthedocs.io/en/v0.19.2/"
13+
"name": "v0.21.0",
14+
"version": "v0.21.0",
15+
"url": "https://ctapipe.readthedocs.io/en/v0.21.0/"
2116
},
2217
{
23-
"name": "v0.19.1",
24-
"version": "v0.19.1",
25-
"url": "https://ctapipe.readthedocs.io/en/v0.19.1/"
18+
"name": "v0.20.0",
19+
"version": "v0.20.0",
20+
"url": "https://ctapipe.readthedocs.io/en/v0.20.0/"
2621
},
2722
{
28-
"name": "v0.19.0",
29-
"version": "v0.19.0",
30-
"url": "https://ctapipe.readthedocs.io/en/v0.19.0/"
23+
"name": "v0.19.3",
24+
"version": "v0.19.3",
25+
"url": "https://ctapipe.readthedocs.io/en/v0.19.3/"
3126
},
3227
{
3328
"name": "v0.18.1",
3429
"version": "v0.18.1",
3530
"url": "https://ctapipe.readthedocs.io/en/v0.18.1/"
3631
},
37-
{
38-
"name": "v0.18.0",
39-
"version": "v0.18.0",
40-
"url": "https://ctapipe.readthedocs.io/en/v0.18.0/"
41-
},
4232
{
4333
"name": "v0.17.0",
4434
"version": "v0.17.0",

docs/changes/2214.maintenance.rst

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

docs/changes/2305.feature.rst

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

docs/changes/2369.feature.rst

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

docs/changes/2397.api.rst

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

docs/changes/2402.bugfix.rst

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

docs/changes/2403.bugfix.rst

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

docs/changes/2406.maintenance.rst

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

docs/changes/2409.feature.rst

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

docs/changes/2414.bugfix.rst

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

docs/changes/2418.bugfix.rst

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

docs/changes/2420.bugfix.rst

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

docs/changes/2421.bugfix.rst

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

docs/changes/2422.feature.rst

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

docs/changes/2423.optimization.rst

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

docs/changes/2429.feature.rst

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

0 commit comments

Comments
 (0)