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

Drone Scheduler goes Az-first, and goes to sun avoidance too early. #144

Open
elle-shaw opened this issue Dec 12, 2024 · 0 comments
Open

Comments

@elle-shaw
Copy link

When making up drone schedules, I used the sun avoidance calculator to know exactly when each SAT platform would be in sun avoidance so I could tell the scheduler master file when to look at South, East, and West drone fields. I found that the scheduler would be much too conservative and move to stow over an hour too early. I think it is because the scheduler has the platform move in Az before moving in Elevation. ( e.g. The scan in West ends at Az, El = (260,54). The scheduler spits out a move_to command for (180, 54) then (180, 48) to go fully to stow.) Sun avoidance at 180, 54 is about an hour before it would have been at (180, 48.)

What I did:

  1. I manually added in observations moving closer to 30 min cutoff to what the web-tool sun avoidance calculator said; and these would pass the quality_assurance/sun_safety_checker.py tests. I also remove the Az-first move_to and allow the ACU to figure out how to get to the final destination.
    In just one instance for satp2, manually adding observations still triggered the ACU sun avoidance, even though the other two safety checks had passed. https://site.simonsobs.org/satp2/nextline/db/runs/560.

The master schedule

# Site geographic longitude east (deg.) : -67.788149
# Site geographic latitude north (deg.) : -22.960107
#         Starting UTC julian date/time : 2460356.0 (=2024-02-15 12:00:00.000)
#        Number of days of observations : 366
#                 Scan elevation (deg.) : 60.0
#      Target field declinations (deg.) : [-40. -10.]
# Scan azimuth throw (deg. az.-not sky) : 40.0
#          Solar Avoidance Angle (deg.) : 49.0
#             Padding in azimuth (deg.) : 1.0
#   HEALPix 'nside' to use for mask map : 256
#           Version / Date of execution : 20241030
#   Azes (deg.) needed for desired decs : [ 69.1078 131.4829 228.5171 290.8922]
#           Mask map pixel width (deg.) : 0.23
# Flagged fraction before adding buffer : [0.281971 0.191361 0.191359 0.281962]
#    Solar avoidance time buffer (min.) : 45.0
#       Number of points in time buffer : 45
# Flagged fraction  after adding buffer : [0.313221 0.216579 0.216636 0.313297]
#       RAs where zenith crosses Galaxy : 115.4 & 270.3
# Pointing change Earth Rotation Angles : [ 12.86 115.4  192.86 270.32] deg.
# Start time UTC |  Stop time UTC   | Dir | Rot | Az Min | Az Max | Elev | Pass | SubP | Patch Name
2024-12-08 11:00 | 2024-12-08 15:50 |   1 | 0 |  267.7 |  279.7 | 56.0 |    0 | 0 | Drone-West-v2
2024-12-08 17:00 | 2024-12-08 19:30 |   1 | 0 |  81.3 |  93.3 | 48.0 |    0 |    0 | Drone-East-v2
2024-12-08 19:30 | 2024-12-08 23:30 |   1 | 0 |  163.4 |  175.4 | 48.5 |    0 | 0 | Drone-South-v3

run_drone.yaml file

platform: satp1
schedule_file: /so/home/eshaw/dronecal/sat-drone-schedules/satp1/2024-12-08_satp1_drone_schedule.txt

# yaml loads iso format automatically into datetimes
t0: 2024-12-08T11:00:00+00:00
t1: 2024-12-08T23:30:00+00:00
t0_state_file: None

#elevation: 60
#boresight: 0
az_speed: 0.5
az_accel: 0.25

iv_cadence: 14400 ## take IVs every four hours
bias_step_cadence: 3600 ## bias steps between scans.

disable_hwp: False
apply_boresight_rotation: False
hwp_dir: True # True: forwards, False: backwards
home_at_end: True # Home: spin down HWP
run_relock: False # Relock detectors at the beginning of the schedule

relevant section of the output schedule

It goes to stow starting at 14:19, but the requested stop of observation was 15:50, and

run.acu.move_to(az=267.7, el=56.0)
# hwp already spinning
run.smurf.bias_step(concurrent=True)
run.seq.scan(
    description='Drone-West-v2',
    stop_time='2024-12-08T13:39:30+00:00',
    width=12.0, az_drift=0,
    subtype='cal', tag='268-280,drone',
    min_duration=600,
)
run.acu.move_to(az=267.7, el=56.0)
# hwp already spinning
run.smurf.bias_step(concurrent=True)
run.seq.scan(
    description='Drone-West-v2',
    stop_time='2024-12-08T14:19:00+00:00',
    width=12.0, az_drift=0,
    subtype='cal', tag='268-280,drone',
    min_duration=600,
)
run.wait_until('2024-12-08T14:19:00+00:00')
run.acu.move_to(az=180.0, el=56.0)
run.acu.move_to(az=180.0, el=48.0)
run.wait_until('2024-12-08T14:22:00+00:00')
run.acu.move_to(az=180.0, el=48.0)
run.wait_until('2024-12-08T16:42:59.970000+00:00')
run.acu.move_to(az=81.3, el=48.0)
run.wait_until('2024-12-08T16:47:59.970000+00:00')
run.acu.move_to(az=81.3, el=48.0)

@elle-shaw elle-shaw changed the title Drone Scheduler too conservative on sun avoidance Drone Scheduler moves its Az first, and goes to sun avoidance too early. Dec 12, 2024
@elle-shaw elle-shaw changed the title Drone Scheduler moves its Az first, and goes to sun avoidance too early. Drone Scheduler goes Az-first, and goes to sun avoidance too early. Dec 12, 2024
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

No branches or pull requests

1 participant