Skip to content

A Python implementation of observer-based audibility modelling methods

Notifications You must be signed in to change notification settings

dbetchkal/NPS-ActiveSpace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DOI

NPS-ActiveSpace

An active space is a well-known sensory concept from bioacoustics (Marten and Marler 1977, Gabriele et al. 2018). It represents a geographic volume whose radii correspond to the limit of audibility for a specific signal in each direction. In other words, an active space provides an answer to the question, "how far can you hear a certain sound source from a specific location on the Earth's surface?"

This repository is designed to estimate active spaces for motorized noise sources transiting the U.S. National Park System. Aircraft are powerful noise sources audible over vast areas. Thus considerable NPS management efforts have focused on protecting natural quietude from aviation noise intrusions. For coastal parks, vessels are similarly powerful noise sources of concern. For both transportation modalities NPS-ActiveSpace provides meaningful, quantitative spatial guides for noise mitigation and subsequent monitoring.

Example

Consider an example active space, below. It was computed using data from a long term acoustic monitoring site in Denali National Park, DENAUWBT Upper West Branch Toklat (Withers 2012). The bold black polygon delineates an active space estimate for flights at 3000 meters altitude. Points interior to the polygon are predicted to be audible, those exterior, inaudible.

Superposed over the polygon are colored flight track polylines. NPS-ActiveSpace includes an application that leverages the acoustic record to ground-truth audibility of co-variate vehicle tracks from GPS databases. Ground-truthing is used to "tune" an active space to the appropriate geographic extent via mathematical optimization.


active space polygon example

Packages

This project is made up of four modules:

ground-truthing: a tkinter-based interactive GUI app for the annotation of georeferenced sound events.

active-space: observer-based audibility modelling procedures that produce an optimized active space estimate through synthesis.

audible-transits: geoprocess to construct the spatiotemporal intersections of a set of tracks with an active space.

geographic-metrics Beta: tabulation of transits into a variety of acoustic and spatial metrics

utils: diverse utilities - file I/O, geoprocessing, acoustic propagation modelling, and detection statistics

Also included are noise source data for tuning active space polygons.

Order of Operations

While each package can be used and run individually, the project was designed so that outputs of one package work seamlessly as the inputs for another. Packages were designed to be run in the following order:

ground-truthing $\rightarrow$ active-space $\rightarrow$ audible-transits $\rightarrow$ geographic-metrics


ground-truthing

The provided `NPS-ActiveSpace.ground_truthing` module `tkinter`-based app. Reproduced from Betchkal et al. 2023, Fig. 2. A view of the NPS-ActiveSpace ground-truthing application with a completed spectrogram annotation for an audible helicopter overflying HAVO009A. The upper map frame shows ADS-B data (brown points) in the xy-plane and the user-estimated spatial extent of audibility (cyan highlight). The lower spectrogram frame includes the noise event as contrasted against the natural residual ambience. It also provides the user a cue: the timestamp corresponding to the most proximal ADS-B point (vertical green line). Audible extent was then estimated by adjusting the temporal boundary (cyan slider).

The ground-truthing module provides a tkinter-based interactive GUI app for the annotation of georeferenced sound events. This module is the initial step of the process. Prerequesite to using this module is logging a simultaneous pair of datasets in the field: (1) a canonical Type-1 NPS acoustic record (Nvspl) and (2) a transportation dataset (Adsb, Ais, or generalized Tracks).

The module is initialized in the Command Line Interface (CLI). Detailed CLI documentation is available to initialize the app from a park-specific configuration file (see template.config).


active-space

The active-space module is a CLI implementation of observer-based audibility modelling procedures. It produces an active space estimate through synthesis. This module exists primarially as a wrapper for the FORTRAN-based physics engine Nord2000 as implemented in NMSIM. Previously-saved ground-truthing.Annotations files are required as an input. Diverse spatial and sound source inputs are also required to stage the NMSIM simulation (see Ikelheimer and Plotkin 2005).

Detailed CLI documentation is available to configure a synthesis of the optimal active space estimate for a park listener in a specific location.


audible-transits

The audible-transits module is a CLI geoprocess to construct the spatiotemporal intersections of a set of tracks with an active space. As part of the construction errant Tracks are removed and tabulated. Output Tracks are imbued with the information necessary to produce an audiblity time series.

Detailed CLI documentation is available to initialize the construction.


geographic-metrics [beta]

The geographic-metrics module estimates what we hear. To do this, it collapses the set of audible-transits into a binary audibility sequence in time. Then, from attributes of these noise events (or dualistically, noise-free intervals) a variety of acoustical and spatial metrics may be computed.

At present, no CLI interface exists for geographic-metrics. Instead it has been designed to be imported into a more flexible IDE.


utils

The utilities module utils contains two sub-modules:

  1. computation for tasks related to:

    • geoprocessing
      • .build_src_point_mesh()
      • .climb_angle()
      • .coords_to_utm()
      • .create_overlapping_mesh()
      • .interpolate_spline()
      • .NMSIM_bbox_utm()
      • .project_raster()
    • audibility
      • .audibility_to_interval()
      • .ambience_from_nvspl()
      • .ambience_from_raster()
      • .contiguous_regions()
    • detection statistics
      • .calculate_duration_summary()
      • .compute_fbeta()
  2. and models containing classes which parse various forms of input data:

    • Automatic Dependent Surveillance–Broadcast (ADS-B) broacasts from aircraft
      • .Adsb()
      • .EarlyAdsb()
    • Automatic Identification System (AIS) broadcasts from ships
      • .Ais()
    • human spectrogram annotations from the NPS-ActiveSpace.ground_truthing module as
      • .Annotations()
    • descriptions of canonical NPS Type-1 acoustic monitoring Deployments
      • .Microphone()
    • an acoustic record as 1/3rd-octave band spectral sound levels from a Deployment
      • .Nvspl()
    • generalized
      • .Tracks()

Most users should not need to use utils directly, but the data parsing classes may have use to other transportation geography projects.


License

Public domain

This project is in the worldwide public domain:

This project is in the public domain within the United States, and copyright and related rights in the work worldwide are waived through the CC0 1.0 Universal public domain dedication.

All contributions to this project will be released under the CC0 dedication. By submitting a pull request, you are agreeing to comply with this waiver of copyright interest.

Publications

Publications about NPS-ActiveSpace:

Betchkal, D.H., J.A. Beeco, S.J. Anderson, B.A. Peterson, and D. Joyce. 2023. Using Aircraft Tracking Data to Estimate the Geographic Scope of Noise Impacts from Low-Level Overflights Above Parks and Protected Areas. Journal of Environmental Management 348(15): 119201 https://doi.org/10.1016/j.jenvman.2023.119201