Describe the bug
When running BirdNET-Analyzer v2.4.0 with --split_tables enabled, the analyzer ignores the output directory specified by the -o / --output argument. Instead, it writes all .csv result files directly into the input source directory alongside the audio files.
This behavior poses significant issues for HPC/Cluster environments:
- We aim to keep raw audio data (source directories) separate from analysis results.
- In some environments, source data directories are mounted as read-only or have restricted write access for the user/process.
- We are currently forced to implement manual "post-processing" scripts to move and clean up files after the analysis, which is prone to errors.
To Reproduce
python3 -m birdnet_analyzer.analyze
/data/input/
-o /data/output/
-c /data/CustomClassifier.tflite
--cc_species_list /data/CustomClassifier_Labels.txt
--min_conf 0.1
--rtype csv
--n_workers 8
--split_tables
Expected behavior
The analyzer should respect the user-defined -o output path and direct all generated .csv sidecar files to that location, regardless of the --split_tables setting.
Desktop (please complete the following information):
Version: 2.4.0
Platform: Linux HPC Cluster
Usage: Python CLI / Custom Classifier
Additional context
My Use Case / Context:
I am processing large-scale datasets (150,000+ audio files). Using a single output file is not feasible because:
It creates a massive performance bottleneck due to write-locking when using multiple workers.
The resulting file would be unmanageably large, especially with lower confidence thresholds.
The --split_tables feature is essential to ensure partial progress is saved in case of job timeouts or failures.
Describe the bug
When running BirdNET-Analyzer v2.4.0 with --split_tables enabled, the analyzer ignores the output directory specified by the -o / --output argument. Instead, it writes all .csv result files directly into the input source directory alongside the audio files.
This behavior poses significant issues for HPC/Cluster environments:
To Reproduce
python3 -m birdnet_analyzer.analyze
/data/input/
-o /data/output/
-c /data/CustomClassifier.tflite
--cc_species_list /data/CustomClassifier_Labels.txt
--min_conf 0.1
--rtype csv
--n_workers 8
--split_tables
Expected behavior
The analyzer should respect the user-defined -o output path and direct all generated .csv sidecar files to that location, regardless of the --split_tables setting.
Desktop (please complete the following information):
Version: 2.4.0
Platform: Linux HPC Cluster
Usage: Python CLI / Custom Classifier
Additional context
My Use Case / Context:
I am processing large-scale datasets (150,000+ audio files). Using a single output file is not feasible because:
It creates a massive performance bottleneck due to write-locking when using multiple workers.
The resulting file would be unmanageably large, especially with lower confidence thresholds.
The --split_tables feature is essential to ensure partial progress is saved in case of job timeouts or failures.