nps-activespace

A Python implementation of observer-based audibility modelling methods

https://github.com/dbetchkal/nps-activespace

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: frontiersin.org, zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.0%) to scientific vocabulary

Keywords

acoustic-model acoustics active-space aircraft audibility geopandas geospatial-analysis geospatial-processing noise python sensory-ecology soundscape transportation-planning vessels
Last synced: 6 months ago · JSON representation ·

Repository

A Python implementation of observer-based audibility modelling methods

Basic Info
  • Host: GitHub
  • Owner: dbetchkal
  • Language: Jupyter Notebook
  • Default Branch: main
  • Homepage:
  • Size: 9.81 MB
Statistics
  • Stars: 6
  • Watchers: 3
  • Forks: 1
  • Open Issues: 6
  • Releases: 0
Topics
acoustic-model acoustics active-space aircraft audibility geopandas geospatial-analysis geospatial-processing noise python sensory-ecology soundscape transportation-planning vessels
Created over 4 years ago · Last pushed 6 months ago
Metadata Files
Readme Citation

README.md

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

  1. 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

Owner

  • Name: Davyd Halyn Betchkal
  • Login: dbetchkal
  • Kind: user
  • Location: Denali National Park and Preserve, AK
  • Company: National Park Service

Citation (CITATION.cff)

cff-version: 1.3.0
title: NPS-ActiveSpace
message: >-
  This software was created by the United States
  government and is in the public domain. Please cite
  as below:
type: software
authors:
  - given-names: Davyd Halyn
    family-names: Betchkal
    email: Davyd_Betchkal@nps.gov
    affiliation: U.S. National Park Service
  - given-names: Adina
    family-names: Zucker
    affiliation: U.S. National Park Service
  - given-names: Kirby
    family-names: Heck
    affiliation: U.S. National Park Service
  - given-names: Jacob
    family-names: Brotman-Krass
    affiliation: U.S. National Park Service
  - given-names: Talon
    family-names: Logan
    affiliation: U.S. National Park Service
  - given-names: Aaron
    family-names: Gould
    affiliation: U.S. National Park Service
repository-code: 'https://github.com/dbetchkal/NPS-ActiveSpace'
version: v2.1.0
doi: 10.5281/zenodo.14578219
date-released: '2024-12-30'

GitHub Events

Total
  • Create event: 4
  • Release event: 1
  • Issues event: 13
  • Watch event: 3
  • Delete event: 4
  • Issue comment event: 2
  • Member event: 2
  • Push event: 136
  • Pull request review event: 1
  • Pull request event: 4
Last Year
  • Create event: 4
  • Release event: 1
  • Issues event: 13
  • Watch event: 3
  • Delete event: 4
  • Issue comment event: 2
  • Member event: 2
  • Push event: 136
  • Pull request review event: 1
  • Pull request event: 4

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 31
  • Total Committers: 5
  • Avg Commits per committer: 6.2
  • Development Distribution Score (DDS): 0.581
Past Year
  • Commits: 16
  • Committers: 3
  • Avg Commits per committer: 5.333
  • Development Distribution Score (DDS): 0.188
Top Committers
Name Email Commits
Davyd Halyn Betchkal D****l@n****v 13
Kirby k****k@g****m 13
DavydHalyn d****l@g****m 3
Aaron Gould a****d@g****m 1
Betchkal D****l@n****v 1
Committer Domains (Top 20 + Academic)
nps.gov: 2

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 11
  • Total pull requests: 9
  • Average time to close issues: 9 months
  • Average time to close pull requests: 13 minutes
  • Total issue authors: 2
  • Total pull request authors: 4
  • Average comments per issue: 0.27
  • Average comments per pull request: 0.0
  • Merged pull requests: 8
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 7
  • Pull requests: 2
  • Average time to close issues: 3 months
  • Average time to close pull requests: 2 minutes
  • Issue authors: 2
  • Pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • dbetchkal (10)
  • BijanGURUNG (2)
Pull Request Authors
  • dbetchkal (6)
  • adam-kosinski (2)
  • dzucker7 (2)
  • aaaaaaaaaron (1)
Top Labels
Issue Labels
enhancement (4) bug (1) good first issue (1)
Pull Request Labels

Dependencies

_DENA/requirements.txt pypi
  • Fiona ==1.8.21
  • GDAL ==3.4.2
  • Pillow ==9.1.1
  • SQLAlchemy ==1.4.39
  • Shapely ==1.8.2
  • affine ==2.3.1
  • attrs ==22.1.0
  • certifi ==2022.9.14
  • charset-normalizer ==2.1.1
  • click ==8.1.3
  • click-plugins ==1.1.1
  • cligj ==0.7.2
  • colorama ==0.4.5
  • contextily ==1.2.0
  • cycler ==0.11.0
  • fonttools ==4.37.3
  • future ==0.18.2
  • geographiclib ==1.52
  • geopandas ==0.10.2
  • geopy ==2.2.0
  • greenlet ==1.1.3
  • idna ==3.4
  • importlib-metadata ==4.12.0
  • joblib ==1.2.0
  • kiwisolver ==1.4.4
  • matplotlib ==3.5.2
  • mercantile ==1.2.1
  • munch ==2.5.0
  • numpy ==1.21.6
  • packaging ==21.3
  • pandas ==1.1.5
  • psycopg2 ==2.9.3
  • pygeos ==0.13
  • pyparsing ==3.0.9
  • pyproj ==3.2.1
  • python-dateutil ==2.8.2
  • pytz ==2022.2.1
  • rasterio ==1.2.10
  • requests ==2.28.1
  • scipy ==1.7.3
  • six ==1.16.0
  • snuggs ==1.4.7
  • tqdm ==4.64.0
  • typing_extensions ==4.3.0
  • urllib3 ==1.26.12
  • xyzservices ==2022.9.0
  • zipp ==3.8.1