Physics-based simulation of light propagation in turbulent atmosphere
Project description
pyAtmosphere
Physics-based simulation of light propagation in turbulent atmosphere.
Installation
*Highly recommend to use virtual environment.
Use the package manager pip to install required packages.
pip install -r requirements.txt
If you want to use GPU for simulation, you need to install CUDA on your machine.
Additinally, the cupy python package is required. For example, for CUDA 11.0:
pip install cupy-cuda110
Usage
GPU usage
If you want to enable GPU simulation, execute at the beginning of your script:
from pyatmosphere import gpu
gpu.config['use_gpu'] = True
QuickChannel example
from pyatmosphere import QuickChannel
quick_channel = QuickChannel(
Cn2=1e-15,
length=10000,
count_ps=5,
beam_w0=0.09,
beam_wvl=8.08e-07,
aperture_radius=0.12
)
quick_channel.plot()
Advanced channel
import numpy as np
from pyatmosphere import (
Channel,
RectGrid,
RandLogPolarGrid,
GaussianSource,
IdenticalPhaseScreensPath,
SSPhaseScreen,
CirclePupil,
MVKModel,
measures
)
channel = Channel(
grid=RectGrid(
resolution=2048,
delta=0.0015
),
source=GaussianSource(
wvl=808e-9,
w0=0.12,
F0=np.inf
),
path=IdenticalPhaseScreensPath(
phase_screen=SSPhaseScreen(
model=MVKModel(
Cn2=5e-16,
l0=6e-3,
L0=1e3,
),
f_grid=RandLogPolarGrid(
points=2**10,
f_min=1 / 1e3 / 15,
f_max=1 / 6e-3 * 2
)
),
length=50e3,
count=5
),
pupil=CirclePupil(
radius=0.2
),
)
channel_output = channel.run(pupil=False)
intensity = measures.I(channel, output=channel_output)
mean_x = measures.mean_x(channel, output=channel_output)
Simulations
from pyatmosphere import simulations
beam_result = simulations.BeamResult(quick_channel, max_size=2000)
pdt_result = simulations.PDTResult(quick_channel, max_size=6000)
sim = simulations.Simulation([beam_result, pdt_result])
sim.run(plot_step=1000)
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Feel free to open new issues if you have any questions.
License
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyAtmosphere-0.0.1.tar.gz.
File metadata
- Download URL: pyAtmosphere-0.0.1.tar.gz
- Upload date:
- Size: 60.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
604a2f6140ca41251a815318d97f361af1318ffb96d057e0bdb8ff791b5d1f85
|
|
| MD5 |
aa29e281851432b5dcbfc5d3dc75d673
|
|
| BLAKE2b-256 |
dbac6922fd6ca31c8e1efe2e7e13dff9c6029db8c57fefe9de5b1f43311e9707
|
File details
Details for the file pyAtmosphere-0.0.1-py3-none-any.whl.
File metadata
- Download URL: pyAtmosphere-0.0.1-py3-none-any.whl
- Upload date:
- Size: 56.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8fa7f1d27420cfe8107dac01055cd0021145fab0769b5d36d036f8cfd4f01ae0
|
|
| MD5 |
5de8b586142c6cd4104992fcb00f5b88
|
|
| BLAKE2b-256 |
119e4235d7a8f76d3bb804be10ef801529be164c8f7aee9648c3311802496ac3
|