|
| 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 | + |
1 | 247 | ctapipe v0.20.0 (2023-09-11)
|
2 | 248 | ============================
|
3 | 249 |
|
|
0 commit comments