Geometry-Responsivity: Water Foraging Bats - Code and Data.
Abstract
Code, data and figures for the manuscript/article Rates, Ripples, and Responsivity: The Geometry of Echolocation in Water-Foraging Bats. Archive DOI: 10.5281/zenodo.18207549. Citation metadata are provided in CITATION.cff. This package contains the four-channel field audio, retained call selections, digitised Hartley observations, geometric and acoustic simulations, numerical reference results, and the figures used in the manuscript and supplement. All analytical inputs are bundled. No connection to another project, bibliography library or personal folder is required. Contents Location Contents code/data/ Field recordings, selected segments and individual call clips; per-channel measurements. code/results/ Retained segment/call decisions and the five-call comparison table. data/hatley_1989/ Digitised source panels, combined table, calibrated Figure 6 crop and overlay. The directory spelling is retained for consistency. code/analyses/ Sectioned MATLAB scripts for the manuscript analyses and sensitivity checks. code/src/ Ripple Studio class and help, signal generator and spectrogram helper. code/optional/field_tools/ Optional recording browsers, call-selection and localisation tools; usage notes. code/helpers/ Portable setup and export utilities. Plot styling helpers are in code/analyses/hartley/helpers/. ripple_studio/ MATLAB-runnable Ripple Studio v1.2, launcher, help and programmatic user guide. install/ Ripple Studio v1.2 macOS installer bundle and Windows installer ZIP, with installation instructions. figures/ Only the 27 graphics included in the main manuscript and supplement. results/reference/ Numerical reference tables for comparison with fresh runs. docs/ Data definitions, figure sources, software versions and reproduction instructions. tools/ Reproduction checks and checksum utilities. Software Use MATLAB R2025b with Signal Processing Toolbox, Statistics and Machine Learning Toolbox, and Curve Fitting Toolbox. Optional localisation tools additionally use Optimization Toolbox; some display functions use Image Processing Toolbox. Software versions are listed in docs/software_environment.json. Python 3 with NumPy, Pillow and ReportLab is used for the duration digitiser and for trimming two figure exports. Install these in an environment of your choice: python3 -m pip install -r requirements.txt MATLAB uses python3 by default. If necessary, specify your own interpreter in MATLAB with setenv('RIPPLES_PYTHON','path-to-your-python'). This is an optional runtime setting, not a required personal path. Install the dependencies before enabling figure exports. Standalone Ripple Studio installers Standalone Ripple Studio v1.2 packages are provided under install/ for macOS and Windows. These web installers require the matching MATLAB Runtime. See install/README.md for platform requirements. The sectioned MATLAB scripts described below reproduce the manuscript analyses. MATLAB-runnable Ripple Studio Ripple Studio v1.2 is provided in ripple_studio/. Run ripple_studio/launch_original_ripplestudio.m in a fresh MATLAB session. The programmatic guide in ripple_studio/README.md explains parameter settings, signal access, panel exports and repeated comparisons. code/launch_ripplestudio.m launches the application with the supplementary figure's geometry settings. Both folders contain a class named RippleStudio; use a fresh MATLAB session when switching between these entry points. Reproduce the analyses Work in a copy of the archive if you want to preserve the distributed files. Open code/run_archive.m in MATLAB. Its three switches default to false when they have not already been set in the workspace. To export the complete numerical results, figures and duration sensitivity analyses, set: saveFigure = true;saveResults = true;runDiagnostics = true;run('code/run_archive.m'); The command above assumes MATLAB's current folder is the archive root. Alternatively, run the script by its full location or use the editor's Run button; the scripts themselves resolve paths from their own locations. Figures remain open. For detailed inspection, run each analysis script section by section; intermediate variables stay in the workspace. The runner executes thirteen entries in dependency order: Entry Script Purpose 1 AM_analyses.m Regenerate measurements from the retained field-call recordings. 2 spectral_AM_comp.m Reproduce the five-call multichannel illustration. 3 analyses/figure1/figure1_consistent.m Illustrate reflection geometry and spectral interference. 4 analyses/figure1/figure8_geometry_combinations.m Calculate geometries consistent with spectral ripple spacing. 5 analyses/figure1/comparative_geometry.m Compare interference-point and receiver geometries at equal spatial scales. 6 analyses/field/figure2_recording_setup.m Assemble the recording-setup figure from retained visual assets. 7 analyses/field/figure6_recorded_summary.m Summarise field measurements across channels. 8 analyses/field/figure7_field_timing.m Calculate field timing predictions. 9 analyses/field/snr_example.m Reproduce the illustrative call/background RMS calculation. 10 analyses/hartley/figure9_hartley.m Analyse duration-corrected Hartley intervals and candidate timing anchors. 11 analyses/array_propagation/array_propagation.m Simulate propagation to the microphone array and evaluate controls. 12 analyses/spectral_consistency/spectral_consistency.m Measure spectral-notch spacing and envelope agreement in field recordings. 13 analyses/array_propagation/array_field_comparison.m Compare simulated and recorded variation across channels. The last comparison needs the preceding analyses; when fresh exports are absent, it reads the bundled reference tables. analysisStart can resume an interrupted run at an entry number after its prerequisites have completed. Set analysisStart=1 to restart the complete pipeline. Each runner entry executes in a separate workspace; run the individual scripts section by section to inspect their intermediate variables. Fresh raw measurements are written to code/outputs/ and are used by subsequent analyses when present; otherwise those analyses read the bundled measurements. Other exports go to the relevant analysis's outputs/ directory, except Hartley exports, which use original_style_duration/, and the illustrative SNR check, which uses field/snr-check/. The runner writes generated graphics beside their analyses; figures/ retains the manuscript's selected graphics. Reference inputs are never overwritten by the MATLAB runner. Diagnostic calculations require runDiagnostics=true; their figures are enabled by the runner, or by setting showDiagnosticFigures=true in the Hartley script. Before running or editing the package, verify its distributed file contents from the archive root: python3 tools/checksums.py --check After running the analyses with saveResults=true, compare their numerical exports with the reference tables: python3 tools/validate_archive.py The numerical checker evaluates 71 CSV tables and writes its comparison record to results/validation/numerical_comparison.json. Checksums describe the distributed files, including saved graphics and validation records. Regenerated outputs can change file hashes even when their numerical values agree; use numerical comparison to assess reproduction and checksum verification to assess the unchanged distribution. When distributing a modified package, regenerate its manifest with python3 tools/checksums.py --write after validating the changes. Digitised Hartley data The source is Hartley, Campbell and Suthers (1989), The acoustic behavior of the fish-catching bat, Noctilio leporinus, during prey capture, DOI 10.1121/1.398225. The included Figure 6 crop is the calibrated source for the duration digitiser; the full third-party article is not bundled. code/analyses/hartley/digitisation/digitise_fig6.py regenerates the duration candidates and overlay. It writes its candidate CSVs into data/hatley_1989/, so run it in a copy if you wish to preserve the distributed exports byte for byte. code/analyses/hartley/consolidate_data.py regenerates the pooled table. The six other panel CSVs are manual digitisation inputs; their original point selection is not an automated analytical step. Silent gaps and durations are smoothed separately at comparable prey distances to approximate onset intervals because the published panels do not identify matched calls. Figure 15 rates describe centroid intervals. Figure 6 duration points were visually checked and retained; quality flags document extraction provenance. See docs/DATA.md for units and limitations. Data selection and figure reproduction Field segmentation and call validation involved human selection. The saved decisions, accepted segment table and call clips are supplied to make all subsequent analyses reproducible. The interactive localisation tools permit inspection or alternative selections; alternative selections define a different analysis cohort. The five-call MATLAB figure, supplied at code/analyses/spectral_consistency/inputs/spatial_invariance.fig, is an input to the provenance check: its plotted waveform fingerprints identify the exact illustrated calls. Broad similarity, spectral-notch agreement and envelope agreement are distinct measurements; the analyses retain that distinction. The supplementary reflection and synthetic-call panels were exported interactively. Their graphics, application source and rounded parameter settings are supplied; exact reconstruction is limited by the precision of the saved settings. The interface screenshot and field photographs are supplied as visual assets. docs/FIGURES.md maps every main and supplementary figure to its source. Attribution and licence The code and original project materials are distributed under Creative Commons Attribution–NonCommercial 4.0; see LICENSE.md. Cite the associated paper and this datase
Fields of Study & Subjects
Bat Biology and Ecology Studies
Marine animal studies overview
Animal Vocal Communication and Behavior
Publication details
- Journal / source
- Zenodo (CERN European Organization for Nuclear Research)
- Publication date
- 5 October 2026
- Language
- EN