Skip to content
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

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

SunilSimha
Copy link

Hello!

I'm proposing the addition of Constraints to the time_dependent plots, specifically plot_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).
image
The figure above shows an example image with my custom Constraint class called KeckVisibility 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

@@ -2,6 +2,7 @@
from __future__ import (absolute_import, division, print_function,
unicode_literals)
import copy
from xmlrpc.client import boolean
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this used anywhere?

Comment on lines +186 to +202

# 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."


Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rather than including asserts 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants