-
Notifications
You must be signed in to change notification settings - Fork 3
change internal time system of L1 products to be SCETime or UTC #447
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
base: master
Are you sure you want to change the base?
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #447 +/- ##
==========================================
- Coverage 72.23% 69.08% -3.15%
==========================================
Files 78 76 -2
Lines 8085 8136 +51
==========================================
- Hits 5840 5621 -219
- Misses 2245 2515 +270 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
samaloney
left a comment
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.
I'm not sure allowing operations in different time systems is a good idea. A product should either have time in OBT or UTC and the conversion should only be done once in the from_level0 or similar methods?
All products (>L0) will always have obt_timerange from products will have an utc_timerange but only if the time sys in header is UTC and not sure supporting on the fly conversion is a good idea because the spice kernel dependence.
This aren't blocker just thoughts
| assert p.exposure == p.data["timedel"].as_float().min().to_value("s") | ||
| assert p.max_exposure == p.data["timedel"].as_float().max().to_value("s") | ||
| else: | ||
| assert p.exposure == p.data["timedel"].min().to_value("s") | ||
| assert p.max_exposure == p.data["timedel"].max().to_value("s") |
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.
I'd avoid asserts like this for use if and raise a specific exception
| offset = SCETime.from_float(pri_header["OBT_BEG"] * u.s) | ||
| # select the time format based on available header keywords | ||
| offset = None | ||
| if "TIMESYS" in pri_header and pri_header["TIMESYS"] == "UTC": |
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.
| if "TIMESYS" in pri_header and pri_header["TIMESYS"] == "UTC": | |
| if pri_header.get("TIMESYS", "") == "UTC": |
| if "TIMESYS" in pri_header and pri_header["TIMESYS"] == "UTC": | ||
| try: | ||
| offset = Time(pri_header["DATE-OBS"]) | ||
| except Exception: |
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.
very broad exception
| if "timedel" in l1.data.colnames and isinstance(l1.data["timedel"], SCETimeDelta): | ||
| l1.data.replace_column( | ||
| "timedel", | ||
| l1.data["timedel"].as_float(), |
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.
Is this an int to start with?
| self.history = kwargs.get("history", []) | ||
|
|
||
| @property | ||
| def scet_timerange(self): |
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.
For this specific case we always have OBT-BEG and OBT-END so maybe this should use those?
| return "counts" | ||
|
|
||
| @property | ||
| def exposure(self): |
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.
We should really call this min_exposure as I'd expect this to contain all the exposure times
| (self.data["time"][0] - self.data["timedel"][0] / 2).datetime, | ||
| (self.data["time"][-1] + self.data["timedel"][-1] / 2).datetime, |
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.
Is the .datetime really needed?
No description provided.