pamflow is a workflow for analyzing passive acoustic monitoring data using Python. It is designed to offer an easy-to-use and reproducible framework for researchers, conservation biologists, citizen scientists, and anyone interested in ecoacoustics and soundscape ecology.
git clone https://github.com/pamflow/pamflow.git
cd pamflow
Ensure you have Python 3.11 installed. Then, create and activate a virtual environment:
conda create -n pamenv python=3.11
conda activate pamenv
Next, install the required dependencies based on your operating system.
pip install -r requirements-win.txt
pip install -r requirements-mac.txt
- Audio Data: All audio files must be stored in a dedicated directory. Each subdirectory within this directory should have a unique identifier corresponding to the ID or name of each sensor. This structure ensures that recordings are properly associated with their respective sensors.
- Metadata: Make sure you have a field deployment sheet in an Excel format. This sheet must contain a column named
recorderID
, where each value matches the names of the subdirectories in the audio data directory. This ensures proper linking between metadata and recorded audio files.
Edit the ./conf/local/parameters.yml
file to specify the path to your audio files:
DEVICES_ROOT_DIRECTORY: <path to your directory with audio files>
Edit the ./conf/local/catalog.yml
file to define the path to your field deployment sheet:
field_deployments_sheet@pandas:
type: pandas.ExcelDataset
filepath: <path to your Excel file with deployment information>
The workflow can be executed entirely with the command:
kedro run
However, for the first execution, it is recommended to run one pipeline at a time for better control.
kedro run --pipeline=prepare_data
kedro run --pipeline=quality_control
kedro run --pipeline=species_detection
kedro run --pipeline=acoustic_indices
kedro run --pipeline=graphical_soundscape
This project is licensed under the MIT License. See the LICENSE.md file for details.