-
-
Notifications
You must be signed in to change notification settings - Fork 111
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
Adding telescope constraints to the time_dependent plots #548
base: main
Are you sure you want to change the base?
Conversation
@@ -2,6 +2,7 @@ | |||
from __future__ import (absolute_import, division, print_function, | |||
unicode_literals) | |||
import copy | |||
from xmlrpc.client import boolean |
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 used anywhere?
|
||
# Firstly, check that the constraints are valid if any. | ||
if constraints is not None: | ||
if isinstance(constraints, Constraint): | ||
constraints = [constraints] | ||
|
||
assert isinstance(constraints, (list, tuple, np.ndarray)), "constraints must be an array-like object or a single Constraint instance." | ||
for cons in constraints: | ||
assert isinstance(cons, Constraint), "All constraint objects must be Constraints" | ||
|
||
# Make sure they're boolean | ||
assert hasattr(cons, 'boolean_constraint'), "Each constraints element must have the 'boolean_constraint attribute." | ||
assert cons.boolean_constraint, "Cannot work with non-boolean constraints." | ||
# Then make sure they're not some weird user-generated constraint. | ||
assert hasattr(cons, 'compute_constraint'), "Constraints must have a 'compute_constraint' method." | ||
|
||
|
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.
Rather than including assert
s in the function here, a more common approach is to extract the elements of the list that meet the validation criteria, without raising an error.
Hello!
I'm proposing the addition of
Constraint
s to thetime_dependent
plots, specificallyplot_airmass
. Currently, my changes add a thick black line where the telescope constraints are not satisfied (i.e. the object is not observable when it's marked black).The figure above shows an example image with my custom
Constraint
class calledKeckVisibility
which takes into account the various telescope pointing constraints at Keck I and Keck II.I've not made any changes to the other plots yet as they're plotted somewhat differently but am happy to take suggestions for those as well.
Regards,
Sunil