A Python package for Hyperspectral Quality Estimation and computing image-wide noise in hyperspectral imaging (imaging spectroscopy)
Project description
HyperQuest
hyperquest: A Python package for estimating image-wide noise across wavelengths in hyperspectral imaging (imaging spectroscopy) with an emphasis on repeatability and speed. Computations are sped up and scale with number of cpus.
Plenty of methods for denoising imagery already exist, however, sometimes there are applications where knowing/comparing SNR from image conditions is of interest. It is also important to point out this is not instrument noise, which is measured in laboratory. These methods here provide an estimate of "actual noise in real conditions" (Curran & Dungan, 1989; Cogliati et al., 2021).
It's my hope hyperquest may be a useful tool and/or learning resource for computing SNR from imaging spectroscopy data. Comments and suggestions are welcome!
Installation Instructions
The latest release can be installed via pip:
pip install hyperquest
Methods currently available
-
(HRDSDC) Homogeneous regions division and spectral de-correlation (Gao et al., 2008)
-
(SSDC) Spectral and spatial de-correlation (Roger & Arnold, 1996)
-
(RLSD) Residual-scaled local standard deviation (Gao et al., 2007)
Usage example
import hyperquest
import matplotlib.pyplot as plt
# Define path to envi image header file
envi_hdr_path = '/path/my_spectral_image.hdr'
# get wavelengths
wavelengths = hyperquest.read_center_wavelengths(envi_hdr_path)
# compute using HRDSDC method
snr = hyperquest.hrdsdc(envi_hdr_path, n_segments=10000,
compactness=0.1, n_pca=3, ncpus=3)
plt.scatter(wavelengths, snr, color='black', s=100, alpha=0.7)
TODO:
-
brainstorm: other quality metrics outside of SNR in this package?
-
including other segmentation methods? Currently is all built around SLIC (via scikitlearn).
-
provide Cogliati et al. (2021) method: extract edges and also include neighbor pixel.
References:
-
Cogliati, S., Sarti, F., Chiarantini, L., Cosi, M., Lorusso, R., Lopinto, E., ... & Colombo, R. (2021). The PRISMA imaging spectroscopy mission: overview and first performance analysis. Remote sensing of environment, 262, 112499.
-
Curran, P. J., & Dungan, J. L. (1989). Estimation of signal-to-noise: a new procedure applied to AVIRIS data. IEEE Transactions on Geoscience and Remote sensing, 27(5), 620-628.
-
Gao, L., Wen, J., & Ran, Q. (2007, November). Residual-scaled local standard deviations method for estimating noise in hyperspectral images. In Mippr 2007: Multispectral Image Processing (Vol. 6787, pp. 290-298). SPIE.
-
Gao, L. R., Zhang, B., Zhang, X., Zhang, W. J., & Tong, Q. X. (2008). A new operational method for estimating noise in hyperspectral images. IEEE Geoscience and remote sensing letters, 5(1), 83-87.
-
Roger, R. E., & Arnold, J. F. (1996). Reliably estimating the noise in AVIRIS hyperspectral images. International Journal of Remote Sensing, 17(10), 1951-1962.
-
Tian, W., Zhao, Q., Kan, Z., Long, X., Liu, H., & Cheng, J. (2022). A new method for estimating signal-to-noise ratio in UAV hyperspectral images based on pure pixel extraction. IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing, 16, 399-408.
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 hyperquest-0.1.1.tar.gz.
File metadata
- Download URL: hyperquest-0.1.1.tar.gz
- Upload date:
- Size: 10.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad95c25ba1a16d564bd2d19be0e89be548b74a3e88816e8c8bd3ec90ce7664c7
|
|
| MD5 |
8b449ef79488aae3b8370d2cedafb582
|
|
| BLAKE2b-256 |
a98eb78d17dc95fd9d30852cee070a1778c2375381f9d4b571c274bd342aab63
|
File details
Details for the file hyperquest-0.1.1-py3-none-any.whl.
File metadata
- Download URL: hyperquest-0.1.1-py3-none-any.whl
- Upload date:
- Size: 9.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2f148d226e714fe4267059476138f67d9453b72f6d4203ef0d521bc144f2dc4
|
|
| MD5 |
079c69b92d19ebac1aba1b0f456bd62e
|
|
| BLAKE2b-256 |
498619dc3aa7884808a467f6130fcfa2baac30c5293806fb6a1a588c97e97a7f
|