-
Notifications
You must be signed in to change notification settings - Fork 22
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
RAD-120: Read Pattern #233
Conversation
Codecov ReportPatch and project coverage have no change.
Additional details and impacted files@@ Coverage Diff @@
## main #233 +/- ##
=======================================
Coverage 93.54% 93.54%
=======================================
Files 4 4
Lines 124 124
=======================================
Hits 116 116
Misses 8 8 Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me. Filed related RDADS ticket RDADS-587
I'm a bit confused here. |
I agree that the grouping is key here. But the type is an array of arrays, which looks fine to me? |
It should be, but I can add an explicit test for this structural preservation in RCAL-543. |
I'm not sure that works for a list of list with an unequal number of elements, so if I try to convert the above list into an array I get
Am I missing something? |
Is the RAD schema going to try to push that into a numpy ndarray as you're showing? Can we mark the type as list rather than array? We were imagining the archive storing str([[1], [2, 3], [4], [5, 6, 7, 8]]) = '[[1], [2, 3], [4], [5, 6, 7, 8]]' |
This cannot be an "array of arrays", that would by definition require all of the member arrays to be the same shape. In order for this to work it must remain a "list of lists" as each constituent list can have different shape. If we must have an array compatible format then it would be better to build a 1D array whose index represents the reads and values represent the grouping. A null flag such as -1 can be used to for skipped reads. E.G. [1, 2], [3, 4, 5], [7, 8, 9] Would be instead represented as [0, 0, 1, 1, 1, -1, 2, 2, 2] |
This implementation appears to work fine? |
Note that we can do this as unsigned integers by defining 0 as the skipped positions. Then the example becomes [1, 1, 2, 2, 2, 0, 3, 3, 3] |
description: | | ||
Enumeration of detector reads to resultants making up the L1 data downlinked | ||
from the observatory | ||
type: array |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The confusion may also be coming from this term. Recall, the schemas are written using "jsonschema", which is based on "json" originating in JavaScript. So the "type" refers to the type you would see in JavaScript, which happens to term "array" to mean a resizable indexed collection of items which in Python we would call a "list". Hence, the schema here is describing a "list of lists" in Python.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good.
a43adc7
to
5b43f62
Compare
Resolves RAD-120
Closes #
This PR adds read pattern to the exposure group.
Checklist
CHANGES.rst
under the corresponding subsection