I’ve been working in Python for astronomy applications a lot lately, here’s a page to keep track of resources I’ve found in my travels as well as links to projects I’m working on.
My Projects
I store everything in my GitHub repositories. If there’s no release it’s not finished yet but feel free to lift any code that seems useful.
Astrofiler AstroFiler is a powerful application designed for astronomers and astrophotographers to efficiently manage, organize, and catalog their FITS image files. With an intuitive graphical interface, it provides tools for batch processing, file organization, metadata extraction, session analysis, and direct integration with smart telescopes for seamless data acquisition. Detailed documentation is in the Github Wiki. Astrofiler is a tool to manage FITS files (currently, XISF files and other non-FITS images are coming in the next version!) using FITS header data. FITS Headers are embedded with the image when created as metadata. Astrofiler reads this information to rename the file and file it appropriately in the Repository.
mlCloudDetect Cloud Detection using AllSky Cameras. This software will examine images from any allsky camera that can produce an image on disk at a known location. For indi-allsky, the software will load the latest image location from the database. Using Machine Learning, the software compares the most recent image with it’s training model to produce a file that will tell you whether the sky is cloudy or clear. For observatories that means open the roof or not. The software also supports pending states where it will delay opening or closing so the observatory isn’t constantly opening and closing all night! All messages and configuration is set using an INI file.
Obsy Open source Observatory Control Software This project provides an INDI compliant, open source alternative to some of the closed source, old technology observatory scheduling, logging etc. systems out there. After selecting targets you can plan observations, which produces schedule files for KStars/EKOS to execute. Once images are produced they are registered in a repository, backed up to the cloud, calibrated, and sample stacks produced. You can then check out the images and calibration frames to process externally. Variable star and Exoplanet processing to be included. On Hold while Astrofiler develops, whereupon a lot of code will be moved back into Obsy.
MCP Master control program for observatories and telescopes. The oMCP Observatory component of this software uses mlCloudDetect cloud detection from allskycams, weather stations, aurora and smoke forecasts, and rain conditions to determine if the observatory roof should be moved back. Once the roof is open the telescope is unparked. When the tMCP telescope component detects an unparked scope it executes a KStars/EKOS schedule, perhaps produced by Obsy.
PiINDIControlPad Telescope Control panel for 7″ HDMI display for Raspberry Pi
Photometry-Pipeline A photometry image processing system that automatically detects, calibrates, does differential photometry on an image based on database parameters, and sends the user a report for submission to AAVSO. Eventually automated submissions from dedicated robotic telescopes. This project will eventually merge with obsy
starseeker Code to run an automated plate solver appliance on a Raspberry Pi-based pointing refinement tool for Dobsonians where once INDI has slewed to a target the solver will refine the position based on plate solves til the object is centred within required parameters. Can run periodically to provide rudimentary auto-guiding.

Resources
Shelyak Spectroscopy Workshop in Python #1
Shelyak Spectroscopy Workshop in Python #2
Shelyak Spectroscopy Workshop in Python #3
Python for astronomy and spectroscopy : Rapid spectrum analysis by MatthieuL