Scripts & Tools
Task Automation and Software Enhancements for NABat Tasks
Below you will find a suite of scripts and other tools, many of which were developed by the SEBatHub, for workflow enhancements related to common NABat data management and processing tasks. These tools are intended to save time, increase thoroughness, or provide additional features to software commonly used for analyzing and managing bat data. Because your system or file and metadata organization formats may differ from the testing environments, some of the tools may not function as intended.
We highly recommend backing up your data before using any of the functions of the tools which modify data. By downloading and using these tools, you must agree that you understand these statements. If you experience issues, the tools do not function, or you have suggestions, please contact us or check the scripts and tools threads in the Discussion Forum.
​
Many of the tools below are .py files, which are Python scripts. For more information and guidance on running these scripts, see our Python Instructions page.
Acoustic Data Tools
Scripts and tools related to acoustic data management and processing.
AudioMoth Data Summary (Python Script)
PyAudioMothGetDataInfo_V20230626.py
This interactive Python script will read AudioMoth WAV files to gather nightly survey start and end timestamps, survey duration, maximum gap between recorded files, and detector serial numbers. Note that all this information is based on the recorded data, so factors affecting bat activity and presence or the recorded files will affect the results of this script. A Python installation is required to run the script. Follow the Download link and check the README file for more information and instructions on running the script.
Get ZC File Counts (Python Script)
PyAcZCGetFileCounts.py
This is a very simple script which will scan for ZC files in a path, tally counts by sub-folder, and export a CSV table. A Python installation is required to run the script. Follow the Download link and check the README file for more information and instructions on running the script.
Kaleidoscope Assistant (AHK Script)
AHK_KaleidoscopeAssistant.ahk (Version 20240725)
This interactive AutoHotkey script enhances and simplifies auto-classification of acoustic data for NABat in Kaleidoscope Pro. The script will guide you through the required and optional NABat metadata entry, and auto-fill some of the information that can be read from the acoustic files themselves. It will also perform some important QA/QC and notify you of any inconsistencies in the acoustic data or improperly formatted metadata. Catching these issues before you have processed, manually vetted, and uploaded your data can save valuable time. To run this script, you must first install AutoHotkey, an open source automation scripting language: https://www.autohotkey.com/ Follow the Download link and check the README file for more information and instructions on running the script.
Compare Raw ZC data to Processed data (Python Script)
PyAcZCCompareRawToProc_V20230602.py
This Python script compares a directory of raw ZC data to a directory of processed ZC data and notes any differences in folders and file counts between the two directories. It can be useful to check that each raw dataset has been processed and no files were incorrectly copied or mislabeled. When finished, It will export a CSV table listing each raw path and its associated processed path, and any paths which did not have matches. The table will have file count fields as well as an error tracking field. Follow the Download link and check the README file for more information and instructions on running the script.
File Renaming (Python Script)
Py_AcousticFileRenamer_V20240910.py
Use this interactive Python script to rename acoustic files into the NABat format. It was written to work with AnaBat WAV and zero-crossing files and Wildlife Acoustics WAV files. It can work with raw data or data processed by Kaleidoscope Pro. It will auto-convert the AnaBat 8.3 filenames into readable timestamps. It will also update the associated filename entries in meta.csv, id.csv, and log.txt files from Kaleidoscope output, if applicable, so they match the renamed files. Follow the Download link and check the README.txt file for more information and instructions on running the script.
Alternative File Renaming Application
Bulk Rename Utility
Not developed by SE Bat Hub. This free file renaming tool for Windows provides highly customizable file renaming operations. You may replace, insert, append, and conditionally modify text in filenames. The user interface has many options, and you can find help online. It works with any filetype, which is very useful, but be careful to only rename the files you intend to modify. Follow the Download link for more information and to download the software from the official website.
SonoBat to NABat upload format (Python Script)
PySonoBatTXT_to_NABatTemplate_V20240306.py
This script will read SonoBat Vetting Table TXT output for mobile and stationary data and convert it to a CSV which can be directly uploaded to the NABat partner portal. Use this to directly convert the SonoBat output. No manual editing or conversions are required. The script will perform some minor quality control checks to drop empty entries (likely bugged files) from the table, detect files with missing timestamps or timestamps outside the recorded start and end times, and prompt the user to enter an accepted SonoBat version, if needed. It will list bugged or error files in the command window to notify the user. Follow the Download link and check the README.txt file for more information and instructions on running the script.
Call File Sorting for Manual Vetting (Python Script)
PyKalProZC_SpeciesSortForVetting_V20230123.py
This script will read zero-crossing bat acoustic recording files and group files by species and recording metrics calculated by Kaleidoscope for more efficient manual vetting of large datasets. Optionally, you can sort by call metrics or just group by species, you can group NoIDs that have an alternate ID with calls auto-IDed to those species, and if your data are in nightly sub-folders, you can choose to group them by site rather than by night. It has been tested with files processed with Kaleidoscope using the NABat instructions and metadata forms found here: https://www.nabatmonitoring.org/kaleidoscope-stationary Use this same script, of the same version, to undo the sorting and return the original filenames. All previous releases are available at the Download link, as well as the latest version. Follow the Download link and check the README.txt file for more information and instructions on running the script.
Kaleidoscope Manual ID Populator (Python Script)
PyKalProZC_AWManualIDPopulator_V20240729.py
This script will read manual IDs from zero-crossing files which were auto-classified by Kaleidoscope and manually IDed in AnalookW to insert KPro-formatted manual ID(s) in the acoustic files and update the manual ID values in the meta.csv and id.csv files generated during the auto-classifying process. We created this script because some partners prefer to use AnalookW to manually vet data, but doing so will not update manual IDs in the Kaleidoscope output files. Acoustic files should first be auto-classified following steps 1-11 of the NABat guide on https://www.nabatmonitoring.org/kaleidoscope-stationary In cases of multiple manually identified calls in a single call file, the script will automatically duplicate the original file, apply a single manual ID to each copy, and duplicate the call file row in the CSV files, as instructed by the NABat central coordinating office. Follow the Download link and check the README.txt file for more information and instructions on running the script.
Kaleidoscope NABat Meta CSV Vetting Summary Generator (Python Script)
PyKalPro_NABatMeta_Summary_V20230726.py
This script will read a Kaleidoscope Pro NABat formatted meta-only meta.csv file and summarize species manual vetting counts by transect/site and/or by transect/site by night. Use this to quickly get a summary of vetting results. Follow the Download link and check the README.txt file for more information and instructions on running the script.
Stationary Acoustic Data Meta.CSV Reformatter (Python Script)
PyNABatReformatStationaryAcousticTo2024Template_V20241025.py
Interactive script to guide you through reformatting a stationary acoustic dataset from the legacy NABat template into the September 2024 template. Allows you to upload your results without reprocessing the data. The script will check for all the required fields, allow you to retain depreciated fields for your own records, give you options for reclassifying categorical fields into their new accepted values, and more. Please look through the reformatted output to verify your selections were made correctly and the script functioned properly. Datasets are unique, thus there may be unique incidences we have not yet tested. Reach out to us if you find an unexpected result or have an issue with the script. Follow the Download link and check the README.txt file for more information and instructions on running the script.
Mobile Acoustic Data Meta.CSV Reformatter (Python Script)
PyNABatReformatMobileAcousticTo2024Template_V20241025.py
Interactive script to guide you through reformatting a mobile transect acoustic dataset from the legacy NABat template into the September 2024 template. Allows you to upload your results without reprocessing the data. The script will check for all the required fields, allow you to retain depreciated fields for your own records, give you options for reclassifying categorical fields into their new accepted values, and more. Please look through the reformatted output to verify your selections were made correctly and the script functioned properly. Datasets are unique, thus there may be unique incidences we have not yet tested. Reach out to us if you find an unexpected result or have an issue with the script. Follow the Download link and check the README.txt file for more information and instructions on running the script.
Other Scripts & Tools
General scripts and tools that can assist NABat related tasks.
AnaBat SD2 Transect Tool (Python Script)
PyAnaBatSD2TransectTool_20240625.py
Use this tool to explore mobile transect data from SD2s. Quickly attribute coordinates to acoustic files, review an interactive map of the transect and data, and get a KML for the partner portal. This tool is an expansion on the Mobile Route KML script for SD2s (below), with more features. In addition to reading an AnaBat SD2 gps.txt file and converting it to a KML for uploading mobile transects to the NABat partner portal, it will attribute GPS coordinates to SD2 acoustic files, and generate a lightweight, interactive browser-based map of the transect, GRTS cells, and recording locations. It will search for bugged date entries and attempt to correct them. It will also search for multiple events, point by point, based on a time difference of 6 hours. Follow the Download link and check the README.txt file for more information and instructions on running the script.
Mobile Route KML from AnaBat SD2 gps.txt (Python Script)
PyAnaBatSD2GPStoKML_BETA20221031.py
This script will read an AnaBat SD2 gps.txt file and convert it to a KML, which can be uploaded to the NABat partner portal for mobile transect routes. It will search for bugged date entries and attempt to correct them. It will also search for multiple events, point by point, based on a time difference of 6 hours. Follow the Download link and check the README.txt file for more information and instructions on running the script.
AnaBat Swift / Ranger Transect Tool (Python Script)
PyAnaBatSwiftRangerTransectTool_V20240906.py
Use this tool to explore mobile transect data from an AnaBat Swift or Ranger. Quickly review an interactive map of the transect and data, and get a KML for the partner portal. This tool is an expansion on the Mobile Route KML script for Swifts (below), with more features. In addition to reading an AnaBat GPX file and converting it to a KML for uploading mobile transects to the NABat partner portal, it will generate a lightweight, interactive browser-based map of the transect, GRTS cells, and recording locations. Follow the Download link and check the readme file for more information and instructions on running the script.
Mobile Route KML from AnaBat Swift GPX (Python Script)
PyAnaBatSwiftGPXtoKMLLineStringBETA20231214.py
This script will take GPX file(s) from AnaBat Swift data, extract the LineString feature, and export it as a KML file, which can be uploaded to the NABat partner portal for mobile transect routes. It will work with data with single and multiple GPX files from a single transect. The script can run a spatial analysis to check which cells the route intersects, and can generate a map image of the route, if you desire. Extraneous data could be contained in some GPX files if the detector was tested and the card was not cleared before the survey, so the output should be reviewed before uploading. Follow the Download link and check the README.txt file for more information and instructions on running the script.
File List Generator (Python Script)
pyGetFiles.py
This is a very simple script which will prompt you to enter a path. It will scan this path for files and folders, and output a FilesList text file listing them all. It can be useful for sharing data structure with someone assisting with data management and processing without the need to upload or transfer all the data itself.