https://github.com/acoustics-code-salford/uas-sound-propagation

Render movement events from static hover UAS source recordings

https://github.com/acoustics-code-salford/uas-sound-propagation

Science Score: 39.0%

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

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.9%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Render movement events from static hover UAS source recordings

Basic Info
  • Host: GitHub
  • Owner: acoustics-code-salford
  • License: gpl-3.0
  • Language: Python
  • Default Branch: main
  • Size: 498 KB
Statistics
  • Stars: 3
  • Watchers: 0
  • Forks: 0
  • Open Issues: 8
  • Releases: 0
Created over 2 years ago · Last pushed 10 months ago
Metadata Files
Readme License Codeowners

README.md

uas-sound-event

Simulates simple atmospheric acoustic propagation effects for rendering multichannel auralisations of unmanned aerial systems (UAS - drones), or other airborne sources, in motion.

The model assumes that input source signals have been recorded at a fixed distance and with a fixed rotational speed. Auralisations are created assuming free-field propagation and account for the following: * Doppler effect * Distance-dependent atmospheric absorption of high frequencies * Ground reflection (including path length difference and angle-dependent high-frequency absorption) * Distance-based amplitude panning (DBAP) to spatialise source in 3D loudspeaker array (direct sound and ground reflection spatialised separately).

Author: Marc C. Green (m.c.green@salford.ac.uk)

Affiliation: University of Salford (Acoustics Research Centre)

Copyright statement: This file and code is part of work undertaken within the REFMAP project (www.refmap.eu), and is subject to license.

Based on method detailed in: Heutschi, K., Ott, B., Nussbaumer, T., and Wellig, P., "Synthesis of real world drone signals based on lab recordings," Acta Acustica, Vol. 4, No. 6, 2020, p. 24.

Usage

The main object implementing the propagation model is UASEventRenderer. This object is initialised using CSV files defining flightpaths in segments. Each segment requires the definition of start and end points in cartesian co-ordinates, along with starting and ending speeds in meters per second. The following is an example flightpath configuration file with four segments. Further examples can be found in the flights/ directory.

segment, startxyz, endxyz, speeds constant-speed flyby, 10 -200 30, 10 180 30, 30 30 decelerate, 10 180 30, 10 200 30, 30 0 accelerate, 10 200 30, 10 180 30, 0 30 flyby back, 10 180 30, 10 -200 30, 30 30

Using these CSV flightpath definitions, UASEventRenderer calculates the position of the source at every sample time. These positions are used to calculate the delays, distances, and angles required to render the propagation effects based on a listener located at the origin of the co-ordinate system.

The listener height is set to 1.5 m by default. This affects the calculation of the ground reflection signal in particular. Additional parameters include the ground material, which can be selected from 'grass', 'soil', or 'asphalt', and the loudspeaker layout to target with the DBAP panning (currently only 'Octagon + Cube' is implemented).

The object's render() method can then be used to generate a time-series signal at the receiver point. The input source used should be sufficient in length to cover the time taken to cover the entire defined flightpath.

The following is a basic script for rendering an event:

``` import soundfile as sf from uasevent.environment import UASEventRenderer from uasevent.utils import load_params

x, fs = sf.read('examplesource.wav') renderer = UASEventRenderer( loadparams('flightpath.csv'), receiver_height=1.5, fs=fs)

output = renderer.render(x) ```

Owner

  • Name: University of Salford Acoustics
  • Login: acoustics-code-salford
  • Kind: organization
  • Email: acoustics-code@salford.ac.uk
  • Location: Salford, Greater Manchester, UK

Code repositories for the Acoustic Labs and Acoustics Research Centre at the University of Salford.

GitHub Events

Total
  • Issues event: 17
  • Watch event: 2
  • Delete event: 5
  • Issue comment event: 8
  • Push event: 37
  • Pull request event: 20
  • Create event: 7
Last Year
  • Issues event: 17
  • Watch event: 2
  • Delete event: 5
  • Issue comment event: 8
  • Push event: 37
  • Pull request event: 20
  • Create event: 7

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 13
  • Total pull requests: 10
  • Average time to close issues: 19 days
  • Average time to close pull requests: about 15 hours
  • Total issue authors: 1
  • Total pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.1
  • Merged pull requests: 8
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 12
  • Pull requests: 9
  • Average time to close issues: about 2 hours
  • Average time to close pull requests: about 17 hours
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.11
  • Merged pull requests: 7
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • marc1701 (13)
Pull Request Authors
  • marc1701 (10)
Top Labels
Issue Labels
refactor (2) enhancement (2) bug (1) processing (1)
Pull Request Labels

Dependencies

.github/workflows/main.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4.1.0 composite
poetry.lock pypi
  • appnope 0.1.3
  • asttokens 2.4.0
  • backcall 0.2.0
  • cffi 1.16.0
  • colorama 0.4.6
  • colorednoise 2.1.0
  • comm 0.1.4
  • contourpy 1.1.0
  • contourpy 1.1.1
  • cycler 0.12.0
  • debugpy 1.8.0
  • decorator 5.1.1
  • exceptiongroup 1.1.3
  • executing 2.0.0
  • flake8 6.1.0
  • fonttools 4.43.1
  • importlib-metadata 6.8.0
  • importlib-resources 6.1.0
  • ipykernel 6.25.2
  • ipython 8.16.1
  • jedi 0.19.1
  • jupyter-client 8.3.1
  • jupyter-core 5.3.2
  • kiwisolver 1.4.5
  • llvmlite 0.41.0
  • matplotlib 3.8.0
  • matplotlib-inline 0.1.6
  • mccabe 0.7.0
  • nest-asyncio 1.5.8
  • numba 0.58.0
  • numpy 1.25.2
  • packaging 23.2
  • parso 0.8.3
  • pexpect 4.8.0
  • pickleshare 0.7.5
  • pillow 10.0.1
  • platformdirs 3.11.0
  • prompt-toolkit 3.0.39
  • psutil 5.9.5
  • ptyprocess 0.7.0
  • pure-eval 0.2.2
  • pycodestyle 2.11.0
  • pycparser 2.21
  • pyflakes 3.1.0
  • pygments 2.16.1
  • pyparsing 3.1.1
  • python-dateutil 2.8.2
  • pywin32 306
  • pyzmq 25.1.1
  • resampy 0.4.2
  • scipy 1.11.3
  • setuptools 68.2.2
  • setuptools-scm 8.0.4
  • six 1.16.0
  • sounddevice 0.4.6
  • soundfile 0.12.1
  • stack-data 0.6.3
  • tomli 2.0.1
  • tornado 6.3.3
  • traitlets 5.11.2
  • typing-extensions 4.8.0
  • wcwidth 0.2.8
  • zipp 3.17.0
pyproject.toml pypi
  • numpy ^1.18.0
  • python >=3.9,<3.13
  • resampy ^0.4.2
  • scipy ^1.11.3
  • soundfile ^0.12.1