Simulate InSAR tropospheric noise
Project description
troposim
Simulate tropospheric noise for InSAR data
Installation
pip install troposim
To make an editable installation
git clone https://github.com/scottstanie/troposim && cd troposim
pip install -e .
Usage
To simulate one turbulence image, you can specify the shape:
from troposim import turbulence
noise = turbulence.simulate(shape=(500, 500))
or add a 3rd dimension to simulate a stack of images
noise = turbulence.simulate(shape=(10, 500, 500))
The beta argument is the slope of the log10(power) vs log10(frequency) graph.
The default is to use a single linear slope of $\beta = 8 / 3$:
$$ P(f) \propto \frac{1}{f^\beta} $$
For smaller-scale turbulence, you can use a different beta:
flatter_noise = turbulence.simulate(beta=2.2)
Since real InSAR data typically have a power spectrum that is not a single slope, you can estimate the spectrum from an image and use that to simulate new data:
from troposim.turbulence import Psd
psd = Psd.from_image(noise)
new_noise = psd.simulate()
Here the psd object has attributes
p0: the power at the reference frequencyfreq0beta: a numpy Polynomial which was fit to the log-log PSD along withpsd1d, which are the radially averaged spectrum values at thepsd.freqfrequencies. You can see these with the.plot()method.
# assuming maptlotlib is installed
psd.plot()
# Or, to plot a side-by-side of image and 1D PSD
from troposim import plotting
plotting.plot_psd(noise, freq=freq, psd1d=psd1d)
# Or just the PSD plot, no image
plotting.plot_psd1d(psd.freq, psd.psd1d)
To simulate a stack of new values from the PSD of one image, you simply pass in a new shape argument to .simulate:
psd.simulate(shape=(10, 400, 400))
Note that the default fit will use a cubic polynomial. To request only a linear fit,
psd = Psd.from_image(noise, deg=1)
You can also save the PSD parameters for later use:
psd.save(outfile="my_psd.npz")
# Later, reload from this file
psd = Psd.load(outfile)
Citation
If you find this library useful, please consider citing our paper:
Staniewicz, S., & Chen, J. (2025). Automatic detection of InSAR deformation and tropospheric noise features using computer vision: A case study over West Texas. Journal of Geophysical Research: Solid Earth, 130(7), e2024JB029614.
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
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 troposim-0.2.2.tar.gz.
File metadata
- Download URL: troposim-0.2.2.tar.gz
- Upload date:
- Size: 47.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0b0502a36e7c891a06a2f79533af94445ee16a0ca133a21400dcd0eec96dd29
|
|
| MD5 |
496482461a78b0b42cd5b3a3c3fc067d
|
|
| BLAKE2b-256 |
a2733897637df4d81d73c8f0a5ac221303030e0beb31356102b7183a7d9dd1ab
|
File details
Details for the file troposim-0.2.2-py2.py3-none-any.whl.
File metadata
- Download URL: troposim-0.2.2-py2.py3-none-any.whl
- Upload date:
- Size: 49.4 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a06fff216adf2cbb1c00596d0f633ae714aee073301402ab946bdb7f63eded3e
|
|
| MD5 |
2e524dedada8b5c414ce87ba636ad680
|
|
| BLAKE2b-256 |
85e3449423b6a10a7380644d0e2071002c10b4c656b1eea8f292e3339624390b
|