Skip to main content

Estimate Cn2 from Speckle patterns using machine learning

Project description

Python application test Coverage Documentation Status PyPI - Python Version PyPI FAIR checklist badge DOI RSD

MALES banner MALES banner

SpeckleCn2Profiler:

Improving Satellite Communications with SCIDAR and Machine Learning

Graphical abstract

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

prediction 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

speckcn2-1.0.0.tar.gz (35.9 kB view details)

Uploaded Source

Built Distribution

speckcn2-1.0.0-py3-none-any.whl (41.8 kB view details)

Uploaded Python 3

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

Hashes for speckcn2-1.0.0.tar.gz
Algorithm Hash digest
SHA256 197465e0f1ede80ebf358a35d338256c275805dc6f9ea0fb9f5bc92b642ca737
MD5 383e2c4bf7c341b70a2e09f30fc5c536
BLAKE2b-256 0d85927700b60dc529614ef40d191424a64111115d6c983cb3483b3e62f10752

See more details on using hashes here.

Provenance

The following attestation bundles were made for speckcn2-1.0.0.tar.gz:

Publisher: publish.yaml on MALES-project/SpeckleCn2Profiler

Attestations:

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

Hashes for speckcn2-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4629cb249ce9a2d5c9bee1246acbc3739514e250b8e57b15f845a0bb3ea5f6aa
MD5 ada1c03fbac2749d85ca2959e1c690ce
BLAKE2b-256 637b2c33782a0da6d95b448ec2b264cecfd603b83b4c08251c740d3583d93ab1

See more details on using hashes here.

Provenance

The following attestation bundles were made for speckcn2-1.0.0-py3-none-any.whl:

Publisher: publish.yaml on MALES-project/SpeckleCn2Profiler

Attestations:

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page