Estimate Cn2 from Speckle patterns using machine learning
Project description
SpeckleCn2Profiler:
Improving Satellite Communications with SCIDAR and Machine Learning
Overview
Optical satellite communications is a growing research field with bright commercial perspectives. One of the challenges for optical links through the atmosphere is turbulence, which is also apparent by the twinkling of stars. The reduction of the quality can be calculated, but it needs the turbulence strength over the path the optical beam is running. Estimation of the turbulence strength is done at astronomic sites, but not at rural or urban sites. To be able to do this, a simple instrument is required. We want to propose to use a single star Scintillation Detection and Ranging (SCIDAR), which is an instrument that can estimate the turbulence strength, based on the observation of a single star. In this setting, reliable signal processing of the received images of the star is most challenging. We propose to solve this by Machine Learning.
Repository Contents
This repository contains the workflow to implement and train machine learning models for turbulence strength estimation from SCIDAR data. Extensive Documentation is available to explain the methodology, algorithms used, and guidelines for using the code.
Getting Started
To get started with the project, follow these steps:
-
Install the package:
python -m pip install speck2cn
-
Or: Clone the repository:
git clone https://github.com/MALES-project/SpeckleCn2Profiler.git cd SpeckleCn2Profiler git submodule init git submodule update
Usage
To use the package, you run the commands such as:
python <mycode.py> <path_to_config.yml>
where <mycode.py>
is the name of the script that trains/uses the speckcn2
model and <path_to_config.yml>
is the path to the configuration file.
Here you can find a typical example run and an explanation of all the main configuration parameter. In the example submodule you can find multiple examples and multiple configuration to take inspiration from.
What can we predict?
A machine learning model trained using speckcn2
can predict:
1. Instantaneous turbulence strength
Given a speckle pattern, the model can predict the instantaneous turbulence strength and also provide an uncertainty estimate if more patterns are available.
2. Parameters estimation
The model can also estimate important parameters that are useful for the analysis of the speckle pattern. At the moment we support:
- Fried parameter
r0
- Isoplanatic angle
θ0
- Rytov Index
σ
We also provide histograms of the estimated parameters and the error of the estimation.
Contribution Guidelines
We welcome contributions to improve and expand the capabilities of this project. If you have ideas, bug fixes, or enhancements, please submit a pull request. Check out our Contributing Guidelines to get started with development.
Generative-AI Disclaimer
Parts of the code have been generated and/or refined using GitHub Copilot. All AI-output has been verified for correctness, accuracy and completeness, revised where needed, and approved by the author(s).
How to cite
Please consider citing this software that is published in Zenodo under the DOI 10.5281/zenodo.11447920.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file speckcn2-1.0.0.tar.gz
.
File metadata
- Download URL: speckcn2-1.0.0.tar.gz
- Upload date:
- Size: 35.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 197465e0f1ede80ebf358a35d338256c275805dc6f9ea0fb9f5bc92b642ca737 |
|
MD5 | 383e2c4bf7c341b70a2e09f30fc5c536 |
|
BLAKE2b-256 | 0d85927700b60dc529614ef40d191424a64111115d6c983cb3483b3e62f10752 |
Provenance
The following attestation bundles were made for speckcn2-1.0.0.tar.gz
:
Publisher:
publish.yaml
on MALES-project/SpeckleCn2Profiler
-
Statement type:
https://in-toto.io/Statement/v1
- Predicate type:
https://docs.pypi.org/attestations/publish/v1
- Subject name:
speckcn2-1.0.0.tar.gz
- Subject digest:
197465e0f1ede80ebf358a35d338256c275805dc6f9ea0fb9f5bc92b642ca737
- Sigstore transparency entry: 149486803
- Sigstore integration time:
- Predicate type:
File details
Details for the file speckcn2-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: speckcn2-1.0.0-py3-none-any.whl
- Upload date:
- Size: 41.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4629cb249ce9a2d5c9bee1246acbc3739514e250b8e57b15f845a0bb3ea5f6aa |
|
MD5 | ada1c03fbac2749d85ca2959e1c690ce |
|
BLAKE2b-256 | 637b2c33782a0da6d95b448ec2b264cecfd603b83b4c08251c740d3583d93ab1 |
Provenance
The following attestation bundles were made for speckcn2-1.0.0-py3-none-any.whl
:
Publisher:
publish.yaml
on MALES-project/SpeckleCn2Profiler
-
Statement type:
https://in-toto.io/Statement/v1
- Predicate type:
https://docs.pypi.org/attestations/publish/v1
- Subject name:
speckcn2-1.0.0-py3-none-any.whl
- Subject digest:
4629cb249ce9a2d5c9bee1246acbc3739514e250b8e57b15f845a0bb3ea5f6aa
- Sigstore transparency entry: 149486804
- Sigstore integration time:
- Predicate type: