https://github.com/dbetchkal/nps-activespace
A Python implementation of observer-based audibility modelling methods
https://github.com/dbetchkal/nps-activespace
acoustic-model acoustics active-space aircraft audibility geopandas geospatial-analysis geospatial-processing noise python sensory-ecology soundscape transportation-planning vessels
Last synced: 7 months ago
JSON representation
A Python implementation of observer-based audibility modelling methods
- Host: GitHub
- URL: https://github.com/dbetchkal/nps-activespace
- Owner: dbetchkal
- Created: 2021-07-26T21:43:58.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2025-01-08T01:09:14.000Z (9 months ago)
- Last Synced: 2025-03-01T00:38:41.722Z (8 months ago)
- Topics: acoustic-model, acoustics, active-space, aircraft, audibility, geopandas, geospatial-analysis, geospatial-processing, noise, python, sensory-ecology, soundscape, transportation-planning, vessels
- Language: Jupyter Notebook
- Homepage:
- Size: 9.4 MB
- Stars: 5
- Watchers: 3
- Forks: 1
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Citation: CITATION.cff
Awesome Lists containing this project
README
[](https://zenodo.org/badge/latestdoi/389775527)
# NPS-ActiveSpaceAn ***active space*** is a well-known sensory concept from bioacoustics ([Marten and Marler 1977](https://www.jstor.org/stable/pdf/4599136.pdf), [Gabriele et al. 2018](https://www.frontiersin.org/articles/10.3389/fmars.2018.00270/full)). 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](https://www.nps.gov/subjects/sound/overflights.htm). 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](https://irma.nps.gov/DataStore/Reference/Profile/2184396)). 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.
## Packages
This project is made up of four modules:
[`ground-truthing`](https://github.com/dbetchkal/NPS-ActiveSpace/blob/main/README.md#ground-truthing): a `tkinter`-based interactive GUI app for the annotation of georeferenced sound events.
[`active-space`](https://github.com/dbetchkal/NPS-ActiveSpace/blob/main/README.md#active-space): observer-based audibility modelling procedures that produce an optimized active space estimate through synthesis.
[`audible-transits`](https://github.com/dbetchkal/NPS-ActiveSpace/blob/main/README.md#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`](https://github.com/dbetchkal/NPS-ActiveSpace/blob/main/README.md#utils): diverse utilities - file I/O, geoprocessing, acoustic propagation modelling, and detection statistics
Also included are noise source [data](https://github.com/dbetchkal/NPS-ActiveSpace/tree/main/nps_active_space/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 `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](https://github.com/dbetchkal/NPS-ActiveSpace/tree/main/_DENA#ground-truthing) from a park-specific configuration file (see [`template.config`](https://github.com/dbetchkal/NPS-ActiveSpace/blob/main/_DENA/config/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](https://github.com/dbetchkal/NMSIM-Python/blob/main/NMSIM/Manual/NMSim%20Manual.pdf)).
Detailed [CLI documentation is available to configure a synthesis](https://github.com/dbetchkal/NPS-ActiveSpace/blob/main/_DENA/README.md#generate-active-space) 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](https://github.com/dbetchkal/NPS-ActiveSpace/tree/main/_DENA#audible-transits).
---
## 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](LICENSE.md):
> 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](https://creativecommons.org/publicdomain/zero/1.0/).
>
> 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