-
Notifications
You must be signed in to change notification settings - Fork 12
Plugin projects
This page lists potential plugin projects. It may be easiest to start with utility and renderer projects, then move on to generators and calculators.
This plugin would rebin a histogram. One possible use case is to take a finely binned time distribution and rebin it with larger bins so it can be displayed more meaningfully.
To keep things simple, we expect only to combine integer numbers of bins, so nothing fancy needed here.
This would respond to an action by consuming it (not passing it downstream), or by changing it to another type of action. For instance, it might be used to consume alert actions and pass only report actions during an MC trial, whereas in the actual SNEWS context, we would want plots to be made for every alert.
This will check that a field has the proper form, and either clean it up or consume the action. Then we don't have to have each downstream plugin repeat this sort of validation.
There should be different levels of strictness. For instance,
- if a key isn't found in the payload, does the module fail (not pass it downstream) or just log it?
- if a value isn't the right type, does the module fail or substitute a default value?
- if a value in a list isn't the right type, is it deleted, replaced with a default value, or does the module fail entirely?
If the validator cleans up data and passes it on, then it will need to log what it did. This can take the form of appending a message to a list of strings kept in the payload, perhaps under the key log.
We could have different validator plugins, or one big multi-function validator. It may also be more efficient to validate multiple fields, rather than one at a time, but we can address that later.
This may simply be part of the validator, or it can be a specific variety.
This plugin would take a field and check if it's a numpy.array. If it isn't already a numpy.array, it will convert it to one.
If it's a list or tuple, it will check that all the elements are numbers or types which can be converted to numbers, such as numeric strings. In fact, it may have to check this even if it's already a numpy.array (will need to check this).
If it's a string, it will parse it as a list of numbers.
It would be nice to have utilities which make nice-looking plots using matplotlib. The output could be in png form.
Multiple histograms on a single plot.
Different histogram styles, e.g., line, bar chart, etc.
Statistics, such as printing the underflows, overflows, mean, and rms somewhere on the plot.
Other sorts of text, located within the histogram box.
We should also have renderers whose sole job is to dump plot data into a file.
Same thing for skymaps.
We may have generators which output event times or lightcurves from an analytical formula.
Generators can be for signal, background, or both. A signal should allow for an externally-generated time delay passed in via the payload.
Flat background generator.
Random number generator. This could be useful to generate time delays as well as event yields.
Delay generator based on detector locations, assuming a lightfront coming from a random direction.
Using the method of Segerlund, O'Sullivan, O'Connor. Ideally would combine the data from as many experiments as possible.
Sharp drop, such as that expected if a black hole forms.
Long accretion, also possibly indicative of a black hole.
Secondary burst.
Feature detectors should give some indication of likelihood.