|
| 1 | +ctapipe v0.27.0 (2025-10-10) |
| 2 | +============================ |
| 3 | + |
| 4 | +This release contains a major breaking change and introduction of a new plugin interface, |
| 5 | +both concerned with how monitoring data is handled in ctapipe. |
| 6 | + |
| 7 | +The existing data structures have been reworked and a new ``MonitoringSource`` Interface |
| 8 | +and plugin entry point are now defined. |
| 9 | + |
| 10 | +See below for details and other smaller new features and bug fixes. |
| 11 | + |
| 12 | + |
| 13 | +API Changes |
| 14 | +----------- |
| 15 | + |
| 16 | +- Update definition of the ``ctapipe.containers.EventType`` enum |
| 17 | + to match an updated definition in the CTAO R1 and DL0 data models. |
| 18 | + |
| 19 | + ``SKY_PEDESTAL=2`` is changed to the generic ``PEDESTAL``, |
| 20 | + which is expected from most cameras in real data. |
| 21 | + |
| 22 | + New types added are ``SKY_PEDESTAL=5`` and ``RANDOM_MONO=18``. |
| 23 | + |
| 24 | + These types were previously assigned at the subarray event level |
| 25 | + but in fact are per telescope event in the data model. |
| 26 | + A new field ``event_type`` was added to the ``TelescopeTriggerContainer`` |
| 27 | + and will be filled by the ``EventSource``-implementations in ctapipe. [`#2769 <https://github.com/cta-observatory/ctapipe/pull/2769>`__] |
| 28 | + |
| 29 | +- Refactor old containers (breaking changes) and implement calibpipe-datapipe interface using a new ``MonitoringSource()`` mechanism. |
| 30 | + |
| 31 | + * Remove containers ``DL1CameraCalibrationContainer``, ``FlatFieldContainer``, ``PedestalContainer``, ``PixelStatusContainer``, and ``WaveformCalibrationContainer`` |
| 32 | + * Add containers ``CameraCalibrationContainer``, ``MonitoringTelescopeContainer``, ``ChunkStatisticsContainer``, ``PixelStatisticsContainer``, and ``ArrayPointingContainer`` |
| 33 | + * Modify containers ``MonitoringContainer``, ``MonitoringCameraContainer``, ``PointingContainer``, ``TelescopePointingContainer``, and ``StatisticsContainer``, |
| 34 | + * Move pointing tree of ``ArrayEventContainer`` into the monitoring tree. |
| 35 | + * Remove calibration tree of ``ArrayEventContainer``. Information is retrieved from the ``monitoring.tel[tel_id].camera.coefficients`` tree. |
| 36 | + * Implement ``MonitoringSource()`` to handle different monitoring data sources |
| 37 | + * Implement the monitoring sources ``HDF5MonitoringSource`` that handles HDF5 file input |
| 38 | + * Implement Table I/O for camera calibration coefficients following the agreed HDF5 table naming and hierarchy |
| 39 | + * Remove ``ctapipe.calib.camera.flatfield`` and ``ctapipe.calib.camera.pedestal`` modules. Functionality is implemented in the ``ctapipe.monitoring`` module. [`#2802 <https://github.com/cta-observatory/ctapipe/pull/2802>`__] |
| 40 | + |
| 41 | +- Remove the option ``DataWriter.write_index_tables`` along with its alias |
| 42 | + in ``ctapipe-process --write-index-tables``. |
| 43 | + The option seems to corrupt output files for large data sizes, is not used |
| 44 | + in ctapipe itself and was not tested. [`#2853 <https://github.com/cta-observatory/ctapipe/pull/2853>`__] |
| 45 | + |
| 46 | + |
| 47 | +Bug Fixes |
| 48 | +--------- |
| 49 | + |
| 50 | +- Fix image conversion to cartesian in case geometry units |
| 51 | + are not in meters. [`#2779 <https://github.com/cta-observatory/ctapipe/pull/2779>`__] |
| 52 | + |
| 53 | +- Raise a clear error message in the ``DispReconstructor`` |
| 54 | + in case of non-supported coordinate frames for the pointing |
| 55 | + directions instead of silently assuming AltAz. [`#2785 <https://github.com/cta-observatory/ctapipe/pull/2785>`__] |
| 56 | + |
| 57 | +- Avoid astropy warnings in ``ctapipe.utils.astro.get_bright_stars``. [`#2801 <https://github.com/cta-observatory/ctapipe/pull/2801>`__] |
| 58 | + |
| 59 | +- In the muon intensity fitting class filters out non-physical solutions for chord vs phi function. [`#2803 <https://github.com/cta-observatory/ctapipe/pull/2803>`__] |
| 60 | + |
| 61 | +- Fix HDF5EventSource not properly reading telescope-wise DL2 fields written by ``ctapipe-apply-models``. [`#2824 <https://github.com/cta-observatory/ctapipe/pull/2824>`__] |
| 62 | + |
| 63 | +- Fix misleading error messages if a non-existing file is passed |
| 64 | + via the command-line to a Tool that has another configuration option |
| 65 | + that uses ``Path(default_value=None, allow_none=False)``. |
| 66 | + |
| 67 | + This pattern is now deprecated as it results in these hard to understand |
| 68 | + error messages due to behavior deep in traitlets. |
| 69 | + |
| 70 | + A warning will be raised if traitlets are defined like this and |
| 71 | + all ctapipe tools have been adapted to explicitly check |
| 72 | + for None if a ``Path`` is required. [`#2826 <https://github.com/cta-observatory/ctapipe/pull/2826>`__] |
| 73 | + |
| 74 | +- Return the number of events used to compute the statistics in SigmaClippingAggregator. [`#2841 <https://github.com/cta-observatory/ctapipe/pull/2841>`__] |
| 75 | + |
| 76 | +- Fixed bug in `ctapipe.core.Tool.get_current_config` where ``Tools`` containing lists of |
| 77 | + ``Components`` did not get registered, and thus their configs did not end up in the |
| 78 | + provenance log. [`#2851 <https://github.com/cta-observatory/ctapipe/pull/2851>`__] |
| 79 | + |
| 80 | + |
| 81 | +New Features |
| 82 | +------------ |
| 83 | + |
| 84 | +- Add short-form alternatives to the cli aliases of ``ctapipe-optimize-event-selection``. [`#2770 <https://github.com/cta-observatory/ctapipe/pull/2770>`__] |
| 85 | + |
| 86 | +- Use the HDF5Merger to add the observation block and scheduling block info |
| 87 | + to the DL1 files produced by ctapipe-calculate-pixel-statistics tool. [`#2776 <https://github.com/cta-observatory/ctapipe/pull/2776>`__] |
| 88 | + |
| 89 | +- Enable ``ctapipe-merge`` to be used on camera calibration data and pixel statistics aggregation. [`#2787 <https://github.com/cta-observatory/ctapipe/pull/2787>`__] |
| 90 | + |
| 91 | +- Generalise the DL2 table processing implemented in IRF tools in order to be used by other usecases that ingest, filter and merge DL2 tables. |
| 92 | + The module was moved from IRF to IO. [`#2791 <https://github.com/cta-observatory/ctapipe/pull/2791>`__] |
| 93 | + |
| 94 | +- Add new cli tool ``ctapipe-store-astropy-cache`` to download and store |
| 95 | + astropy data needed for coordinate transformations. [`#2823 <https://github.com/cta-observatory/ctapipe/pull/2823>`__] |
| 96 | + |
| 97 | +- ``ctapipe.io.read_table`` and ``ctapipe.io.write_table`` now support custom column metadata. [`#2824 <https://github.com/cta-observatory/ctapipe/pull/2824>`__] |
| 98 | + |
| 99 | +- Add common names of stars to table output of ``ctapipe.utils.astro.get_bright_stars``. [`#2827 <https://github.com/cta-observatory/ctapipe/pull/2827>`__] |
| 100 | + |
| 101 | +- Add support for disabling numba caching via ``CTAPIPE_DISABLE_NUMBA_CACHE=1`` environment variable. |
| 102 | + See https://github.com/numba/numba/issues/10128 for why this might be needed. [`#2836 <https://github.com/cta-observatory/ctapipe/pull/2836>`__] |
| 103 | + |
| 104 | + |
| 105 | +Maintenance |
| 106 | +----------- |
| 107 | + |
| 108 | +- - fixed confusing (and incorrect) debug log message in download.py |
| 109 | + - removed all references to ``ctapipe_resources`` in the code and docs, since |
| 110 | + that module is no longer supported. Updated documentation to mention the |
| 111 | + remote test data server when applicable. [`#2782 <https://github.com/cta-observatory/ctapipe/pull/2782>`__] |
| 112 | + |
| 113 | +- Updated the developer environment in environment.yml to be in sync with what is in pyproject.toml. [`#2849 <https://github.com/cta-observatory/ctapipe/pull/2849>`__] |
| 114 | + |
| 115 | + |
| 116 | + |
1 | 117 | ctapipe v0.26.0 (2025-06-05) |
2 | 118 | ============================ |
3 | 119 |
|
|
0 commit comments