semiempiricalcalibrationbayesian
A novel post-processing method for empirical calibration data of remote microphone probes, using Bayesian inference and pre-existing analytical model for the frequency response of the considered probe.
https://github.com/omoriaux/semiempiricalcalibrationbayesian
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 6 DOI reference(s) in README -
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.0%) to scientific vocabulary
Repository
A novel post-processing method for empirical calibration data of remote microphone probes, using Bayesian inference and pre-existing analytical model for the frequency response of the considered probe.
Basic Info
- Host: GitHub
- Owner: OMoriaux
- Language: Jupyter Notebook
- Default Branch: master
- Size: 79.4 MB
Statistics
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 1
Metadata Files
README.md
Semi-Empirical Calibration using Bayesian inference
A novel post-processing method for empirical calibration data of remote microphone probes (RMP), using Bayesian inference (BI) and pre-existing analytical model for the frequency response of the considered probe. https://doi.org/10.1016/j.jsv.2023.118197
Contains code to process empirical calibration data of RMPs, and unsteady pressure measurements with these RMPs. Also includes the code implementation of the Bergh & Tijdeman [1965] model and Whitmore [2006] model for the transfer function of pneumatic systems. As for the BI, a simple Metropolis-Hastings Markov-chain Monte Carlo is provided, as well as helper functions to pre-process the data etc.
1. Project structure
The code is meant to explain the presented method, and highlight its strengths.
a. ./Source
The core functions of the method are written in the Source directory. - BayesianInferenceFunctions: Code used to couple data with models using Bayesian Inference (BI); Metropolis-Hastings (MH), Markov-chain Monte Carlo (MCMC). - BerghTijdemanWhitmoreModels: Implementations of the Bergh & Tijdeman [1965] and Whitmore [2006] models. - CalibrationMeasurement: Code used to ingest calibration and unsteady pressure measurement data from TDMS or CSV files. ! Reading TDMS files requires the npTDMS Python package. - PlottingFunctions: Functions used to plot the results of the calibration/measurement data and MCMC fitting results. - ProcessingFunctions: Functions to process the calibration/measurement data (TDMS or CSV files) into power spectral density, transfer functions etc.
b. Main (SemiEmpiricalCalibrationBayesian)
Example code, using these functions, are provided in the main directory (SemiEmpiricalCalibrationBayesian): - TestDataIngest: Example of how to use Source/CalibrationMeasurement to process calibration (and measurement) data. - BKPinholeMCMC: The semi-empirical calibration method using the Whitmore model, applied to the example calibration data. Outputs the results to ./MCMC_Output. - Process_MCMC: Further processing from the MCMC results from BKPinholeMCMC. Outputs figures to ./MCMC_Figures. - ParaDRAMBKPinhole_MCMC: Similar to BKPinholeMCMC, albeit using the ParaDRAM implementation of ParaMonte. No processing code provided. - ReadFEMdataset: Visualisation for the FEM simulation dataset in ./TestData/FEM_PlaneWaveTube. https://doi.org/10.2514/6.2023-4059.
c. TutorialsInJupyter
These are Jupyter notebooks that aim to explain in a more step-by-step method the problem with idea behind the proposed method, and how to apply the method, and process its results. - Step 1: Similar to TestDataIngest, where one reads the calibration data and observes spurious resonance. - Step 2: A short overview of how the Whitmore model works, e.g., its parameters. - Step 3: Setting up the semi-empirical calibration method for the example dataset. - Step 4: Processing the results of the semi-empirical calibration method. - Extra - Basics of Bayesian Inference (WORK IN PROGRESS): Meant to explain basics of MH MCMC, e.g., the step size of the Gaussian proposal distribution.
2. Sources
- Bergh, H., and Tijdeman, H., “Theoretical and experimental results for the dynamic response of pressure measuring systems,” Tech. Rep. NLR-TR F. 238, National Aerospace Laboratory NLR, Amsterdam, The Netherlands, Jan. 1965. http://resolver.tudelft.nl/uuid:e88af84e-120f-4c27-8123-3225c2acd4ad.
- Whitmore, S. A., “Frequency response model for branched pneumatic sensing systems,” Journal of Aircraft, Vol. 43, No. 6, 2006, pp. 1845–1853. https://doi.org/10.2514/1.20759.
3. Required Python install and packages
- Python >= 3.7
- Numpy >= 1.21
- Scipy >= 1.6.0
- Matplotlib >= 3.4.1
- Seaborn >= 0.12.0
- Pandas (calibration/measurement data files are read into Pandas DataFrames, arrays with named columns) >= 1.2.0
- Optional: npTDMS (reads LabVIEW VI output files, i.e. tdms files) >= 1.4.0
If npTDMS is not installed, the functions and classes of CalibrationMeasurement can still read data from CSV files.
! npTDMS will need to be installed to read TDMS files. Either install the package in the user's preferred manner or simply run ">>> pip install npTDMS" in the Python console.
Owner
- Login: OMoriaux
- Kind: user
- Repositories: 1
- Profile: https://github.com/OMoriaux
GitHub Events
Total
- Release event: 1
- Push event: 4
- Create event: 2
Last Year
- Release event: 1
- Push event: 4
- Create event: 2