top of page

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.

PythonScriptImage.jpg

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 20240417)

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 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)

PyKalProZC_AcousticFileRenamerBETA20240307.py

This interactive Python script will rename zero-crossing files from AnaBat SD2 and Swift (Express not yet tested) which have been processed by Kaleidoscope. It will auto-convert the 8.3 filenames from SD2 units into readable datetimes and convert all filenames to the NABat format. It will also update the associated filename entries in meta.csv, id.csv, and log.txt files from Kaleidoscope output so they match the renamed files. Acoustic files should first be auto-classified following steps 1-10 of the NABat guide on https://www.nabatmonitoring.org/kaleidoscope-stationary 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_V20230614.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 The script will optionally update a master meta.csv, as is generated in steps 12-17 of the NABat Kaleidoscope guide (above). 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.

Other Scripts & Tools

General scripts and tools that can assist NABat related tasks.

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.

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.

bottom of page