Hevelius-Runner is an automation tool designed to execute planned astronomical observations in an observatory environment. It integrates with NINA (Nighttime Imaging 'N' Astronomy) software to automate the execution of observation sequences.
It is expected to be used with hevelius-backend, a central server that stores the observation tasks and provides the API for the runner to retrieve them.
It is a very early work in progress.
- Retrieves observation tasks from a REST API
- Generates NINA-compatible sequence files from observation tasks
- Executes observations using NINA automation
- Monitors for new FITS files and updates task status
- Supports custom scripts for various observation stages:
- Startup
- Night start/end
- Post-task processing
- Configurable for different observatories
- Python 3.7+
- NINA (Nighttime Imaging 'N' Astronomy) software
- Windows operating system
- TLS certificates
If you experience any certificate issues during cloning a repo on windows, you might try the following:
git config --global http.sslbackend schannel
This will configure the Windows built-in certificate store. For details, see https://stackoverflow.com/questions/23885449/unable-to-resolve-unable-to-get-local-issuer-certificate-using-git-on-windows
- Clone the repository:
git clone https://github.com/tomaszmrugalski/hevelius-runner.git
cd hevelius-runner- Create and activate virtual environment:
python -m venv venv
venv\Scripts\Activate
- Install required packages:
bash pip install -r requirements.txt
- Copy
config.ini.exampletoconfig.ini - Update the configuration with your settings:
- Database credentials
- API endpoints
- Directory paths
- NINA executable location
- Custom script paths
Run the application:
python src/hevelius-runner.pyThe application will:
- Load configuration
- Execute startup scripts
- Monitor for nighttime
- Retrieve and execute observation tasks
- Update task status upon completion
hevelius-runner/
├── config/
│ ├── config.ini
│ └── templates/
│ └── sequence_template.json
├── src/
│ ├── main.py
│ ├── config_manager.py
│ ├── api_client.py
│ ├── task_manager.py
│ ├── file_monitor.py
│ ├── script_executor.py
│ └── nina_controller.py
├── scripts/
│ ├── startup_script.py
│ ├── night_start.py
│ ├── night_end.py
│ └── post_task.py
└── requirements.txt
Open NINA, click Sequencer, then Advanced Sequencer.
Edit the sequence as needed. Make sure to add at least one target. The target MUST have its name set to "TARGET1". Click Save.
The file should be save in the templates folder. If the file name is not provided as an argument, the application will use "hevelius.json" by default.
Contributions are welcome! Please feel free to submit a Pull Request.
- NINA (Nighttime Imaging 'N' Astronomy) software