-
Notifications
You must be signed in to change notification settings - Fork 265
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement ctapipe-process #1726
Conversation
8e27aa6
to
2b7d609
Compare
Codecov Report
@@ Coverage Diff @@
## master #1726 +/- ##
==========================================
+ Coverage 91.98% 92.03% +0.05%
==========================================
Files 186 187 +1
Lines 14640 14683 +43
==========================================
+ Hits 13466 13514 +48
+ Misses 1174 1169 -5
Continue to review full report at Codecov.
|
…nto feature/processortool
…nto feature/processortool
It should automatically transform that column into a fixed-length boolean array. @HealthyPear can you say what was the typo in your config that caused it to malfunction? We should give a better error if there is a typo... |
Nothing that you can really fix from ctapipe I think: as you can see I set the ellipticity limit to 0.1 two times instead of > 0.1 & < 0.6 |
That is not the case
Not really something you can catch, the image quality query was defined so that no events could ever survive. |
It should be, but I guess only if there is a first event to make it initialize (with no events, you're correct we can't really check for it) ctapipe/ctapipe/io/datawriter.py Lines 400 to 404 in 3e1c308
|
I think it is because it is |
…nto feature/processortool
…nto feature/processortool
I noticed that In case of simulated data it's OK I guess, but since we are anyway preparing for real data, shouldn't we add such columns that table anyway? |
There are several issues connected to this:
TL:DR the current format is actually ideal for observations (where timestamps are unique and we have pointing information every couple of seconds that needs to interpolated to the timestamp of each event) but is is very suboptimal for the simulations. |
This is intended to be the minimal change to implement DL2 processing in ctapipe. The interface is not perfect (see issues below), but is enough to get started - other issues can be solved in future PRs.
Features Added:
ctapipe-stage1
→ctapipe-process
ShowerProcessor
to the event loop, so DL2 can optionally be computed and writtenshould_compute_dl1
andshould_compute_dl2
where the logic for when (re-)computation should occur is placed (see note below). Right now these are set to very simplistic defaults: compute DL2 if either mono or stereo parameters are requested to be written, and compute DL1 if the user wants to write parameters or DL2 showers. This doesn't cover all useful cases yet.Minor issue on re-computation logic:
right now the logic for
should_compute_dl1
is to always re-compute DL1_PARAMETERS if DL2 is requested and they do not already exist in the input file. It may be useful to add add an option like "force_recompute_parameters" in case the user wants to ensure they are re-computed even if they already exist (this can be a separate PR).TODOs:
to think about in future PRs:
config includes
Right now the config files have a lot of repetition. That would benefit from using a config system that allows "includes": which means either switching from JSON to Python-based config files (which is supported already by
traitlets.config
, but is slighly ugly in that every parameter needs to have it's full hierarchy specified, likec.ShowerProcessor.ShowerQualityQuery=...
), or have a way to specify multiple--config
options to aTool
, so that we can do for example:EDIT: this is now in issue #1732
subarray selection
to do a full analysis at the DL2 level, one needs to select the appropriate subarray. This is only possible right now by using the
--allowed-tels
option, which is not so friendly. Allowing it to be selected by name from a file containing mappings (e.g see #1632) would make this much friendlier. e.g. add options like