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()
Metadata
Release files for EGCI 1.0.2.post1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| EGCI-1.0.2.post1.tar.gz | 4.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| EGCI-1.0.2.post1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 10.1 kB
Release files / EGCI-1.0.2.post1.tar.gz
| Download URL | EGCI-1.0.2.post1.tar.gz |
|---|---|
| Size | 4.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e82c7a23efa0328b5bf72b2dfaa9a19c49efa443f1455f309b98a37ca40be7c3
|
|
BLAKE2b-256 checksum How to use checksums |
1978b3ea6f2b83e4c6f29ed42bd667f98782f7fbf2fafefae54748308b4535cc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.10.12
|
Release files / EGCI-1.0.2.post1-py3-none-any.whl
| Download URL | EGCI-1.0.2.post1-py3-none-any.whl |
|---|---|
| Size | 5.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5f6689e216e7b294caf3beb6938904e81ff22610ba5083b936e58dd662546bac
|
|
BLAKE2b-256 checksum How to use checksums |
f0d0a3a5f6984ad326e88a589ffb2d7d986fb68368ec63762187cee1f37a0128
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.10.12
|