Ecoacoustic Global Complexity Index (EGCI)
Project description
EGCI (Ecoacoustics Global Complexity Index)
The EGCI python package provides a tool for calculating the Ecoacoustic Global Complexity Index (EGCI), an innovative approach for quantifying the complexity of audio segments recorded by acoustic sensors in environments with high biodiversity, such as the Amazon rainforest. It is an unsupervised method for robust characterization of ecoacoustic richness.
Features
-
EGCI Calculation: Compute the Ecoacoustic Global Complexity Index using a combination of Entropy, Divergence, and Statistical Complexity, enabling a holistic assessment of the biodiversity of an acoustic environment.
-
Visualization: Helps to visualize the ecoacoustic dynamics of the rainforest by mapping each audio segment, of varying lengths, as a single point in a 2D-plane, aiding in the understanding of the soundscape.
-
Unsupervised Method: The EGCI employs unsupervised methods, eliminating the need for individual species labeling. This makes the package well-suited for handling large amounts of raw audio data and provides a robust characterization of ecoacoustic richness.
Citation
If you use the EGCI package in your research or work, please consider citing the original article: Colonna JG, Carvalho JRH, Rosso OA (2020) Estimating ecoacoustic activity in the Amazon rainforest through Information Theory quantifiers. PLOS ONE 15(7): e0229425. https://doi.org/10.1371/journal.pone.0229425
How to use
import numpy as np
import soundfile as sf
import EGCI
import matplotlib.pyplot as plt
# download a record file from this url: "https://drive.google.com/file/d/1QL5GimLjGLKBIiMzoa7VXlCR4GCpWBwc/view?usp=drivesdk"
# load this record
x, fs = sf.read('Adenomera andre.wav') # record of an anuran call
lag = 256 # time lag
C, H, J = EGCI.index(x, lag=lag) # C is the EGCI
boundaries_C, boundaries_H = EGCI.boundaries(lag) # these boundaries are only useful for plotting
plt.figure()
plt.plot(boundaries_H, boundaries_C, '--k')
plt.scatter(H, C, marker='.', s=100, label='Adenomera andre')
plt.xlabel('Entropy')
plt.ylabel('EGCI (Complexity)')
plt.xlim([0, 1])
plt.ylim([0, np.max(boundaries_C)+0.01])
plt.title('Adenomera andre.wav')
plt.legend(loc = 'best')
plt.show()
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
File details
Details for the file EGCI-1.0.2.post1.tar.gz
.
File metadata
- Download URL: EGCI-1.0.2.post1.tar.gz
- Upload date:
- Size: 4.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e82c7a23efa0328b5bf72b2dfaa9a19c49efa443f1455f309b98a37ca40be7c3 |
|
MD5 | 0be6553c12bac7b77b5f0472f36b5142 |
|
BLAKE2b-256 | 1978b3ea6f2b83e4c6f29ed42bd667f98782f7fbf2fafefae54748308b4535cc |
File details
Details for the file EGCI-1.0.2.post1-py3-none-any.whl
.
File metadata
- Download URL: EGCI-1.0.2.post1-py3-none-any.whl
- Upload date:
- Size: 5.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5f6689e216e7b294caf3beb6938904e81ff22610ba5083b936e58dd662546bac |
|
MD5 | 928fcfe772619a43118276c92c509bc7 |
|
BLAKE2b-256 | f0d0a3a5f6984ad326e88a589ffb2d7d986fb68368ec63762187cee1f37a0128 |