Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

EGCI-1.0.2.post1.tar.gz (4.9 kB view details)

Uploaded Source

Built Distribution

EGCI-1.0.2.post1-py3-none-any.whl (5.3 kB view details)

Uploaded Python 3

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

Hashes for EGCI-1.0.2.post1.tar.gz
Algorithm Hash digest
SHA256 e82c7a23efa0328b5bf72b2dfaa9a19c49efa443f1455f309b98a37ca40be7c3
MD5 0be6553c12bac7b77b5f0472f36b5142
BLAKE2b-256 1978b3ea6f2b83e4c6f29ed42bd667f98782f7fbf2fafefae54748308b4535cc

See more details on using hashes here.

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

Hashes for EGCI-1.0.2.post1-py3-none-any.whl
Algorithm Hash digest
SHA256 5f6689e216e7b294caf3beb6938904e81ff22610ba5083b936e58dd662546bac
MD5 928fcfe772619a43118276c92c509bc7
BLAKE2b-256 f0d0a3a5f6984ad326e88a589ffb2d7d986fb68368ec63762187cee1f37a0128

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page