Source code for rubin_scheduler.utils.projections

__all__ = ("gnomonic_project_toxy", "gnomonic_project_tosky")

import numpy as np


[docs] def gnomonic_project_toxy(ra1, dec1, r_acen, deccen): """Calculate x/y projection of ra1/dec1 in system with center at r_acen, deccen. Input radians. Grabbed from sims_selfcal""" # also used in Global Telescope Network website cosc = np.sin(deccen) * np.sin(dec1) + np.cos(deccen) * np.cos(dec1) * np.cos(ra1 - r_acen) x = np.cos(dec1) * np.sin(ra1 - r_acen) / cosc y = (np.cos(deccen) * np.sin(dec1) - np.sin(deccen) * np.cos(dec1) * np.cos(ra1 - r_acen)) / cosc return x, y
[docs] def gnomonic_project_tosky(x, y, r_acen, deccen): """Calculate RA/dec on sky of object with x/y and RA/Cen of field of view. Returns Ra/dec in radians.""" denom = np.cos(deccen) - y * np.sin(deccen) RA = r_acen + np.arctan2(x, denom) dec = np.arctan2(np.sin(deccen) + y * np.cos(deccen), np.sqrt(x * x + denom * denom)) return RA, dec