- Table of Contents
- Overview
- Features
- Project Structure
- Modules
- Getting Started
- Roadmap
- Contributing
- License
- Acknowledgments
The scripts repository within Bolidozor is composed of Python scripts useful to station administration. It features functionalities like executing coordinated commands on multiple remote radio stations, detecting linearly frequency-modulated signals, and analyzing data files. With precise value filtration, optimized data extraction, visualization, and remote station coordination.
Feature | Description |
---|---|
** Architecture** | Modular architecture centered around script-based implementations, with diverse utilities for signal detection, file parsing, and remote executions. |
** Documentation** | Documentation is minimalistic and could be improved to explain the purpose/usage of all scripts/features for enhanced understandability. |
** Dependencies** | The project relies on common Python libraries like NumPy for mathematical operations and Paramiko for remote SSH connectivity. |
** Modularity** | Scripts are neatly structured for handling specific tasks, showing good modularity which aids in maintainability and flexibility of the codebase. |
Root
File | Summary |
---|---|
extract.py | The script reads file(s) passed as arguments and extracts date and time from each line. Then it subtracts 5 minutes from each datetime object. These manipulated dates and times are stored and converted to a correct format for future use in terminal commands. Lastly, it issues a terminal command to list the contents of a certain directory on a remote server through SSH. |
lfms_detector.py | The Python script is a signal processing application that detects linearly frequency-modulated signal segments. The script splits signal samples into frames, multiplies the frames by a window function and processes them through Discrete Fourier Transform (DFT). The script then generates a 2D array and searches for the local maxima of each frame. The identified maxima signify the detection of frequency-modulated signals. The script also produces waterfall plots of the detections. |
bzfind | The script utilizes python to parse specific file formats through Bolidozor's file software structure. It searches for files in the predefined repository root, and extends the functionality for sorting data files with unique operations; such as limiting time of origin, collection path, and filename with regex filters. Upon successful matching guided by user-defined parameters, it yields the found entities as output. It’s especially useful for dealing with bulk recordings and snapshot handling. |
bzremote | This Python script, bzremote, executes pre-specified commands on multiple remote Bolidozor radio monitoring stations concurrently. A hostname list from a designated file determines the commands' target hosts. You can specify the commands using templates, replacing a placeholder, "%" with the hostname. Additionally, adjustable options include changing the default host-group set and varying the count of concurrently running command instances. |
- Clone the scripts repository:
git clone https://github.com/bolidozor/scripts.git
- Change to the project directory:
cd scripts
- Install the dependencies:
pip install -r requirements.txt
The ./bzremote sshpass -p odroid ssh % df -h should not be used anymore. The stations should be accessed using a private key (shared for selected users at space.astro.cz). Then the bzremote script can be run without sshpass, e.g. ./bzremote ssh % df -h
Contributions are always welcome! Please follow these steps:
- Fork the project repository. This creates a copy of the project on your account that you can modify without affecting the original project.
- Clone the forked repository to your local machine using a Git client like Git or GitHub Desktop.
- Create a new branch with a descriptive name (e.g.,
new-feature-branch
orbugfix-issue-123
).
git checkout -b new-feature-branch
- Make changes to the project's codebase.
- Commit your changes to your local branch with a clear commit message that explains the changes you've made.
git commit -m 'Implemented new feature.'
- Push your changes to your forked repository on GitHub using the following command
git push origin new-feature-branch
- Create a new pull request to the original project repository. In the pull request, describe the changes you've made and why they're necessary. The project maintainers will review your changes and provide feedback or merge them into the main branch.
This project is licensed under the GPL 3 License.