Radio Science Coexistence Simulator RSC-SIM is a sophisticated Python framework designed for modeling radio astronomy observations, with particular emphasis on simulating the impact of satellite constellations (such as Starlink) on radio telescope observations. The framework provides end-to-end simulation capabilities from trajectory generation to power spectral density analysis, enabling researchers and astronomers to assess and mitigate interference from satellite mega-constellations.
This software grew and evolved out of the RadioMdl codebase, a Julia package created by Dr. Samuel Thé (https://github.com/SJJThe). Modified version of the Julia codes are found at Julia/
directory.
- Python: 3.9 or later
- Dependencies: numpy, scipy, pandas, pyarrow, numba, matplotlib, skyfield, pyproj, sgp4, rasterio, ipykernel
RadioMdl.py
: Core constants and utilitiesantenna_pattern.py
: Antenna pattern calculationsastro_mdl.py
: Astronomical modelingcoord_frames.py
: Coordinate frame transformationsobs_mdl.py
: Observation modelingradio_io.py
: Radio I/O operationsradio_types.py
: Radio data typessat_mdl.py
: Satellite modelingenv_mdl.py
: Environment effects modeling
This directory contains a series of focused, educational tutorials for learning radio astronomy observation modeling with the RSC-SIM framework. Each tutorial builds upon the previous ones, providing a progressive learning experience. Details can be found in the README.md
inside the educational_tutorials/
.
This contains additional learning resources and examples and serves as a reference implementation for the modeling and simulation of radio astronomy observations. It consists of Jupyter Notebooks and their CLI scripts, and also includes data creation scripts for trajectory files of a star and satellite at the research_tutorials/data_creation/
directory. Details can be found at the README.md
inside the research_tutorials/
directory.
Windows:
- Download Python 3.9+ from python.org
- During installation, make sure to check "Add Python to PATH"
- Verify installation:
python --version
in Command Prompt
macOS:
- Install using Homebrew:
brew install [email protected]
- Or download from python.org
- Verify installation:
python3 --version
in Terminal
Linux (Ubuntu/Debian):
- Install using package manager:
sudo apt update && sudo apt install python3.9 python3.9-venv python3.9-pip
- Verify installation:
python3.9 --version
Linux (CentOS/RHEL/Fedora):
- Install using package manager:
sudo dnf install python3.9 python3.9-pip
(Fedora) orsudo yum install python3.9 python3.9-pip
(CentOS/RHEL) - Verify installation:
python3.9 --version
Windows:
- Download VS Code from code.visualstudio.com
- Run the installer and follow the setup wizard
- Launch VS Code
macOS:
- Download VS Code from code.visualstudio.com
- Drag the downloaded file to Applications folder
- Launch VS Code
Linux:
- Download VS Code from code.visualstudio.com
- Install the .deb package:
sudo dpkg -i code_*.deb
- Or use snap:
sudo snap install code --classic
- Open VS Code
- Go to Extensions (Ctrl+Shift+X or Cmd+Shift+X)
- Search for "Jupyter" extension by Microsoft
- Click "Install" on the Jupyter extension
- Restart VS Code if prompted
- Open VS Code
- Go to File → Open Folder
- Navigate to where you want to clone the repository
- Open VS Code's integrated terminal (Ctrl+
or Cmd+
) - Follow the installation steps below
Note: Run these commands in VS Code's integrated terminal (Ctrl+ or Cmd+
)
It's recommended to create a virtual environment before installing the package:
# Clone the repository at a directory
git clone https://github.com/spectrumx/RSC-SIM.git
# Create and activate virtual environment (recommended)
python -m venv rsc-sim-env
# On Windows:
rsc-sim-env\Scripts\activate
# On macOS/Linux:
source rsc-sim-env/bin/activate
# change directory to RSC-SIM and install dependencies (packages)
cd RSC-SIM
pip install -e .
# When you finish working with RSC-SIM, deactivate the virtual environment
deactivate
After installation, you can run the Jupyter notebooks directly in VS Code:
- Open a
.ipynb
file from theresearch_tutorials/
directories - VS Code will automatically detect it as a Jupyter notebook
- Select your Python interpreter (the one from your virtual environment)
- Run cells using Shift+Enter or the Run button
- Interactive plots will be displayed inline in VS Code
The package automatically installs the following dependencies:
numpy>=1.21.0
- Numerical computingscipy>=1.5.0
- Scientific computingpandas>=1.3.0
- Data manipulationpyarrow>=6.0.0
- Data serializationnumba>=0.56.0
- JIT compilation for performancematplotlib>=3.5.0
- Plotting and visualizationskyfield>=1.40
- Astronomical calculations and ephemerispyproj>=3.0.0
- Geospatial coordinate transformationssgp4>=2.0.0
- Satellite orbit propagationrasterio>=1.3.0
- Geospatial raster data I/Oipykernel>=6.0.0
- Jupyter notebook kernel support
When working with the source code directly:
import sys
import os
# Add the src directory to the Python path
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), 'src'))
# Import modules directly
from radio_types import Antenna, Instrument, Observation
from obs_mdl import model_observed_temp
from astro_mdl import estim_casA_flux, power_to_temperature
# Use functions
result = model_observed_temp(observation, sky_model, constellation)
MIT License