speckcn2
:satellite: :cyclone: A platform to use speckle patterns to describe atmospheric turbulence
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 4 DOI reference(s) in README -
✓Academic publication links
Links to: joss.theoj.org, zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.7%) to scientific vocabulary
Keywords
Repository
:satellite: :cyclone: A platform to use speckle patterns to describe atmospheric turbulence
Basic Info
- Host: GitHub
- Owner: MALES-project
- License: apache-2.0
- Language: Python
- Default Branch: main
- Homepage: https://males-project.github.io/SpeckleCn2Profiler/
- Size: 4.68 MB
Statistics
- Stars: 9
- Watchers: 1
- Forks: 0
- Open Issues: 1
- Releases: 4
Topics
Metadata Files
README.md

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:
Prerequisites: In order to correctly install
speckcn2you needpython3.9or higher. If you don't have it installed, you can download it from the official website. You will also need the header files that are required to compile Python extensions and are contained inpython3-dev. On Ubuntu, you can install them with:bash apt-get install python3-devInstall the package:
bash python -m pip install speckcn2Or: Clone the repository:
bash git clone https://github.com/MALES-project/SpeckleCn2Profiler.git cd SpeckleCn2Profiler git submodule init git submodule update pip install .
Usage
To use the package, you run the commands such as:
console
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 Apache 2.0 License - see the LICENSE file for details.
Owner
- Name: MALES-project
- Login: MALES-project
- Kind: organization
- Repositories: 1
- Profile: https://github.com/MALES-project
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: Speckle to Cn2
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Simone
family-names: Ciarella
email: s.ciarella@esciencecenter.nl
affiliation: Netherlands eScience Center
orcid: 'https://orcid.org/0000-0002-9247-139X'
- given-names: Victor
family-names: Azizi
affiliation: Netherlands eScience Center
orcid: 'https://orcid.org/0000-0003-3535-8320'
- given-names: Luisa
family-names: Orozco
email: l.orozco@esciencecenter.nl
orcid: 'https://orcid.org/0000-0002-9153-650X'
affiliation: Netherlands eScience Center
- given-names: Marguerite
family-names: Arvis
email: m.arvis@tudelft.nl
orcid: 'https://orcid.org/0009-0006-7409-3985'
affiliation: Delft University of Technology
- given-names: Rudolf
family-names: Saathof
email: r.saathof@tudelft.nl
orcid: 'https://orcid.org/0000-0003-0368-0139'
affiliation: Delft University of Technology
repository-code: 'https://github.com/MALES-project/SpeckleCn2Profiler'
url: 'https://speckcn2.readthedocs.io'
abstract: >-
Estimate Cn2 from Speckle patterns using machine learning
keywords:
- machine learning
- equivariant cnn
- optical satelites
- turbulence
- laser communication
license: Apache-2.0
version: 1.0.1
GitHub Events
Total
- Create event: 17
- Release event: 2
- Issues event: 10
- Watch event: 4
- Delete event: 13
- Issue comment event: 3
- Push event: 115
- Pull request review comment event: 1
- Pull request review event: 3
- Pull request event: 24
Last Year
- Create event: 17
- Release event: 2
- Issues event: 10
- Watch event: 4
- Delete event: 13
- Issue comment event: 3
- Push event: 115
- Pull request review comment event: 1
- Pull request review event: 3
- Pull request event: 24
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 0
- Total pull requests: 1
- Average time to close issues: N/A
- Average time to close pull requests: 2 minutes
- Total issue authors: 0
- Total pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 1
- Average time to close issues: N/A
- Average time to close pull requests: 2 minutes
- Issue authors: 0
- Pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- SCiarella (26)
- luisaforozco (5)
- MagArvis (1)
- v1kko (1)
Pull Request Authors
- SCiarella (11)
- v1kko (5)
- luisaforozco (3)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 119 last-month
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 42
- Total maintainers: 1
pypi.org: speckcn2
Estimate Cn2 from Speckle patterns using machine learning
- Documentation: https://speckcn2.readthedocs.io/
- License: Apache 2.0 License
-
Latest release: 1.0.1
published about 1 year ago
Rankings
Maintainers (1)
Dependencies
- actions/checkout v3 composite
- actions/setup-python v4 composite
- pre-commit/action v3.0.0 composite
- actions/cache v2 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- fortran-lang/setup-fortran v1 composite
- ryan-rozario/pipreqs-action master composite
- schneegans/dynamic-badges-action v1.6.0 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- fortran-lang/setup-fortran v1 composite
- pypa/gh-action-pypi-publish release/v1 composite
- PyYAML *
- cython *
- escnn *
- h5py *
- lie_learn @ git+https://github.com/AMLab-Amsterdam/lie_learn
- matplotlib >= 3.6.0
- numpy *
- scipy >=1.9.3
- torch *
- torchvision *
- PyYAML *
- cython *
- escnn *
- h5py *
- matplotlib >=3.6.0
- numpy *
- scipy >=1.9.3
- torch *
- torchvision *
- autograd ==1.6.2
- certifi ==2024.2.2
- charset-normalizer ==3.3.2
- contourpy ==1.2.1
- cycler ==0.12.1
- cython ==3.0.10
- escnn ==1.0.11
- filelock ==3.13.3
- fonttools ==4.50.0
- fsspec ==2024.3.1
- future ==1.0.0
- h5py ==3.10.0
- idna ==3.6
- jinja2 ==3.1.3
- joblib ==1.3.2
- kiwisolver ==1.4.5
- markupsafe ==2.1.5
- matplotlib ==3.8.4
- mpmath ==1.3.0
- networkx ==3.2.1
- numpy ==1.25.2
- nvidia-cublas-cu12 ==12.1.3.1
- nvidia-cuda-cupti-cu12 ==12.1.105
- nvidia-cuda-nvrtc-cu12 ==12.1.105
- nvidia-cuda-runtime-cu12 ==12.1.105
- nvidia-cudnn-cu12 ==8.9.2.26
- nvidia-cufft-cu12 ==11.0.2.54
- nvidia-curand-cu12 ==10.3.2.106
- nvidia-cusolver-cu12 ==11.4.5.107
- nvidia-cusparse-cu12 ==12.1.0.106
- nvidia-nccl-cu12 ==2.19.3
- nvidia-nvjitlink-cu12 ==12.4.127
- nvidia-nvtx-cu12 ==12.1.105
- packaging ==24.0
- pillow ==10.3.0
- py3nj ==0.2.1
- pymanopt ==2.2.0
- pyparsing ==3.1.2
- python-dateutil ==2.9.0.post0
- pyyaml ==6.0.1
- requests ==2.31.0
- scipy ==1.9.3
- six ==1.16.0
- sympy ==1.12
- torch ==2.2.2
- torchvision ==0.17.2
- triton ==2.2.0
- typing-extensions ==4.10.0
- urllib3 ==2.2.1