Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.9%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: MaxxHaehn
  • Language: VBScript
  • Default Branch: main
  • Homepage:
  • Size: 43.9 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 2
  • Releases: 0
Created over 2 years ago · Last pushed over 2 years ago
Metadata Files
Readme Changelog Citation

README.md

Bell Observatory Automation Script

This code is an attempt to create a fully-automated observatory experience with one click. Observers create a TargetList.txt file using the template, and then running the AutomationScript.vbs script will trigger a filename input. Users then input the target list file name (".txt"-inclusive), and the observatory will start up, run the targets, and shut down with no further user input.

Installation/Usage

Please see the code for comments and specific documentation This code was built for Windows (hence .vbs) using an ACE SmartDome, PlaneWave Instruments 4 Telescope and Shutter software, and MaximDL for imaging and file saving.

Roadmap/Bugs

Current Features/Outline of Script

  • Prefix for FITS images is created (kYYMMDD). The DD is for the "following day", or the UTC-time day, since we usually observe starting past 6pm.
  • Log file is created, and this log file takes input from pretty much every step in the process (it's detailed!)
  • Checks that dome is already closed/stationary; if not, makes it so!
  • Before observatory starts up, script calls a Python AstroPy query to determine if the solar altitude is low enough to observe (<-8d)
    • If too high, will cycle 10 minute check loop
    • If low enough, proceeds to startup observatory
  • All components of Observatory start up
    • Bug light on stepladder turns off
    • Camera connects to MaximDL, starts cooling (needs to get to -20C) (~180 seconds total)
    • Dome homes (if it isn't already) and simultaneously opens (~120 seconds total)
    • Telescope connects to PWI4 and starts homing (~30 seconds total). Telescope commands are run via closed, internal PWI server.
    • The Camera cooling, Dome opening, and Telescope homing all run simulataneously to save time. After 180 seconds, script checks if $|(-20 - T_{Cam})|<3$. If yes, then proceed. If not, then loop 10 seconds for check.
    • This is because sometimes in the summer, the ambient temp will reach +35C!
  • Take bias frames
    • Script reads BiasList.txt (basically, just goes to Polaris).
    • Calls Process subroutine which reads through each line of the text file, doing different things based on what the line says (see [Process subroutine] in main code for details).
    • When Process first reads the RA/Dec combo in the text file, scope will slew to target, and then dome will follow scope azimuth after about 10 seconds. Then, checks every 5 seconds to see if dome azimuth is within 3 degrees of scope azimuth.
    • Before every exposure, calls Python AstroPy query to determine if sun is too high (>-8d) or if moon is too close to target (<20d) or if target is too low in sky (<30d).
      • If sun too high or moon too close, runs EndOfNight subroutine and then shuts down.
      • If sun low enough and moon far enough from target, proceeds
    • Also before every exposure, runs dome azimuth check to adjust to slightly-new scope azimuth (from sky rotation).
    • Takes 9 bias frames, save them into data folder as kYYMMDD####.
  • Open Optical Tube Assembly (OTA) shutters
  • Take light frames
    • Script reads BiasList.txt (basically, just goes to Polaris).
    • Calls Process subroutine which reads through each line of the text file, doing different things based on what the line says (see [Process subroutine] in main code for details).
    • When Process first reads the RA/Dec combo in the text file, scope will slew to target, and then dome will follow scope azimuth after about 10 seconds. Then, checks every 5 seconds to see if dome azimuth is within 3 degrees of scope azimuth.
    • Before every exposure, calls Python AstroPy query to determine if sun is too high (>-8d) or if moon is too close to target (<20d) or if target is too low in sky (<30d).
      • If sun too high or moon too close, runs EndOfNight subroutine and then shuts down.
      • If sun low enough and moon far enough from target, proceeds
    • Also before every exposure, runs dome azimuth check to adjust to slightly-new scope azimuth (from sky rotation).
  • All components of observatory shut down (called via EndOfNight subroutine)
    • This runs once last line of TargetList text file is read
    • Disables camera cooler and connection
    • Disables both telescope motor axes
    • Turns on bug light
    • Closes OTA shutters
    • Closes PWI4 software and shutter software
    • Closes dome, waits 40 seconds, then parks it.
    • Closes dome software.
    • Quits script. ### Features of TargetList
  • Can input RA/Dec of target in hh:mm:ss and dd:mm:ss format
  • Can also input altitude and azimuth
  • Can choose from 10 different filters (unfiltered, B, V, R, Ha, OIII, SII, NII, GRISM)
  • Can expose same target multiple times, changing filters if needed
  • Script stores images with relevant FITS header information (coords, time, exp time, filter, observatory info, etc.) ### Upcoming Features
  • Once flat field screen is installed, create code block between shutter opening block and light frames block
    • This code block will function very similar to the bias block, but it will slew to a fixed altitude and azimuth and then turn off tracking via scope commands to stay fixed on flat field screen.
  • Possible implementation of Python-based target list generator (feed coordinates, filters, exposures, etc., and will output TargetListYYMMDD.txt)
  • Re-run through TargetList.txt and expose targets that were initially missed due to moon and/or target altitude.

Credits

The "barebones" of this code (specifically the Process, TakeExposure, and PrepareToImage subroutines, and the GetSequenceNumber function) were initially written by ACP Observatory Control Software. See [https://diffractionlimited.com/maxim-dl-extras/] for the original code, specifically "Sequenced Image Acquisition". I cannot find the original author yet.

Owner

  • Login: MaxxHaehn
  • Kind: user

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: Haehn
    given-names: Maxx
title: "Bell Observatory Automation Script"
version: v240205
date-released: 2024-01-30

GitHub Events

Total
Last Year