v0.7.0
What's Changed since v0.6.2
This is a major release with breaking API changes from the 0.6.x series. Scripts using ctapipe-0.6.x may need to be updated.
Notable API changes:
- gain-channel selection is applied at the DL1 level, so
event.dl1.tel[i].image
is now 1D (whereas before it was 2D, with the first index as the gain channel) - removed Factory classes (factories now in constructor)
- EventSources are now constructed using
EventSource.from_url()
orEventSource.from_config()
, thought the convenience functionevent_source()
still works as before. - The default EventSource for MC data is now the
SimTelEventSource
instead ofHESSIOEventSource
. This means libhessio is no longer required, as SimTelEventSource uses a pure-python implementation called pyeventio. - Other EventSources are now plug-ins that are automatically detected if installed.
- the camera calibration code and ChargeExtractor have been totally re-factored and simplified. Note that it's lower-level API has thus changed.
- ctapipe-extra is not longer strictly required to be installed (though some functionality will not work if it is not installed like constructing a CameraGeometry from name if no CTAPIPE_SVC_PATH is set by the user).
- New
EngineeringCameraFrame
coordinate system that allows one to draw a camera as it would look when parked (rather than the standard SimTelArray coordinate system). - naming scheme for telescopes has changed in the
instrument
module (it is now<optics type>_<optics_subtype>_<camera type>
, e.g.LST_LST_LSTCam
orSST_ASTRI_CHEC
)
Improvements:
- ctapipe no longer needs any compilation (the c code in CameraCalibrator has been removed and replaced with Numba functionality for speed and maintainability improvements), which means the package can be made architecture-independent (though python must generate the *.pyc files on install, which takes a bit longer)
HDF5TableWriter
now can write tables to any group(s) in an HDF5 file, and can optionally append prefixes to the output columns of a Container (e.g.width
→hillas_width
)HillasReconstructor
now supports non-parallel (e.g. divergent or convergent) pointings- many speed improvements for calibration and neighbor matrix operations.
- New tailcuts (picture/boundary) function for multiple nearest-neighbor cleaning (MARS-like)
Detailed Changelog
- Clean up setup.py (#1118) @kosack
- remove unused dependencies in environment.yml (#1113) @vuillaut
- Reduce numba signatures to improve import time (#1108) @watsonjj
- Remove unused utils (#1112) @maxnoe
- Add method to read bright star catalog and find bright stars in sky region (#1105) @moritzhuetten
- Add Fields to calibration containers (#1111) @FrancaCassol
- Reconstruction fix (also for Divergent Pointing) (#946) @thomasgas
- updated AUTHORS with latest mailmap (#1107) @kosack
- Restore apply_time_delta_cleaning as a public method (#1106) @watsonjj
- Update mailmap (#1103) @maxnoe
- Add uncertainties to TimingParemeters (#1101) @maxnoe
- Close simtel eventsource in exit (#1104) @maxnoe
- Delete .coverage.dapmcw186.24220.071001 (#1099) @cdeil
- First version of the MARS tailcut (1st pass) (#1096) @HealthyPear
- Add gain selection to calibration chain (#1095) @watsonjj
- Added my emails to mailmap (#1098) @HealthyPear
- Restore returning selected channels in gain selection (#1094) @watsonjj
- Refactoring of GainSelector (#1093) @watsonjj
- Integer hdftable (#1089) @maxnoe
- Add EngineeringCameraFrame (#1085) @maxnoe
- Coordinates notebook pr (#1075) @maxnoe
- Fix HillasReconstructor in case of too few telescopes (#994) @LukasNickel
- Fix writing of booleans, fixes #1082 (#1083) @maxnoe
- Add deviation parameter to timing_parameters (#1079) @watsonjj
- Fix broken telescope id string, Fixes #1058 (#1069) @kosack
- Improvements to Tool and Component functionality (#1052) @kosack
- Allow tables in arbitrarily deep hdf5 groups (#1068) @kosack
- Set python_requires in setup.py (#1074) @maxnoe
- Camera calibration code (#1067) @FrancaCassol
- adding support for int8 in PYTABLES_TYPE_MAP (#1072) @vuillaut
- normalize index column name in subarray table (#1065) @kosack
- Fix HDF5TableWriter to ensure user-defined col transforms are applied (#1060) @kosack
- Update eventio to 0.20 (#1062) @maxnoe
- Fix number of mirrors, fixes #1057 (#1061) @maxnoe
- Consolidate camera calibration in a single class (#1048) @watsonjj
- Use sparse matrix to calculate neighbor_matrix_where (#1056) @maxnoe
- Cache camera geometries by camera name (#1054) @maxnoe
- Suggestion: Retire CameraR1Calibrator (#1046) @watsonjj
- Create numba ufunc for sum of samples within charge extraction window (#1038) @watsonjj
- Implement nan-handling like matplotlib high-level api (#1050) @maxnoe
- Fix See Also docs for sphinx 2 (#1051) @maxnoe
- Create improved algorithm for pulse time (#1045) @watsonjj
- Update bokeh plotters to handle nan (#1039) @watsonjj
- Fix passing config to CameraCalibrator (#1042) @watsonjj
- Replace WaveformCleaner and ChargeExtractor with WaveformExtractor (#1033) @watsonjj
- Only detect plugins when they need to exist in global (#1036) @watsonjj
- Make ctapipe-extra truly optional (#1002) @maxnoe
- Fix for TargetIOR1Calibrator (#1035) @watsonjj
- Replace C function get_sum_array with a Numba implementation (#1032) @watsonjj
- ChargeExtractor tests and simplification (#1023) @watsonjj
- allow enums in containers and support in tableio (#978) @dneise
- Add tests to Tools to check that help message works (#1034) @watsonjj
- Fix neighbors (#1015) @maxnoe
- Fix component docs (#1016) @maxnoe
- Remove targetio event source and calibrator (#1012) @maxnoe
- remove sst1m_event_source (#1011) @dneise
- Update requirements (#1008) @maxnoe
- Use conda packages instead of pip (#989) @kosack
- Fix traitlets config (#998) @maxnoe
- Use new conda syntax for activate (#999) @maxnoe
- Set defaults only for fields not passed in init (#1001) @maxnoe
- Remove LSTEventsource, (#992) @maxnoe
- Remove nectarcam event source, now in ctapipe_io_nectarcam (#993) @maxnoe
- Refactor toymodel, add SkewedGaussian (#996) @maxnoe
- Refactor instrument module (#982) @maxnoe
- fixed bug in coordinate transformation (#997) @seinecke
- Pass allowed_tels down to eventio in simtel event source (#987) @maxnoe
- Add missing imports for event sources (#991) @maxnoe
- Waveform cleaner (#973) @FrancaCassol
- Moved a bunch of examples to tools (#955) @kosack
- Use eventio v0.17.1 (#966) @dneise
- Remove HorizonFrame and use AltAz directly from astropy, fixes #949 (#975) @maxnoe
- Move get_shower_coordinates to hillas, fixes #934 (#976) @maxnoe
- Fix set_line_hillas (#974) @kpfrang
- Alternative Take on Factories (#916) @dneise
- Passing masked array to hillas_parameters (#969) @watsonjj
- make pyhessio not necessary for normal users (#957) @dneise
- Do not call everything stable (#956) @maxnoe
- Avoid underscore replacement empty prefixes. (#951) @kbruegge
- Improve Component argument consistency (#947) @watsonjj