#!/usr/bin/env python
# -*- coding: utf-8 -*-

#WRITTEN BY DENE BOWDALO

###------------------------------------------------------------------------------------###
###IMPORT MODULES
###------------------------------------------------------------------------------------###

from copy import deepcopy
import crossnetwork_processing_modules
import glob
import numpy as np
import os
import pandas as pd

###------------------------------------------------------------------------------------###
###------------------------------------------------------------------------------------###

#Dictionary which stores standardised measurement methodologies, instrument names, sampling types, 
#detection limits, measurement uncertainties and other miscellaneous details

#each standard instrument name/general method name acts as a key to a set of standard measurement details

#----------------------------------

#MEASUREMENT METHODOLOOGIES (Refers to the name of the measurement methodology used by the measuring instrument to determine the measured values for a parameter):
#ultraviolet photometry
#visible photometry
#ethylene chemiluminescence
#eosin-Y chemiluminescence
#rhodamine B chemiluminescence 
#chemiluminescence (internal molybdenum converter) 
#chemiluminescence (external molybdenum converter) 
#chemiluminescence (internal photolytic converter) 
#chemiluminescence (internal molybdenum and quartz converters) 
#chemiluminescence (internal molybdenum converter and external stainless steel converter) 
#sulphur chemiluminescence - gas chromatography
#flame photometric detection (FPD)
#flame ionisation detection (FID)
#conductimetry
#second derivative spectroscopy
#coulometry
#polarography
#ultraviolet fluorescence 
#thermal reduction - ultraviolet fluorescence
#laser-Induced fluorescence (LIF)
#vacuum ultraviolet resonance fluorescence (VUF)
#cavity ringdown spectroscopy (CRDS)
#cavity attenuated phase shift spectroscopy (CAPS)
#differential optical absorption spectroscopy (DOAS)
#electrochemical membrane diffusion
#photoacoustic spectroscopy
#non-dispersive infrared absorption (luft)
#non-dispersive infrared absorption (gas-filter correlation)
#non-dispersive infrared absorption (cross-flow modulation)
#dual isotope fluorescence
#gas chromatography - electron capture detection (GC-ECD)
#gas chromatography - flame ionisation detection (GC-FID)
#gas chromatography - dual flame ionisation detection (GC-DualFID)
#gas chromatography - fourier transform infrared spectroscopy (GC-FTIR)
#gas chromatography - mass spectrometry (GC-MS)
#gas chromatography - direct temperature resolved mass spectrometry (GC-DTMS) 
#gas chromatography - mass spectrometry - flame ionisation detection (GC-MS-FID)
#gas chromatography - fourier transform infrared spectroscopy - mass spectrometry (GC-FTIR-MS) 
#gas chromatography - unknown detection (GC-?)
#proton transfer reaction - mass spectrometry (PTR-MS)
#spectrophotometry
#colorimetry 
#ion chromatography
#titration
#aerosol mass spectrometry
#gravimetry
#tapered element oscillating microbalance - gravimetry
#tapered element oscillating microbalance - filter dynamics measurement system - gravimetry
#beta-attenuation
#impaction
#nephelometry
#beta-attenuation - nephelometry
#optical particle counter
#thermal-optical analysis (TOA)
#unknown


#SAMPLING TYPES (Refers to type of sampling used by either measurement instrument, or for 2 step-processes, in the sample preparation phase)
#continuous:           air is drawn in continuously, with a consistent flow rate
#injection:            instrument is injected with limited quantities of air 
#continuous injection: instrument is periodically injected with limited quantities of air
#passive:              air is not drawn in, rather the air sampled is the ambient air which interacts which measurement apparatus
#remote:               instrument does not actively sample air, but uses advanced optical techniques to measure parameters in air over long distances
#manual:               no instrument is used to determine measured values, they are determined manually (e.g. this applies for some colorimetric methods where measured values are derived manually via the colour of reagent after reaction with a compound of interest)


#SAMPLE PREPARATION (Refers to all preparations made before ultimate measurement of sample)
#flask:                   sample was collected/stored in measurement flasks/canisters before analysis 
#preconcentration:        sample was preconcentrated before analysis. This refers to the process of concentrating a sample before analysis, so that trace components won't be overlooked. This is done typically through absorption of the sample onto a cooled, sorbent-packed trap before thermal desorption to transfer very quickly the sample to the analytical system. Can be more than 1 trap, with different adsorbents.
#filter:                  air was passed through a filtering system before analysis, selectively retaining compound(s) of interest
#filter pack:             sample was collected in a filter pack, selectively retaining compound(s) of interest
#denuder:                 air was passed through a denuder before analysis to selectively retain compound(s) of interest (a denuder is cylindrical or annular conduit or tube internally coated with a reagent that selectively reacts with a stable flow of gas)
#sorbent tube:            sample was passed through a sorbent tube to trap and retain the compound(s) of interest 
#reagent reaction:        sample reacted with a liquid/solid chemical reagent before measurement



#MEASUREMENT ERROS/UNCERTAINTY
#Types of errors:
#All experimental uncertainty is due to either random errors or systematic errors. 
#Random errors: statistical fluctuations (in either direction) in the measured data due to the precision limitations of the measurement device.
#               These errors usually result from the experimenter's inability to take the same measurement in exactly the same way to get exact the same number. 
#Systematic errors: by contrast systematic errors are reproducible inaccuracies that are consistently in the same direction. 
#                   Systematic errors are often due to a problem which persists throughout the entire experiment. 

#Measurement system error can be classified into three categories: accuracy, precision, and stability (or drift).
#Accuracy describes the difference between the measurement and the actual value of the part that is measured. It includes:
#    Bias: a measure of the difference between the true value and the observed value of a part. If the “true” value is unknown, it can be calculated by averaging several measurements with the most accurate measuring equipment available.
#    Linearity: a measure of how the size of the part affects the bias of a measurement system. It is the difference in the observed bias values through the expected range of measurement.
#The accuracy of measurements is often reduced by systematic errors.
#Precision describes the variation you see when you measure the same part repeatedly with the same device. It includes the following two types of variation:
#    Repeatability: variation due to the measuring device. It is the variation observed when the same operator measures the same part repeatedly with the same device.
#    Reproducibility: variation due to the operators and the interaction between operator and part. It is the variation of the bias observed when different operators measure the same parts using the same device.
#Precision is limited by random errors.
#Generally, precision is the principle concern; inaccuracy due to linearity or constant bias can typically be corrected through calibration.
#Stability describes how the accuracy and precision of the system performs over time. Fundamentally it is the ability of a measurement system to produce the same values over time when measuring the same sample. Changes in stability are called drift.
#Drift is caused due to factors such as time, line voltage, or ambient temperature effects and can be classified into three types:
    #Zero Drift or baseline drift - refers to the shifting of the whole calibration by the same amount caused by slippage or due to undue warming up of the electronic circuits.
    #Span drift or sensitivity drift – refers to when there is proportional change in the indication of an instrument all along the upward scale, hence higher calibrations end up being shifted more than lower calibrations. 
    #Zonal Drift – refers to when drift occurs only over a portion of the full scale or span of an instrument, while the remaining portion of the scale remains unaffected.
#Typically only zero-drift and span drift are reported for atmospheric chemistry measurements.

#Another important reported measurement characteristic is the resolution. 
#Resolution characterises the ability of instrument’s output or display to show changes in the quantity.  
#It is formally defined as the smallest change or increment in the measured quantity that the instrument can detect.
#However it is often reported inconsistently, often being simply the number of digits an instrument can display, which does not relate to the actual physical resolution of the instrument.
 
#The idea of measurement uncertainty is another important concept. It is the component of a reported value that characterizes the range of values within which the true value is asserted to lie.
#An uncertainty estimate should address error from all possible effects (both systematic and random) and, therefore, usually is the most appropriate means of expressing the accuracy of results.
#However, in many measurement situations the systematic error is not addressed and only random error is included in the uncertainty measurement.  When only random error is included in the uncertainty estimate, it is a reflection of the precision of the measurement. 
#Total error, and in turn total uncertainty, is estimated by adding accuracy error (for instrumentation given as linearity) and precision error at the same confidence interval in quadrature - assume 95% confidence interval if not otherwise stated (https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=7&ved=2ahUKEwjP-6Cm69rcAhUysaQKHVxrA6EQFjAGegQIBBAC&url=http%3A%2F%2Fwww.me.umn.edu%2Fcourses%2Fme4331%2FFILES%2FUncertainty.ppt&usg=AOvVaw15ltcbeOysqNbN7Ur2b_2c ,  https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=2ahUKEwjcmsvg7drcAhUQ2aQKHR8lCw4QFjAAegQIABAC&url=http%3A%2F%2Fitepsrv1.itep.nau.edu%2Fitep_course_downloads%2FComputations_Resources%2F%2520%2520COMP1-15FIN%2F12.%2520BIAS_PRECIS%2F2BiasPrecis.ppt&usg=AOvVaw0zthk9A9vFor0SZzag6kny)
#Reported results are in the units of measured quantity or in %. It is always reported at 95% confidence level unless otherwise specified.


#ASSUMPTION FLAGS
#assume_method =      When method is not specifically given in published documentation or literature for an instrument, and make an assumption that it uses a certain methodology, this is flagged as True
#unknown_instrument = When the instrument name is not specifically given, flag as True.

#----------------------------------------------------------------------------------------#
def sampling_types_database():

    database = {
    #------------------------------------
    #continuous

    #Ambient air is continuously drawn in by a pump of some description. 

    #The rate that air is sampled can be particularly important for the measurements of particulate matter.
    #Many particulate matter measurements utilise a 2-step process, where standalone samplers first sample and filter air, and then the filtered products are measured by separate instrument.
    #The standalone samplers can be separated into 2 discrete groups: low volume samplers & high volume samplers.

    #Many instruments also have built-in continuous samplers. These are in-almost all cases low-volume, when not otherwise stated.

    #--------
    #low volume continuous

    #Ambient air is continuously drawn in using a low volume sampler (typically sampling < ~24,000 litres of air over a 24-hour period)
    #Some of these samplers have in-built filters, designed to specifically retain certain compounds.
    'Comde Derenda LVS 3.1':{'sampling_type':'continuous', 'sample_preparation':'Filter', 'primary_sampling_isolated_parameters':['PM10','PM2.5','PM1'], 'primary_sampling_instrument_documented_flow_rate':'16.6667-58.3333', 'primary_sampling_instrument_reported_flow_rate':np.NaN, 'primary_sampling_instrument_manual_name':'Comde_Derenda_MVS6.1_Specs'},
    'Comde Derenda MVS 6.1':{'sampling_type':'continuous', 'sample_preparation':'Filter', 'primary_sampling_isolated_parameters':['PM10','PM2.5','PM1'], 'primary_sampling_instrument_documented_flow_rate':'16.6667-91.6667', 'primary_sampling_instrument_reported_flow_rate':np.NaN, 'primary_sampling_instrument_manual_name':'Comde_Derenda_MVS6.1_Specs'},
    'Comde Derenda PNS 16T':{'sampling_type':'continuous', 'sample_preparation':'Filter', 'primary_sampling_isolated_parameters':['PM10','PM2.5','PM1'], 'primary_sampling_instrument_documented_flow_rate':'16.6667-91.6667', 'primary_sampling_instrument_reported_flow_rate':np.NaN, 'primary_sampling_instrument_manual_name':'Comde_Derenda_PNS_16T_Specs.pdf'},
    'IVL P-Model S10':      {'sampling_type':'continuous', 'sample_preparation':'Filter', 'primary_sampling_isolated_parameters':['PM10','PM2.5','PM1'], 'primary_sampling_instrument_documented_flow_rate':np.NaN,            'primary_sampling_instrument_reported_flow_rate':np.NaN, 'primary_sampling_instrument_further_details':'See detail here: https://www.aces.su.se/reflab/wp-content/uploads/2016/11/ACES_Report_4.pdf'},
    'Leckel SEQ 47-50':     {'sampling_type':'continuous', 'sample_preparation':'Filter', 'primary_sampling_isolated_parameters':['PM10','PM2.5','PM1'], 'primary_sampling_instrument_documented_flow_rate':'16.66-50',        'primary_sampling_instrument_reported_flow_rate':np.NaN, 'primary_sampling_instrument_manual_name':'Leckel_SEQ_47-50_Specs.pdf'},
    'Leckel LVS3':          {'sampling_type':'continuous', 'sample_preparation':'Filter', 'primary_sampling_isolated_parameters':['PM10','PM2.5','PM1'], 'primary_sampling_instrument_documented_flow_rate':'16.66-38.33',     'primary_sampling_instrument_reported_flow_rate':np.NaN, 'primary_sampling_instrument_manual_name':'Leckel_LVS3_MVS6_Specs.pdf'},
    'Leckel MVS6':          {'sampling_type':'continuous', 'sample_preparation':'Filter', 'primary_sampling_isolated_parameters':['PM10','PM2.5','PM1'], 'primary_sampling_instrument_documented_flow_rate':'38.33-58.33',     'primary_sampling_instrument_reported_flow_rate':np.NaN, 'primary_sampling_instrument_manual_name':'Leckel_LVS3_MVS6_Specs.pdf'},
    'Riemer SPF4':          {'sampling_type':'continuous', 'sample_preparation':'Filter', 'primary_sampling_isolated_parameters':['SO2','NH3','HNO3'],   'primary_sampling_instrument_documented_flow_rate':np.NaN,            'primary_sampling_instrument_reported_flow_rate':np.NaN, 'primary_sampling_instrument_further_details':'See more detail here: http://www.riemer-mt.com/low.volume.php'},
    'Thermo Partisol 2000i':{'sampling_type':'continuous', 'sample_preparation':'Filter', 'primary_sampling_isolated_parameters':['PM10','PM2.5'],       'primary_sampling_instrument_documented_flow_rate':'5-18',            'primary_sampling_instrument_reported_flow_rate':np.NaN, 'primary_sampling_instrument_manual_name':'Thermo_Partisol_2000i_Manual.pdf'},
    'Thermo Partisol 2025i':{'sampling_type':'continuous', 'sample_preparation':'Filter', 'primary_sampling_isolated_parameters':['PM10','PM2.5'],       'primary_sampling_instrument_documented_flow_rate':'10-19',           'primary_sampling_instrument_reported_flow_rate':np.NaN, 'primary_sampling_instrument_manual_name':'Thermo_Partisol_2025i_Specs.pdf.pdf'},
    #---No specific sampling instrument name
    'Low Volume Continuous':{'sampling_type':'continuous', 'unknown_sampling_instrument':True},

    #--------
    #high volume continuous

    #Ambient air is continuously drawn in using a high volume sampler instrumentation (typically sampling > ~100,000 litres of air over a 24-hour period)
    #Some of these samplers have in-built filters, designed to specifically retain certain compounds.

    'Digitel DHA-80':       {'sampling_type':'continuous', 'sample_preparation':'Filter', 'primary_sampling_isolated_parameters':['PM10','PM2.5','PM1'], 'primary_sampling_instrument_documented_flow_rate':'100-1000',         'primary_sampling_instrument_reported_flow_rate':np.NaN, 'primary_sampling_instrument_manual_name':'Digitel_DHA-80_Manual.pdf'},
    'MCV CAV-A/mb':         {'sampling_type':'continuous', 'sample_preparation':'Filter', 'primary_sampling_isolated_parameters':['PM10','PM2.5'],       'primary_sampling_instrument_documented_flow_rate':'333.333-1333.333', 'primary_sampling_instrument_reported_flow_rate':np.NaN, 'primary_sampling_instrument_further_details':'See more details here: http://www.mcvsa.com/Productes/Atmosfera/CaptadordealtovolumenMCVCAVAmb/tabid/114/Default.aspx'},
    'MCV CAV-A/msb':        {'sampling_type':'continuous', 'sample_preparation':'Filter', 'primary_sampling_isolated_parameters':['PM10','PM2.5'],       'primary_sampling_instrument_documented_flow_rate':'250-666.667',      'primary_sampling_instrument_reported_flow_rate':np.NaN, 'primary_sampling_instrument_further_details':'See more details here: http://www.mcvsa.com/Productes/Atmosfera/CaptadordealtovolumensecuencialMCVCAVAMSb/tabid/139/language/es-ES/Default.aspx'},
    'Thermo VFC-PM10':      {'sampling_type':'continuous', 'sample_preparation':'Filter', 'primary_sampling_isolated_parameters':['PM10'],               'primary_sampling_instrument_documented_flow_rate':'1132.67',          'primary_sampling_instrument_reported_flow_rate':np.NaN, 'primary_sampling_instrument_manual_name':'Thermo VFC-PM10_Specs.pdf'},
    #---No specific sampling instrument name
    'High Volume Continuous':{'sampling_type':'continuous', 'unknown_sampling_instrument':True},

    #------------------------------------
    #injection

    #The measuring instrument is injected with a limited quantity of air
    #The limited injected quantity is typically pre-processed to aid the detection of a specific species.

    #---No specific sampling instrument name
    'Injection':{'sampling_type':'injection', 'unknown_sampling_instrument':True},

    #------------------------------------
    #continuous injection

    #The measuring instrument is periodically injected with limited quantities of air.
    #The injected quantities can either be from continuous automated collection, or from pre-processed loaded samples, which are periodically injected.

    #---No specific sampling instrument name
    'Continuous Injection':{'sampling_type':'continuous injection', 'unknown_sampling_instrument':True},

    #------------------------------------
    #passive:              

    #Air is not drawn in, rather the air sampled is the ambient air which interacts which measurement apparatus

    #---No specific sampling instrument name
    'Passive':{'sampling_type':'passive'},

    #------------------------------------
    #remote            

    #The measuring instrument does not actively sample air, but uses advanced optical techniques to measure parameters in air over long distances

    #---No specific sampling instrument name
    'Remote':{'sampling_type':'remote'},

    #------------------------------------
    #manual              
    #No instrument is used to determine measured values, they are determined manually 
    #e.g. this applies for some colorimetric methods where measured values are derived manually via the colour of reagent after reaction with a compound of interest

    #---No specific sampling instrument name
    'Manual':{'sampling_type':'manual'},

    #------------------------------------
    #unknown

    'Unknown':{'sampling_type':'unknown'}, 'unknown_sampling_instrument':True}
    
    return database

#----------------------------------------------------------------------------------------#
def sampling_preparation_database():

    database = {
    #------------------------------------
    #flask

    #Sample is collected/stored in measurement flasks/canisters from ambient air.
    #The collections are done by simply opening the canisters, and filling them. 
    #The canisters can be opened for a short instantaneous window, or can be opened periodically over a long window to get a longer representative sample of air. 

    #---No specific sampling preparation name
    'Flask':{'preparation_type':'flask'},
    
    #------------------------------------
    #preconcentration       

    #This refers to the process of concentrating a sample before analysis, so that trace components won't be overlooked. 
    #This is done typically through absorption of the sample onto a cooled, sorbent-packed trap before thermal desorption to transfer very quickly the sample to the analytical system. 
    #Can be more than 1 trap, with different adsorbents.

    #---No specific sampling preparation name
    'Preconcentration':{'preparation_type':'preconcentration'},
    
    #------------------------------------
    #filter                 

    #Air is passed through a filtering system, selectively retaining compound(s) of interest

    #---No specific sampling preparation name
    'Filter':{'preparation_type':'filter'},
    
    #------------------------------------
    #filter pack

    #Air is passed through a filter pack, selectively retaining compound(s) of interest
    #The filter packs can contain different filters to target the retention of different compounds. 

    'EMEP 1-Stage Filter Pack':{'preparation_type':'filter pack'},
    'EMEP 2-Stage Filter Pack':{'preparation_type':'filter pack'},
    'EMEP 3-Stage Filter Pack':{'preparation_type':'filter pack'},
    #---No specific sampling preparation name
    'Filter Pack':{'preparation_type':'filter pack'},
    
    #------------------------------------
    #denuder

    #Air is passed through a denuder before analysis to selectively retain compound(s) of interest 
    #a denuder is cylindrical or annular conduit or tube internally coated with a reagent that selectively reacts with a stable flow of gas

    #---No specific sampling preparation name
    'Denuder':{'preparation_type':'denuder'},

    #------------------------------------
    #sorbent tube            

    #Sample is passed through a sorbent tube to trap and retain the compound(s) of interest.
    #Diffusive samplers are a specific example of the utilisation of sorbent tubes.

    #--------
    #diffusive sampler

    #Diffussive samplers are a specific utilisation of sorbent tubes to passively trap species over long time periods, typically in urban areas.
    #Diffusive samplers are an inexpensive method for measuring atmospheric composition over periods from one day to several weeks.
    #These samplers operate on the principle of a sorbent trapping and retaining a compound of interest. 
    #Sorption typically takes place through reaction with a reagent (i.e. typically TEA for NO2).  
    #After a suitable sample time, the trapped compound can then be analysed using colorimetry/spectrophotometry or ion chromatography. 

    #Diffusive samplers come in various forms, e.g: Palmes, Passam, Ogawa Badge, and Radiello radial sampler tubes.
    #The way these tubes differ is associated with the way they sample air and deal with variations in meteorological conditions. 

    #This method is typically associated with very large uncertainties. 
    #These uncertainties mainly come from:
    #1. The non-specificity of trapped gases (i.e. HONO and PAN are readily uptaken when attempting to trap NO2).
    #2. Variability in temperature, relative humidity, and air velocity directly impacting upon uptake rate of the desired gas, and effectiveness of the sorbent.
    #Uncertainties associated with this methodology are typically reported between 10-35%: http://publications.jrc.ec.europa.eu/repository/bitstream/JRC51106/reqno_jrc51106_eur_23793.pdf[1].pdf

    #Unless additional information is given, make assumption all diffusive samplers trap gases through passing of sorbent tube, followed by subsequent analysis through ion chromatography (by injection).

    'Diffusive Sampler':{'preparation_type':'sorbent tube', 'preparation_isolated_parameters':['NH3','NO2'], 'preparation_further_details':'See Reference for NO2: https://ec.europa.eu/jrc/en/publication/eur-scientific-and-technical-research-reports/review-application-diffusive-samplers-measurement-nitrogen-dioxide-ambient-air-european; reference for NH3:https://www.sciencedirect.com/science/article/pii/S1352231012001136'},

    #--------
    #---No specific sampling preparation name
    'Sorbent Tube':{'preparation_type':'sorbent tube'},

    #------------------------------------
    #reagent reaction

    #Air is reacted with a liquid/solid chemical reagent to allow subsequent measurement of a specific compound

    #The variety of types of passive sampling phases are numerous. These are described in detail below. 
    #The name of the passive sampling method is given as the instrument name.
    #However, yypically only passive sampling phase information is given, with no detail about the analysis phase. 
    #Unless additional information is given, make assumption all passive sampling methods involve chemical reaction with a reagent, followed by subsequent analysis through spectrophotometry (by injection).

    #--------
    #Griess-Saltzman

    #NO2 reacts with water producing nitrous acid.
    #This is reacted with an aromatic amine, to form a diazonium salt.
    #Next, the solution is reacted with organic coupling agent (modified Saltzman reagent - 1960): 0.5% sulfanilic acid, 5% acetic acid, 0.005% NEDA(N-(1-Naphthyl)ethylenediamine dihydrochloride), to form a deeply coloured azo-dye.
    #If an extended sampling time is required, there may be some bleaching by SO2. Saltzman recommended the addition of acetone to the reagent to prevent this.
    #The conversion of NO2 to azo-dye is not quantitative, therefore a factor is introduced to represent the conversion efficiency under a given set of experimental conditions.
    #The absorbance of the solution is then measured spectrophotometrically.
    #Bennett (1930) gave stated a slighted altered reagent for the specific measurement of NO.
    
    'Griess-Saltzman':{'preparation_type':'reagent reaction', 'preparation_isolated_parameters':['NO','NO2'], 'preparation_further_details':'See References: Colorimetric Azo Dye Methods for the Atmospheric Analysis of Nitrogen Dioxide; Historical Development, Szonntagh, E.L, 1979; https://www3.epa.gov/ttn/naaqs/standards/nox/previous/1982-NOx-AQCD.pdf'},
    
    #--------
    #Lyshkow 
    
    #A modification of the Griess-Saltzman method, using a modified reagent to produce an azo-dye: 0.15% Sulfanilamide, 1.5% tartaric acid, 0.005% NEDA, 0.005%  2-Naphthol-3, 6-disulphonic acid disodium salt. 
    #The absorbance of the solution is measured spectrophotometrically, as with Griess-Saltzman.
    #The reagent as with the Griess-Saltzman method can be slightly modified for the specific measurement of NO.
    
    'Lyshkow':{'preparation_type':'reagent reaction', 'preparation_isolated_parameters':['NO','NO2'], 'preparation_further_details':'See References: Colorimetric Azo Dye Methods for the Atmospheric Analysis of Nitrogen Dioxide; Historical Development, Szonntagh, E.L, 1979; https://www3.epa.gov/ttn/naaqs/standards/nox/previous/1982-NOx-AQCD.pdf'},

    #--------
    #Jacobs-Hochheiser 
    
    #Designed by Jacobs and Hochheiser (1958) to avoid the azo-dye bleaching by SO2 that occurs in the Griess-Saltzman method.
    #NO2 is absorbed in a solution of sodium hydroxide.
    #Butanol is added as a surfactant to improve gas transfer.
    #After sampling any sulfite from absorbed SO2 is oxidised with hydrogen peroxide.
    #Next, the solution is acidified with phosphoric acid.
    #A diazotizer and coupling agent are then added to produce an azo-dye.
    #The absorbance of the solution is then measured spectrophotometrically.
    
    'Jacobs-Hochheiser':{'preparation_type':'reagent reaction', 'preparation_isolated_parameters':['NO2'], 'preparation_further_details':'See References: Colorimetric Azo Dye Methods for the Atmospheric Analysis of Nitrogen Dioxide; Historical Development, Szonntagh, E.L, 1979; https://www3.epa.gov/ttn/naaqs/standards/nox/previous/1982-NOx-AQCD.pdf'},

    #--------
    #Sodium Arsenite 
    
    #NO2 is absorbed in an alkaline solution of sodium arsenite.
    #Any sulfite in the solution is oxidised with peroxide.
    #The solution is then the solution is acidified with phosphoric acid.
    #An azo-dye is then formed through addition of sulfanilamide and NEDA.

    'Sodium Arsenite':{'preparation_type':'reagent reaction', 'preparation_isolated_parameters':['NO2'], 'preparation_further_details':'See details: https://www3.epa.gov/ttn/naaqs/standards/nox/previous/1982-NOx-AQCD.pdf'},

    #--------
    #TEA 

    #NO2 is absorbed in a solution of triethanolamine and n-butanol surfactant.
    #The solution is then reacted with the modified Saltzman reagent (1960) to form a deeply coloured azo-dye.
    #The absorbance of the solution is then measured spectrophotometrically.

    'TEA':{'preparation_type':'reagent reaction', 'preparation_isolated_parameters':['NO2'], 'preparation_further_details':'See References: Comparison of Several Methods for Nitrogen Dioxide and Sulfur Dioxide in Metro Manila Air, Quirit, L.L, Hernandez, K.N, Lee, B.J, 2008; https://www3.epa.gov/ttn/naaqs/standards/nox/previous/1982-NOx-AQCD.pdf'},

    #--------
    #TGS-ANSA 
    
    #Ambient air is bubbled through a solution containing triethanolamine, guaiacol and sodium metabilsulfite.
    #Through this process, NO2 is converted to nitrite ion.
    #8-Anilinonaphthalene-1-sulfonic acid ammonium salt (ANSA) and sulfanilamide are then added to the solution.
    #The absorbance of the solution is then measured spectrophotometrically (at 550nm).

    'TGS-ANSA':{'preparation_type':'reagent reaction', 'preparation_isolated_parameters':['NO2'], 'preparation_further_details':'See details: https://www3.epa.gov/ttn/naaqs/standards/nox/previous/1982-NOx-AQCD.pdf'},

    #--------
    #Sodium Phenolate 
    
    #A solution of alkaline phenol and hypochlorite react with ammonia to form indophenol blue.
    #The solution is buffered at a pH of 9.5 with a borate buffer in order to decrease hydrolysis of cyanates and organic nitrogen compounds.
    #The sample is then is then distilled into a solution of boric acid.
    #The blue color formed is intensified with sodium nitroprusside and measured colorimetrically. 

    'Sodium Phenolate':{'preparation_type':'reagent reaction', 'preparation_isolated_parameters':['NH3'], 'preparation_further_details':'See further details:https://www.epa.gov/sites/production/files/2015-06/documents/epa-350.1.pdf'},

    #--------
    #Nessler 
    
    #A dechlorinating agent is added to distilled water until the distillate shows no trace of ammonia. 
    #NaOH is added to the distilled water until the pH is 9.5.     
    #NH3 is absorbed from ambient air into the solution.
    #The solution is buffered at a pH of 9.5 with a borate buffer in order to decrease hydrolysis of cyanates and organic nitrogen compounds.
    #The sample is then is then distilled into a solution of boric acid.
    #The distillate is then reacted with Nessler reagent.
    #The absorbance of the solution is then measured spectrophotometrically (at 425nm).

    'Nessler':{'preparation_type':'reagent reaction', 'preparation_isolated_parameters':['NH3'], 'preparation_further_details':'See further details:https://www.umass.edu/mwwp/pdf/epa350_2NH3titration.pdf'},

    #--------
    #pararosaniline (also referred to as the West and Gaeke Method)
    
    #SO2 is absorbed from air in a solution of potasium tetrachloromercuate. 
    #A dichlorosulfitomercuate complex, which resists oxidation in air, is formed. This complex is stable to strong oxidants (i.e. ozone, NOy).
    #This complex is then reacted with pararosaniline and formaldehyde to form intensely coloured C19H19N3 methyl sulphonic acid. 
    #The absorbance of the solution is then measured spectrophotometrically.
    
    'Pararosaniline':{'preparation_type':'reagent reaction', 'preparation_isolated_parameters':['SO2'], 'preparation_further_details':'Also called West and Gaeke Method. See further details:https://nepis.epa.gov/Exe/ZyNET.exe/9101GLZ9.txt?ZyActionD=ZyDocument&Client=EPA&Index=Prior%20to%201976&Docs=&Query=&Time=&EndTime=&SearchMethod=1&TocRestrict=n&Toc=&TocEntry=&QField=&QFieldYear=&QFieldMonth=&QFieldDay=&UseQField=&IntQFieldOp=0&ExtQFieldOp=0&XmlQuery=&File=D%3A%5CZYFILES%5CINDEX%20DATA%5C70THRU75%5CTXT%5C00000022%5C9101GLZ9.txt&User=anonymous&Password=anonymous&SortMethod=h%7C-&MaximumDocuments=1&FuzzyDegree=0&ImageQuality=r75g8/r75g8/x150y150g16/i425&Display=hpfr&DefSeekPage=x&SearchBack=ZyActionL&Back=ZyActionS&BackDesc=Results%20page&MaximumPages=1&ZyEntry=12'},

    #--------
    #hydrogen peroxide 
    
    #SO2 is absorbed from air in a solution of hydrogen peroxide (adjusted to pH 5).
    #This produces stable, non-volatile sulphuric acid. 
    #The solution is then measured using titration (with standard alkali).

    'Hydrogen Peroxide':{'preparation_type':'reagent reaction', 'preparation_isolated_parameters':['SO2'], 'preparation_further_details':'See further details:https://nepis.epa.gov/Exe/ZyNET.exe/9101GLZ9.txt?ZyActionD=ZyDocument&Client=EPA&Index=Prior%20to%201976&Docs=&Query=&Time=&EndTime=&SearchMethod=1&TocRestrict=n&Toc=&TocEntry=&QField=&QFieldYear=&QFieldMonth=&QFieldDay=&UseQField=&IntQFieldOp=0&ExtQFieldOp=0&XmlQuery=&File=D%3A%5CZYFILES%5CINDEX%20DATA%5C70THRU75%5CTXT%5C00000022%5C9101GLZ9.txt&User=ANONYMOUS&Password=anonymous&SortMethod=h%7C-&MaximumDocuments=1&FuzzyDegree=0&ImageQuality=r75g8/r75g8/x150y150g16/i425&Display=hpfr&DefSeekPage=x&SearchBack=ZyActionL&Back=ZyActionS&BackDesc=Results%20page&MaximumPages=1&ZyEntry=17'},

    #------
    #detection tube
        
    #Gas detection tubes operate on a chemical reaction between the vapour-phase compound and a liquid or solid detecting reagent, which is supported on an inert matrix. 
    #The most common types of reactions are:
    #   -Acid-base reactions These include reactions of acidic gases like HCl and HF with bases, and reaction of alkaline vapors such as ammonia with an acid in the tube. A dye present in the tube changes color as the pH changes on exposure to the vapors.
    #   -Reduction-oxidation (Red-ox) reactions: These generate an oxidized or reduced compound, which has a different color. The chlorine tube uses oxidative coupling of colorless o-toluidine to form an orange azo-dye. White di-iodine pentoxide is reduced by CO and many organic vapors to form deep brown-colored iodine. Orange chromium (VI) is reduced by many organic compounds to form brown or green-colored Cr(III) compounds.
    #   -Ligand-exchange reactions: These generate new complexes that are more colored than the starting reagents. The most notable is the conversion of white lead acetate to brown-black lead sulfide in the detection of H2S. In the case of phosphine, the exchange of PH3 for the chlorine ligand of HgCl2 releases HCl, which then causes a pH- dependent dye-color change.
    #   -Pre-layers or Pre-tubes: These are used to condition the sample by controlling humidity, removing interferences, or transforming the analyte to another detectable compound. Examples include drying agents in NH3 and HCl tubes, organic removal by charcoal or oxidation in selective CO tubes, and oxidation of NO to NO2 in the nitrogen oxides tube.

    #Most detection tubes are length-of-stain types. In these tubes, the reaction of the gas with the supported reagent is fast, compared to the transport of the bulk air sample through the tube. Therefore, all of the detected vapors are reacted within the tube. As a result, there is not a strong dependence of the readings on the rate at which the gas is sampled. However, a very high flow rate can cause some smearing to a high reading. 
    #Conversely, low flow rates are less likely to affect the stain length, but can give low readings by concentrating the colored products in a shorter section of the tube. In cases of flow extremes, errors outside the standard 25% accuracy can be produced.
    #Detection tubes are usually calibrated using piston hand pumps. The flow during a single pump stroke initially rises sharply and then decays exponentially. The best accuracy is therefore obtained when the flow through the tube mimics this profile.
    #The advantages of detection tubes over other analytical methods are simplicity of use, rapid response, low cost, and very low maintenance. Because tubes are typically pre-calibrated, no calibration equipment is necessary. 
    #Errors are prevented by directly marking the calibration information on each tube, and accuracy is further ensured by controlling the volume of air sampled. 
    #Air sampling can also be performed using piston pumps, which latch into a precisely defined position to fix the volume. These pumps pull a strong vacuum initially and thus create substantially higher flowrate than the bellows pumps. Piston pumps generate a high flow initially followed by an approximately exponential decay, whereas bellows pumps provide a more steady flow initially followed by the slow decay. 
    #The difference in flow patterns means that the pumps cannot be interchanged between types. For example, piston pumps sometime cause a smearing of the color stain when used on tubes originally developed for bellows pumps. This occurs because the higher flow rates do not allow enough contact time to give sharp endpoints when a piston pump is used.   

    #Uncertainty on measurements is typically high with this method, typically reported between 10-25 %: https://www.honeywellanalytics.com/~/media/honeywell-analytics/products/colorimetric-gas-detection-tubes/documents/hagastubeshandbook667802enlr.pdf?la=en

    #Unless additional information is given, make assumption all diffusive samplers trap and produce characteristic colour through reagent reaction, followed by subsequent analysis through colorimetry (manual).
    'Detection Tube':{'preparation_type':'reagent reaction', 'preparation_isolated_parameters':['O3','NO','NO2','NOx','NH3','CO','SO2','HNO3'], 'preparation_further_details':'See details: https://www.honeywellanalytics.com/~/media/honeywell-analytics/products/colorimetric-gas-detection-tubes/documents/hagastubeshandbook667802enlr.pdf?la=en'},

    #--------
    #---No specific sampling preparation name
    'Reagent Reaction':{'preparation_type':'reagent reaction'},
    
    #------
    #intermediate measurement
    
    #A measurement is made by instrument/manually which feeds later into the ultimate measurement  
    
    #---No specific sampling preparation name
    'Intermediate Measurement':{'preparation_type':'intermediate measurement'}}
    
    return database

#----------------------------------------------------------------------------------------#
def measurement_methodologies_database():

    database = {
#------------------------------------
#ultraviolet photometry

#Operates on the principle that a specific species efficiently absorbs light at a known wavelength in the UV range. This is the case for ozone, at 253.65nm.
#The degree to which the UV light is absorbed by a specific species is directly related to the species concentration as described by the Beer-Lambert Law (I/Io = e−KLC; K = molecular absorption coefficient at STP (308 cm-1 atm-1 for O3), L = optical path length of cell, C = species concentration , I = light intensity of sample gas, Io = light intensity of sample without measured species (reference gas) ).

#Typical measurement operation for ozone:
#1. Ambient air is continuously drawn through the analyser by a vacuum pump. 
#2. Sample is split into two flow paths. One path incorporates a scrubber which selectively removes ozone, while the other path does not. 
#3. Both flow paths are connected to a solenoid valve, which switches at a fixed interval to allow either the sample gas stream (I), or the scrubbed, reference gas stream (Io), to flow through a quartz tube (cell) of accurately known length. 
#4. Typically a mercury vapour lamp at one end of the quartz cell produces a monochromatic beam of ultraviolet light at 254 nm. A vacuum diode at the opposite end of the cell measures the intensity of transmitted light (I/Io). 
#5. The intensities of 254 nm UV light transmitted through the sample (I) and ozone-free reference gas streams (Io) are related to the concentration (C) of ozone in the sample gas stream according to the Beer-Lambert Law.
#6. The analyzer’s microprocessor calculates the absolute concentration in molecules cm-3, and is then converted to a mixing ratio using in-instrument measured sample temperature and pressure.

#Known interferences: Gaseous hydrocarbons with strong absorption at 254 nm, such as aromatic hydrocarbons (i.e., benzene and substituted benzene rings).

    '2B 202':                   {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'3.0',  'documented_upper_limit_of_detection':'250000.0', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.5/2.0%',  'reported_precision':np.NaN, 'documented_accuracy':'1.5/2.0%', 'reported_accuracy':np.NaN, 'documented_zero_drift':'2.0/day',    'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/day',       'reported_span_drift':np.NaN, 'documented_resolution':'0.1',   'reported_resolution':np.NaN, 'documented_absorption_cross_section':'1.15e-17',   'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.0',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'2B_202_Manual.pdf'},
    '2B 205':                   {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'2.0',  'documented_upper_limit_of_detection':'250000.0', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.0/2.0%',  'reported_precision':np.NaN, 'documented_accuracy':'1.0/2.0%', 'reported_accuracy':np.NaN, 'documented_zero_drift':'1.0/day',    'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/day',       'reported_span_drift':np.NaN, 'documented_resolution':'0.1',   'reported_resolution':np.NaN, 'documented_absorption_cross_section':'1.15e-17',   'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.8',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'2B_205_Manual.pdf'},
    '2B 211':                   {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'1.0',  'documented_upper_limit_of_detection':'2000.0',   'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5/1.0%',  'reported_precision':np.NaN, 'documented_accuracy':'1.0/2.0%', 'reported_accuracy':np.NaN, 'documented_zero_drift':'1.0/day',    'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%/day',       'reported_span_drift':np.NaN, 'documented_resolution':'0.1',   'reported_resolution':np.NaN, 'documented_absorption_cross_section':'1.15e-17',   'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'2.0',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'2B_211_Manual.pdf'},
    '2B 106-L':                 {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'3.0',  'documented_upper_limit_of_detection':'100000.0', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.5/2.0%',  'reported_precision':np.NaN, 'documented_accuracy':'1.5/2.0%', 'reported_accuracy':np.NaN, 'documented_zero_drift':'3.0/day',    'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/day',       'reported_span_drift':np.NaN, 'documented_resolution':'0.1',   'reported_resolution':np.NaN, 'documented_absorption_cross_section':'1.15e-17',   'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.0',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'2B_106-L_Manual.pdf'},
    '2B 106-OEM-L':             {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'3.0',  'documented_upper_limit_of_detection':'100000.0', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.5/2.0%',  'reported_precision':np.NaN, 'documented_accuracy':'1.5/2.0%', 'reported_accuracy':np.NaN, 'documented_zero_drift':'3.0/day',    'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/day',       'reported_span_drift':np.NaN, 'documented_resolution':'0.1',   'reported_resolution':np.NaN, 'documented_absorption_cross_section':'1.15e-17',   'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.0',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'2B_106-L_Manual.pdf'},
    '2B POM':                   {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'3.0',  'documented_upper_limit_of_detection':'10000.0',  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.5/2.0%',  'reported_precision':np.NaN, 'documented_accuracy':'1.5/2.0%', 'reported_accuracy':np.NaN, 'documented_zero_drift':'2.0/day',    'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/day',       'reported_span_drift':np.NaN, 'documented_resolution':'0.1',   'reported_resolution':np.NaN, 'documented_absorption_cross_section':'1.15e-17',   'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.8',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'2B_POM_Manual.pdf'},
    'Dasibi 1003-AH':           {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,     'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,           'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet photometry here:http://cdiac.ess-dive.lbl.gov/programs/NARSTO/Compendium_combined.pdf', 'measuring_instrument_manual_name':np.NaN},
    'Dasibi 1003-PC':           {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,     'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,           'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet photometry here:http://cdiac.ess-dive.lbl.gov/programs/NARSTO/Compendium_combined.pdf', 'measuring_instrument_manual_name':np.NaN},
    'Dasibi 1003-RS':           {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,     'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,           'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet photometry here:http://cdiac.ess-dive.lbl.gov/programs/NARSTO/Compendium_combined.pdf', 'measuring_instrument_manual_name':np.NaN},
    'Dasibi 1008-AH':           {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'2.0',  'documented_upper_limit_of_detection':'1000.0',   'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.0',       'reported_precision':np.NaN, 'documented_accuracy':'1.0',      'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,           'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':'1.1476e-17', 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'2.0',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Dasibi_1008_Manual.pdf'},
    'Dasibi 1008-HC':           {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'2.0',  'documented_upper_limit_of_detection':'1000.0',   'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.0',       'reported_precision':np.NaN, 'documented_accuracy':'1.0',      'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,           'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':'1.1476e-17', 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'2.0',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Dasibi_1008_Manual.pdf'},
    'Dasibi 1008-PC':           {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'2.0',  'documented_upper_limit_of_detection':'1000.0',   'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.0',       'reported_precision':np.NaN, 'documented_accuracy':'1.0',      'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,           'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':'1.1476e-17', 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'2.0',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Dasibi_1008_Manual.pdf'},
    'Dasibi 1008-PS':           {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'2.0',  'documented_upper_limit_of_detection':'1000.0',   'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.0',       'reported_precision':np.NaN, 'documented_accuracy':'1.0',      'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,           'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':'1.1476e-17', 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'2.0',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Dasibi_1008_Manual.pdf'},
    'Dasibi 1008-RS':           {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'2.0',  'documented_upper_limit_of_detection':'1000.0',   'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.0',       'reported_precision':np.NaN, 'documented_accuracy':'1.0',      'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,           'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':'1.1476e-17', 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'2.0',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Dasibi_1008_Manual.pdf'},
    'DKK-TOA GUX-113E':         {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,     'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,           'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet photometry here:https://books.google.es/books?id=KpQhwCLgVgAC&pg=PA209&lpg=PA209&dq=GUX-113E&source=bl&ots=e1rn8FsfBV&sig=Sd0wYb5DAjG4GZBrpsFPAuZ6Uqo&hl=en&sa=X&ved=0ahUKEwjbivvTq67bAhVDuRQKHY50ASYQ6AEIMjAB#v=onepage&q=GUX-113E&f=false', 'measuring_instrument_manual_name':np.NaN},
    'DKK-TOA GUX-313E':         {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'0.5',  'documented_upper_limit_of_detection':'1000.0',   'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':'1.0/day',    'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/day',       'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'DKK-TOA_GUX-313E_Specs.pdf'},
    'Dylec 1100':               {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'0.1',  'documented_upper_limit_of_detection':'500.0',    'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5%',      'reported_precision':np.NaN, 'documented_accuracy':'0.5%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'0.5%/month', 'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%/month',     'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.5-2.0', 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assume_equivalent',  'measuring_instrument_further_details':'Specifications online:https://translate.google.com/translate?hl=en&sl=ja&u=http://www.dylec.co.jp/01ozone/m1100.html&prev=search', 'measuring_instrument_manual_name':np.NaN},
    'Dylec 1200':               {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':'20000.0',  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5%',      'reported_precision':np.NaN, 'documented_accuracy':'0.5%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'0.5%/month', 'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%/month',     'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.5-2.0', 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assume_equivalent',  'measuring_instrument_further_details':'Specifications online:https://translate.google.com/translate?hl=en&sl=ja&u=http://www.dylec.co.jp/01ozone/m1200.html&prev=search', 'measuring_instrument_manual_name':np.NaN},
    'Ebara EG-2001F':           {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,     'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,           'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assume_equivalent',  'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet photometry here: http://www.data.jma.go.jp/gmd/env/ghg_obs/en/station/station_minamitorishima.html', 'measuring_instrument_manual_name':np.NaN},
    'Ebara EG-2001FTP':         {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,     'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,           'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assume_equivalent',  'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet photometry here: http://www.data.jma.go.jp/gmd/env/ghg_obs/en/station/station_minamitorishima.html', 'measuring_instrument_manual_name':np.NaN},
    'Ebara EG-3000F':           {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':'1000.0',   'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'5.0',       'reported_precision':np.NaN, 'documented_accuracy':'5.0',      'reported_accuracy':np.NaN, 'documented_zero_drift':'5.0/month',  'reported_zero_drift':np.NaN, 'documented_span_drift':'5.0/month',      'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.5',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assume_equivalent',  'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Ebara_EG-3000F_Manual.pdf'},
    'Ecotech EC9810':           {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'0.5',  'documented_upper_limit_of_detection':'20000.0',  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.0/1.0%',  'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':'1.0/day',    'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%/day',       'reported_span_drift':np.NaN, 'documented_resolution':'0.001', 'reported_resolution':np.NaN, 'documented_absorption_cross_section':'1.1476e-17', 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.5',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Ecotech_EC9810_Manual.pdf'},
    'Ecotech Serinus10':        {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'0.5',  'documented_upper_limit_of_detection':'20000.0',  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5/0.2%',  'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'0.3/day',    'reported_zero_drift':np.NaN, 'documented_span_drift':'0.3/0.5%/7days', 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.5',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Ecotech_Serinus10_Specs.pdf'},
    'Environics 300':           {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,     'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,           'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet photometry here:http://cdiac.ess-dive.lbl.gov/programs/NARSTO/Compendium_combined.pdf', 'measuring_instrument_manual_name':np.NaN},
    'Environnement SA O341M':   {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,     'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,           'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet photometry here:http://cdiac.ess-dive.lbl.gov/programs/NARSTO/Compendium_combined.pdf', 'measuring_instrument_manual_name':np.NaN},
    'Environnement SA O342e':   {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'0.2',  'documented_upper_limit_of_detection':'10000.0',  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'0.5/day',    'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%/day',       'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.0',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'EnvironnementSA_O342e_Specs.pdf'},
    'Environnement SA O342M':   {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'0.4',  'documented_upper_limit_of_detection':'10000.0',  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'1.0/week',   'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/week',      'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.0',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'EnvironnementSA_O342M_Specs.pdf'},
    'Horiba APOA350':           {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,     'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,           'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assume_equivalent',  'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet photometry here:https://books.google.es/books?id=WqvzBQAAQBAJ&pg=SL13-PA35&lpg=SL13-PA35&dq=Horiba+APOA350&source=bl&ots=Ltdp9qBqrc&sig=qKEZbhp9Vd0UPEbMIL6Al8CKITM&hl=en&sa=X&ved=0ahUKEwjcjJKai9bbAhXH7BQKHa_gDvQ4ChDoAQgtMAE#v=onepage&q=Horiba%20APOA350&f=false', 'measuring_instrument_manual_name':np.NaN},
    'Horiba APOA360':           {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'0.5',  'documented_upper_limit_of_detection':'10000.0',  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.0%',      'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'0.5/day',    'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5/day',        'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.8',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Horiba_APMA360_Specs.pdf'},
    'Horiba APOA370':           {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'0.5',  'documented_upper_limit_of_detection':'100000.0', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.0%',      'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'0.5/day',    'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5/day',        'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.7',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Horiba_APOA370_Specs.pdf'},
    'PCI LC-12':                {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,     'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,           'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet photometry here:http://cdiac.ess-dive.lbl.gov/programs/NARSTO/Compendium_combined.pdf', 'measuring_instrument_manual_name':np.NaN},
    'Sabio 6030':               {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'0.4',  'documented_upper_limit_of_detection':'10000.0',  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5%',      'reported_precision':np.NaN, 'documented_accuracy':'0.5%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'1.0/month',  'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/month',     'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.5-1.0', 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Sabio_6030_Specs.pdf'},
    'Seres OZ 2000G':           {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'1.0',  'documented_upper_limit_of_detection':'10000.0',  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'1.5/week',   'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/month',     'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.0',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Seres_OZ2000G_Specs.pdf'},
    'SIR S-5014':               {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,     'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,           'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet photometry here: http://www.ecomission.co.za/products/model_s_5014.htm', 'measuring_instrument_manual_name':np.NaN},
    'Tanabyte 722':             {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'0.5',  'documented_upper_limit_of_detection':'10000.0',  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.0',       'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'1.0%/week',  'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/week',      'reported_span_drift':np.NaN, 'documented_resolution':'0.1',   'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.5-2.0', 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Tanabyte_72x_Specs.pdf'},
    'Tanabyte 723':             {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'0.5',  'documented_upper_limit_of_detection':'10000.0',  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.0',       'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'1.0%/week',  'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/week',      'reported_span_drift':np.NaN, 'documented_resolution':'0.1',   'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.5-2.0', 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Tanabyte_72x_Specs.pdf'},
    'Tanabyte 724':             {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'0.5',  'documented_upper_limit_of_detection':'10000.0',  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.0',       'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'1.0%/week',  'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/week',      'reported_span_drift':np.NaN, 'documented_resolution':'0.1',   'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.5-2.0', 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Tanabyte_72x_Specs.pdf'},
    'Tanabyte 725':             {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'0.5',  'documented_upper_limit_of_detection':'10000.0',  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.0',       'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'1.0%/week',  'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/week',      'reported_span_drift':np.NaN, 'documented_resolution':'0.1',   'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.5-2.0', 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Tanabyte_72x_Specs.pdf'},
    'Tanabyte 726':             {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'0.5',  'documented_upper_limit_of_detection':'10000.0',  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.0',       'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'1.0%/week',  'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/week',      'reported_span_drift':np.NaN, 'documented_resolution':'0.1',   'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.5-2.0', 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Tanabyte_72x_Specs.pdf'},
    'Tanabyte 734':             {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'0.5',  'documented_upper_limit_of_detection':'10000.0',  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.0',       'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'1.0%/week',  'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/week',      'reported_span_drift':np.NaN, 'documented_resolution':'0.1',   'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.5-2.0', 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assume_equivalent',  'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Tanabyte_72x_Specs.pdf'},
    'Teledyne 400':             {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,     'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,           'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet photometry here:http://cdiac.ess-dive.lbl.gov/programs/NARSTO/Compendium_combined.pdf', 'measuring_instrument_manual_name':np.NaN},   
    'Teledyne 400A':            {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'0.6',  'documented_upper_limit_of_detection':'10000.0',  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5%',      'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'1.0/day',    'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/day',       'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':'1.1476e-17', 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.8',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Teledyne_400A_Manual.pdf'},   
    'Teledyne 8810':            {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,     'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,           'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet photometry here:http://cdiac.ess-dive.lbl.gov/programs/NARSTO/Compendium_combined.pdf', 'measuring_instrument_manual_name':np.NaN},
    'Teledyne 9810':            {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,     'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,           'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet photometry here:http://cdiac.ess-dive.lbl.gov/programs/NARSTO/Compendium_combined.pdf', 'measuring_instrument_manual_name':np.NaN},
    'Teledyne 9810B':           {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,     'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,           'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet photometry here:http://cdiac.ess-dive.lbl.gov/programs/NARSTO/Compendium_combined.pdf', 'measuring_instrument_manual_name':np.NaN},
    'Teledyne 9811':            {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,     'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,           'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet photometry here:http://cdiac.ess-dive.lbl.gov/programs/NARSTO/Compendium_combined.pdf', 'measuring_instrument_manual_name':np.NaN},
    'Teledyne 9812':            {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,     'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,           'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet photometry here:http://cdiac.ess-dive.lbl.gov/programs/NARSTO/Compendium_combined.pdf', 'measuring_instrument_manual_name':np.NaN},
    'Teledyne T204-O3':         {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'2.0',  'documented_upper_limit_of_detection':'1000.0',   'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5%>=100', 'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'1.0%/day',   'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/day',       'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':'1.1476e-17', 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.8',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Teledyne_T204_Manual.pdf'},
    'Teledyne T400':            {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'0.4',  'documented_upper_limit_of_detection':'10000.0',  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5%>=100', 'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'1.0/day',    'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/day',       'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.8',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Teledyne_T400_Manual.pdf'},
    'Thermo 49':                {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,     'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,           'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet photometry here:http://cdiac.ess-dive.lbl.gov/programs/NARSTO/Compendium_combined.pdf', 'measuring_instrument_manual_name':np.NaN},
    'Thermo 49C':               {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'1.0',  'documented_upper_limit_of_detection':'200000.0', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.0',       'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'1.0/day',    'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/month',     'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':'1.1476e-17', 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.0-3.0', 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Thermo_49C_Manual.pdf'},
    'Thermo 49i':               {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'0.5',  'documented_upper_limit_of_detection':'200000.0', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.0',       'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'1.0/day',    'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/month',     'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':'1.1476e-17', 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.0-3.0', 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Thermo_49i_Manual.pdf,Thermo_49i_Specs.pdf'},
    'Thermo 49w':               {'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,     'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,           'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assume_equivalent',  'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet photometry here:https://www.rivm.nl/en/Documents_and_publications/Scientific/Reports/1993/juni/Acceptance_procedure_and_testresults_of_the_ozone_analyzers_model_49W_made_by_Thermo_Environmental_Instruments_on_behalf_of_the_Dutch_National_Air_Quality_Monitoring_Network', 'measuring_instrument_manual_name':np.NaN},
    'Wedding & Associates 1010':{'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,     'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,           'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN,       'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet photometry here:http://cdiac.ess-dive.lbl.gov/programs/NARSTO/Compendium_combined.pdf', 'measuring_instrument_manual_name':np.NaN},
#---No specific instrument name
    'Ultraviolet Photometry':{'methodology':'ultraviolet photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assume_equivalent', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},
    
#------------------------------------
#visible photometry

#Operates on the principle that a specific species efficiently absorbs light at a known wavelength in the visible range. This is the case for NO2, at 405nm
#The degree to which the visible light is absorbed by a specific species is directly related to the species concentration as described by the Beer-Lambert Law (C = 1/Lσ * ln(Io/I) ; σ = absorption cross section (6.06×10-19 cm2 molec-1 for NO2 at 405nm), L = optical path length of cell, C = species concentration , I = light intensity of sample gas, Io = light intensity of sample without measured species (reference gas) ).

#Typical measurement operation for NO2 (and indirectly NO):
#1. Ambient air is continuously drawn through the instrument by a vacuum pump. 
#2. An NO2 scrubber valve alternately bypasses and sends the sample air through a heated NO2 scrubber to remove all NO2 in the sample. 
#3. The NO2-scrubbed/unscrubbed air alternately passes through the optical cell (of known length) and the cell flow meter. Alternate switching of the NO2 scrubber valve once every 5 seconds allows the measurement of a light intensity in the absence of NO2 and presence of NO2. 
#4. A light-emitting diode (LED) emits a monochromatic beam of light at 405nm. A photodiode at the other end of the cell measures the intensity of transmitted light (I/Io).
#5. The intensities of 254 nm light transmitted through the sample (I) and NO2-free reference gas streams (Io) are related to the concentration (C) of ozone in the sample gas stream according to the Beer-Lambert Law.
#6. The analyser's microprocessor calculates the absolute concentration in molecules cm-3, and is then converted to a mixing ratio using in-instrument measured sample temperature and pressure.
#7. NO is measured indirectly by bypassing the NO2 scrubber and measuring the light intensity while adding (I) or not adding (Io) ozone to convert NO to NO2 according to the well-known reaction: NO + O3 → NO2 + O2

#Known interferences: Water vapour, small particles (< 5 um)

    '2B 405nm':          {'methodology':'visible photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO','NO2','NOx'], 'documented_lower_limit_of_detection':'1.0',  'documented_upper_limit_of_detection':{'NO':'2000.0','NO2':'10000.0'}, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5/0.5%', 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':'0.1', 'reported_resolution':np.NaN, 'documented_absorption_cross_section':'6.06e-19', 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'2B_405nm_Manual.pdf'},
#---No specific instrument name
    'Visible Photometry':{'methodology':'visible photometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO','NO2','NOx'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,                          'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,     'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assume_equivalent', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#--------------------------------------------------------------------------------------###
#ethylene chemiluminescence 

#Chemiluminescence is the emission of light (luminescence), as the result of a chemical reaction. Chemiluminescence occurs as a result of the reaction of ozone with ethylene, leading to an excited molecule.
#The return to a fundamental electronic state of the excited molecules is made by luminous radiation in a specific spectrum, which can be measured.
#The concentration of sample ozone is directly proportional to the intensity of light emitted.
#The broadband emission is detected using a photomultiplier tube (at 440 nm for ethylene + ozone).

#Known interferences: water vapour


    'Beckman 950A':   {'methodology':'ethylene chemiluminescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference', 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ethylene chemiluminescence here:http://cdiac.ess-dive.lbl.gov/programs/NARSTO/Compendium_combined.pdf', 'measuring_instrument_manual_name':np.NaN},
    'Bendix 8002':    {'methodology':'ethylene chemiluminescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'1.0',  'documented_upper_limit_of_detection':'200.0', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference', 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ethylene chemiluminescence here:http://cdiac.ess-dive.lbl.gov/programs/NARSTO/Compendium_combined.pdf ; details about limit of detection:https://books.google.es/books?id=G0EYUql3_98C&pg=PA283&lpg=PA283&dq=thermo+43a&source=bl&ots=k2RUJXlAVJ&sig=yIxG08AoSyuqedtS6dp-O7O04X4&hl=en&sa=X&ved=0ahUKEwj17qqB3OfbAhVCVRQKHanFDlo4ChDoAQgoMAA#v=onepage&q=thermo%2043a&f=false', 'measuring_instrument_manual_name':np.NaN},
    'CSI 2000':       {'methodology':'ethylene chemiluminescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference', 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ethylene chemiluminescence here:http://cdiac.ess-dive.lbl.gov/programs/NARSTO/Compendium_combined.pdf', 'measuring_instrument_manual_name':np.NaN},
    'McMillan 1100-1':{'methodology':'ethylene chemiluminescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference', 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ethylene chemiluminescence here:http://cdiac.ess-dive.lbl.gov/programs/NARSTO/Compendium_combined.pdf', 'measuring_instrument_manual_name':np.NaN},
    'McMillan 1100-2':{'methodology':'ethylene chemiluminescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference', 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ethylene chemiluminescence here:http://cdiac.ess-dive.lbl.gov/programs/NARSTO/Compendium_combined.pdf', 'measuring_instrument_manual_name':np.NaN},
    'McMillan 1100-3':{'methodology':'ethylene chemiluminescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference', 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ethylene chemiluminescence here:http://cdiac.ess-dive.lbl.gov/programs/NARSTO/Compendium_combined.pdf', 'measuring_instrument_manual_name':np.NaN},
    'Meloy 0A325-2R': {'methodology':'ethylene chemiluminescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference', 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ethylene chemiluminescence here:http://cdiac.ess-dive.lbl.gov/programs/NARSTO/Compendium_combined.pdf', 'measuring_instrument_manual_name':np.NaN},
    'Meloy 0A350-2R': {'methodology':'ethylene chemiluminescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference', 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ethylene chemiluminescence here:http://cdiac.ess-dive.lbl.gov/programs/NARSTO/Compendium_combined.pdf', 'measuring_instrument_manual_name':np.NaN},
    'Teledyne 8410E': {'methodology':'ethylene chemiluminescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference', 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ethylene chemiluminescence here:http://cdiac.ess-dive.lbl.gov/programs/NARSTO/Compendium_combined.pdf', 'measuring_instrument_manual_name':np.NaN},
#---No specific instrument name
    'Ethylene Chemiluminescence':{'methodology':'ethylene chemiluminescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assume_reference', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#--------------------------------------------------------------------------------------###
#eosin-Y chemiluminescence 

#Chemiluminescence is the emission of light (luminescence), as the result of a chemical reaction. Chemiluminescence occurs as a result of the reaction of ozone with eosin-Y, leading to an excited molecule.
#The return to a fundamental electronic state of the excited molecules is made by luminous radiation in a specific spectrum, which can be measured.
#The concentration of sample ozone is directly proportional to the intensity of light emitted.
#The broadband emission is detected using a photomultiplier tube (at ~560 nm for eosin-Y + ozone).

#Known interferences: water vapour

    'Luminox LOZ-3':            {'methodology':'eosin-Y chemiluminescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,  'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assume_equivalent', 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses eosin-Y chemiluminescence here:http://cdiac.ess-dive.lbl.gov/programs/NARSTO/Compendium_combined.pdf', 'measuring_instrument_manual_name':np.NaN},
#---No specific instrument name
    'Eosin-Y Chemiluminescence':{'methodology':'eosin-Y chemiluminescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assume_equivalent', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},
    
#--------------------------------------------------------------------------------------###
#rhodamine B chemiluminescence 

#Chemiluminescence is the emission of light (luminescence), as the result of a chemical reaction. Chemiluminescence occurs as a result of the reaction of ozone with rhodamine B, leading to an excited molecule.
#The return to a fundamental electronic state of the excited molecules is made by luminous radiation in a specific spectrum, which can be measured.
#The concentration of sample ozone is directly proportional to the intensity of light emitted.
#The broadband emission is detected using a photomultiplier tube (at ~580 nm for rhodamine B + ozone).

#Known interferences: water vapour

    'Philips PW9771': {'methodology':'rhodamine B chemiluminescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent', 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses rhodamine B chemiluminescence here:http://cdiac.ess-dive.lbl.gov/programs/NARSTO/Compendium_combined.pdf', 'measuring_instrument_manual_name':np.NaN},
#---No specific instrument name
    'Rhodamine B Chemiluminescence':{'methodology':'rhodamine B chemiluminescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'], 'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assume_equivalent', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},
    
#------------------------------------
#chemiluminescence (internal molybdenum converter)
    
#Chemiluminescence is the emission of light (luminescence), as the result of a chemical reaction. Chemiluminescence occurs as a result of the reaction of NO with ozone (NO+O3 --> NO2*+O2).
#The return to a fundamental electronic state of the excited NO2* molecules is made by luminous radiation in a 600-3000 nm spectrum (NO2* --> NO2 + hv), which can be measured.
#This method is designed specifically to directly measure NO directly (and NOx/NO2 indirectly). O3 can also be measured by inverting the measurement technique (using canister of NO for reaction).
    
#Typical measurement operation for NO (and NOx/NO2 indirectly):
#1. Sample air is drawn into the reaction cell via two separate (alternating) paths; the NO and NOx channels.
#2. NO in the first path (NO channel) reacts with ozone (from ozone generator) according to the following reaction: NO+O3 --> NO2*+O2.
#3. The excited NO2 molecules quickly returns to the ground state, releasing the excess energy. This release takes the form of a quantum of light (hv). The distribution of wavelengths for these quanta range between 600 and 3000 nm, with a peak at about 1200 nm (NO2* --> NO2 +hv (1200nm))
#4. Luminescence from the reaction is detected using a photomultiplier tube (PMT). Photons enter the PMT and strike a negatively charged photo cathode causing it to emit electrons. These electrons are accelerated by an applied high voltage and multiplied through a sequence of similar acceleration steps (dynodes) until a useable current signal is generated. The more light present (in this case photons given off by the chemiluminescent reaction described above), the more current is produced. Therefore the more NO present in the reaction cell the more current is produced by the PMT.
#5. Before entering the PMT, light is passed through a high-pass optical filter only transparent to wavelengths of light above 645nm. The narrowness of this band of sensitivity allows avoids the potential of extraneous light and radiation that might interfere with the measurement (e.g. some oxides of sulfur can also be chemiluminescent emitters when in contact with O3 but give off light at much shorter wavelengths (usually around 260nm to 480nm)).
#6. All things being constant (temperature, pressure, amount of ozone present, etc.), the relationship between the amount of NO present in the reaction cell and the amount of light emitted from the reaction is very linear. If more NO is present, more IR light is produced. 
#7. In addition, sometimes the excited NO2 collides with other gaseous molecules in the reaction cell chamber or even the molecules of the reaction cell walls and transfers its excess energy to this collision partner (represented by M) without emitting any light at all. In fact, by far the largest portion of the excited NO2 returns to the ground state this way, leaving only a few percent yield of usable chemiluminescence (NO2* + M --> NO2 + M). The probability of a collision between the NO2* molecule and a collision partner M increases proportionally with the reaction cell pressure. This non-radiating collision with the NO2* molecules is usually referred to as third body quenching. Even under the best conditions only about 20% of the NO2 that is formed by the key chemiluminescence reaction is in the excited state. In order to maximize chemiluminescence, the reaction cell is maintained at reduced pressure (thereby reducing the amount of available collision partners) and is supplied with a large, constant excess of ozone (about 3000-5000 ppm) from the internal ozone generator.
#8. The second path (NOx channel) travels through a delay loop and a heated molybdenum converter (at 315degC). The heated molybdenum reacts with NO2 in the sample gas and produces a NO gas and a variety of molybdenum. (xNO2 + yMo --> xNO + MyOz (at 315degC)).
#9. Once the NO2 in the sample gas has been converted to NO, it is routed to the reaction cell where it undergoes the chemiluminescence reaction and is measured by the PMT.
#10. By converting the NO2 in the sample gas into NO, the analyser indirectly measures total NOx content of the sample gas (i.e. the NO present + the converted NO2 present). 
#11. By switching the sample gas stream in and out of the molybdenum converter every 6 - 10 seconds, the analyser is able to quasi-continuously measure both the NO and the total NOx content.
#12. The NO2 concentration is not directly measured but calculated by subtracting the known NO content of the sample gas from the known NOx content.

#Known interferences: Water vapour (above 20 ppmv), 3rd body quenching (CO2, SOx), other NOy species converted to NO by molybdenum converter (PAN, ethyl nitrate, ethyl nitrite, HONO, HNO3, methyl nitrate, n-propyl nitrate, n-butyl nitrate, nitrocresol, NH3), other species undergoing chemiluminescence with O3 (SOx).

#Not accepted QA type for NO/NOx due to bias in measuring NO2, due to molybdenum converters.

    'Advanced Pollution 200':{'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,                                          'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,     'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,      'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,          'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':'cannot find any information. AQS states it as continuous for NO2 which is almost always chemiluminescence with internal molybdenum converter. Assume this.', 'measuring_instrument_manual_name':np.NaN, 'measuring_assumption':True},
    'Beckman 952A':          {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,                                          'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,     'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,      'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,          'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses chemiluminescence here, assume internal molybdenum converter: https://www.tandfonline.com/doi/pdf/10.1080/00022470.1979.10470816?needAccess=true', 'measuring_instrument_manual_name':np.NaN, 'measuring_assumption':True},
    'Bendix 8101-B':         {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,                                          'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,     'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,      'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,          'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses chemiluminescence here, assume internal molybdenum converter: https://www.tandfonline.com/doi/pdf/10.1080/00022470.1980.10465149', 'measuring_instrument_manual_name':np.NaN, 'measuring_assumption':True},
    'Bendix 8101-C':         {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,                                          'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,     'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,      'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,          'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses chemiluminescence here, assume internal molybdenum converter: https://www.ce.berkeley.edu/sites/default/files/assets/users/kirchstetter/Kirchstetter%20et%20al%2C%20Nitrous%20Acid%20in%20Motor%20Vehicle%20Exhaust%2C%20EST%201996.pdf', 'measuring_instrument_manual_name':np.NaN, 'measuring_assumption':True},
    'CSI 1600':              {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,                                          'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,     'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,      'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,          'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses chemiluminescence here, assume internal molybdenum converter: https://nepis.epa.gov/Exe/ZyNET.exe/30003UBG.txt?ZyActionD=ZyDocument&Client=EPA&Index=1986%20Thru%201990&Docs=&Query=&Time=&EndTime=&SearchMethod=1&TocRestrict=n&Toc=&TocEntry=&QField=&QFieldYear=&QFieldMonth=&QFieldDay=&UseQField=&IntQFieldOp=0&ExtQFieldOp=0&XmlQuery=&File=D%3A%5CZYFILES%5CINDEX%20DATA%5C86THRU90%5CTXT%5C00000006%5C30003UBG.txt&User=ANONYMOUS&Password=anonymous&SortMethod=h%7C-&MaximumDocuments=1&FuzzyDegree=0&ImageQuality=r75g8/r75g8/x150y150g16/i425&Display=hpfr&DefSeekPage=x&SearchBack=ZyActionL&Back=ZyActionS&BackDesc=Results%20page&MaximumPages=1&ZyEntry=1', 'measuring_instrument_manual_name':np.NaN, 'measuring_assumption':True},
    'Dasibi 2108':           {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,                                          'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,     'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,      'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,          'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses chemiluminescence here, assume internal molybdenum converter:https://books.google.es/books?id=-I7pCAAAQBAJ&pg=PA372&lpg=PA372&dq=DASIBI+2108+manual&source=bl&ots=ZwNR_ShKjO&sig=yUbYYfnJXqD8eAJovJ6pNjaa468&hl=en&sa=X&ved=0ahUKEwj_jL_SxqzbAhXrB8AKHXvKDkUQ6AEIWTAI#v=onepage&q=DASIBI%202108%20manual&f=false', 'measuring_instrument_manual_name':np.NaN, 'measuring_assumption':True},
    'DKK-TOA GLN-114E':      {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,                                          'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,     'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,      'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,          'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':'cannot find converter documentation but states instrument is previous version of DKK-TOA GLN-314E here: https://www.toadkk.co.jp/english/product/env/saleend/ap.html. This uses internal molybdenum converter, so assume same here', 'measuring_instrument_manual_name':np.NaN, 'measuring_assumption':True},
    'DKK-TOA GLN-314E':      {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':'0.4',  'documented_upper_limit_of_detection':'2000.0',                                        'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,     'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':'0.6/day',   'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/day',      'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'DKK-TOA_GLN-314E_Specs.pdf'},
    'Ecophysics CLD700AL':   {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':'1.0',  'documented_upper_limit_of_detection':{'NO':'100000.0','NO2':'1000.0','NOx':'1000.0'}, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,     'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'0.0',       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,          'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.7',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assume_reference', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Ecophysics_CLDAL700_specs.pdf'},
    'Ecophysics CLD770AL':   {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,                                          'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,     'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,      'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,          'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assume_reference', 'measuring_instrument_further_details':'No manual or specifications available but information is found about converter here:https://www.atmos-chem-phys-discuss.net/acp-2014-187/acpd-14-10135-2014.pdf', 'measuring_instrument_manual_name':np.NaN},
    'Ecotech EC9841T':       {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':'0.05', 'documented_upper_limit_of_detection':'2000.0',                                        'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.1/0.5%', 'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':'0.1/day',   'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/day',      'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.64',    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':'Converter information not given in Ecotech_EC9841T_Specs.pdf, but found online: https://books.google.es/books?id=PknpYLJjsgIC&pg=PT101&lpg=PT101&dq=ecotech+EC9841T+molybdenum&source=bl&ots=p34J8Jais1&sig=smuKt3IiSRlcdvCjufYUF1Wh2iQ&hl=en&sa=X&ved=0ahUKEwiSwNqUoefaAhVMORQKHX5kBrcQ6AEIKTAA#v=onepage&q=ecotech%20EC9841T%20molybdenum&f=false', 'measuring_instrument_manual_name':'Ecotech_EC9841T_Specs.pdf'},
    'Ecotech ML9841':        {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,                                          'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,     'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,      'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,          'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses chemiluminescence here, assume internal molybdenum converter:http://www.achd.net/air/publiccomment2017/ANP2018_final.pdf', 'measuring_instrument_manual_name':np.NaN, 'measuring_assumption':True},
    'Ecotech Serinus40':     {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':'0.4',  'documented_upper_limit_of_detection':'20000.0',                                       'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.4/0.5%', 'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'0.4/day',   'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/7days',    'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.3',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Ecotech_Serinus40_Manual.pdf'},
    'Environnement SA AC31M':{'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':'0.35', 'documented_upper_limit_of_detection':'10000.0',                                       'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,     'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'1.0/week',  'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/day',      'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.6',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'EnvironnementSA_AC31M_Specs.pdf'},
    'Environnement SA AC32M':{'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':'0.4',  'documented_upper_limit_of_detection':'50000.0',                                       'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.0%',     'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'1.0/day',   'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/7days',    'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.66',    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'EnvironnementSA_AC32M_Manual.pdf'},
    'Horiba APNA360':        {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':'0.5',  'documented_upper_limit_of_detection':'10000.0',                                       'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.0%',     'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'0.5/day',   'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5/day',       'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.8',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Horiba_APMA360_Manual.pdf'},
    'Horiba APNA370':        {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':'0.5',  'documented_upper_limit_of_detection':'10000.0',                                       'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.0%',     'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'0.5/day',   'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5/day',       'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.8',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Horiba_APMA370_Manual.pdf'},
    'Meloy NA530R':          {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,                                          'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,     'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,      'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,          'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses chemiluminescence here, assume internal molybdenum converter: https://books.google.es/books?id=yCDGFlP3toUC&pg=PA248&lpg=PA248&dq=MELOY+NA530R&source=bl&ots=-uI9Lv61Zl&sig=Av_D54Gtv1qh8qVrAa4qLde7_cw&hl=en&sa=X&ved=0ahUKEwjg1q2-8uvaAhUGhiwKHcCxAFYQ6AEIKzAB#v=onepage&q=MELOY%20NA530R&f=false', 'measuring_instrument_manual_name':np.NaN, 'measuring_assumption':True},
    'Philips PW9762/02':     {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,                                          'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,     'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,      'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,          'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses chemiluminescence here, assume internal molybdenum converter: https://books.google.es/books?id=T5B9CAAAQBAJ&pg=PA415&lpg=PA415&dq=Philips+PW9762/02&source=bl&ots=cPN-nS_ZqB&sig=hPPtzoZLDIjgkvnmuhNb8mB0AC8&hl=en&sa=X&ved=0ahUKEwj0it6zuqzbAhUMCMAKHdI-AikQ6AEIKzAB#v=onepage&q=Philips%20PW9762%2F02&f=false', 'measuring_instrument_manual_name':np.NaN, 'measuring_assumption':True},
    'Seres 2000G':           {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':'1.0',  'documented_upper_limit_of_detection':'20000.0',                                       'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,     'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'1.0%/week', 'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/week',     'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.5',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Seres_2000G_Specs.pdf'},
    'SIR S-5012':            {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,                                          'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,     'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,      'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,          'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':'Converter information not given in a manual or specs, but found online: http://www.ecomission.co.za/products/model_s_5012.htm', 'measuring_instrument_manual_name':np.NaN},
    'Teledyne 200A':         {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':'0.4',  'documented_upper_limit_of_detection':'20000.0',                                       'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5%',     'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'0.5/day',   'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%/7days',    'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.5',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Teledyne_200A_Manual.pdf'},
    'Teledyne 200E':         {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':'0.4',  'documented_upper_limit_of_detection':'20000.0',                                       'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5%',     'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'0.5/day',   'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%/7days',    'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.5',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Teledyne_200E_Manual.pdf'},
    'Teledyne 200EU':        {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':'0.05', 'documented_upper_limit_of_detection':'2000.0',                                        'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5%>=50', 'reported_precision':np.NaN, 'documented_accuracy':'1.0%/0.1', 'reported_accuracy':np.NaN, 'documented_zero_drift':'0.1/day',   'reported_zero_drift':np.NaN, 'documented_span_drift':'0.05/0.5%/day', 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.0',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Teledyne_200EU_addendum.pdf'}, 
    'Teledyne 265E':         {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'],             'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'0.3',  'documented_upper_limit_of_detection':'2000.0',                                        'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5%',     'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'0.5',       'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%',          'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.5',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Teledyne_265E_Addendum.pdf'},
    'Teledyne 8440E':        {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,                                          'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,     'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,      'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,          'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':'No manual or specifications available but information is found about converter here: https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=21&ved=0ahUKEwjLg9-In-raAhXFshQKHdzgBfE4FBAWCCgwAA&url=https%3A%2F%2Fnagoya.repo.nii.ac.jp%2F%3Faction%3Drepository_uri%26item_id%3D20273%26file_id%3D17%26file_no%3D1&usg=AOvVaw1jJ6Phm7rzGeqXxCppKjS7', 'measuring_instrument_manual_name':np.NaN},
    'Teledyne 8840':         {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':'1.0',  'documented_upper_limit_of_detection':'200.0',                                         'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,     'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,      'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,          'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':'No manual or specifications available but information is found about converter here: https://books.google.es/books?id=OFfsCAAAQBAJ&pg=PA40&lpg=PA40&dq=Monitor+Labs+8840&source=bl&ots=tm9D_6gJ-t&sig=bwhco8GlW_p1yft9aESRbijGUN0&hl=en&sa=X&ved=0ahUKEwjU7KravKzbAhUjB8AKHZRJC-YQ6AEIYDAJ#v=onepage&q=Monitor%20Labs%208840&f=false ; details about limit of detection:https://books.google.es/books?id=G0EYUql3_98C&pg=PA283&lpg=PA283&dq=thermo+43a&source=bl&ots=k2RUJXlAVJ&sig=yIxG08AoSyuqedtS6dp-O7O04X4&hl=en&sa=X&ved=0ahUKEwj17qqB3OfbAhVCVRQKHanFDlo4ChDoAQgoMAA#v=onepage&q=thermo%2043a&f=false', 'measuring_instrument_manual_name':np.NaN},
    'Teledyne 8841':         {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,                                          'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,     'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,      'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,          'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses chemiluminescence here, assume internal molybdenum converter:https://books.google.es/books?id=qmWXBwAAQBAJ&pg=PA88&lpg=PA88&dq=Monitor+Labs+8841&source=bl&ots=dBOJ1Rybm3&sig=VOhLyY-EPom-jDAcT7ST9qsQN7M&hl=en&sa=X&ved=0ahUKEwjB077wxKzbAhUjCMAKHXN_BE4Q6AEIVTAJ#v=onepage&q=Monitor%20Labs%208841&f=false', 'measuring_instrument_manual_name':np.NaN, 'measuring_assumption':True},
    'Teledyne T200':         {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':'0.4',  'documented_upper_limit_of_detection':'20000.0',                                       'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5%>=50', 'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'0.5/day',   'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%/day',      'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.5',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Teledyne_T200_Manual.pdf'},
    'Teledyne T204-NOx':     {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':'0.4',  'documented_upper_limit_of_detection':'20000.0',                                       'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5%>=50', 'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'0.5/day',   'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%/day',      'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.5',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Teledyne_T204_Manual.pdf'},
    'Teledyne T265':         {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['O3'],             'qa_accepted_parameters':['O3'], 'documented_lower_limit_of_detection':'0.3',  'documented_upper_limit_of_detection':'2000.0',                                        'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5%',     'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'0.5/day',   'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%/day',      'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.5',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Teledyne_T265_Addendum.pdf'},
    'Thermo 14B':            {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,                                          'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,     'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,      'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,          'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Thermo_14B_Operation.pdf'},
    'Thermo 14B/E':          {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,                                          'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,     'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,      'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,          'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Thermo_14B/E_Operation.pdf'},
    'Thermo 14D/E':          {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,                                          'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,     'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,      'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,          'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses chemiluminescence here, assume internal molybdenum converter:https://books.google.es/books?id=fXysxVKVzyQC&pg=PA137&lpg=PA137&dq=Thermo+14D/E&source=bl&ots=8ks5Vf7mrS&sig=r0-I08UWw6bVqUPPbIavs2GlIHk&hl=en&sa=X&ved=0ahUKEwiiot2juKzbAhXKKMAKHbE3D-AQ6AEINzAB#v=onepage&q=Thermo%2014D%2FE&f=false', 'measuring_instrument_manual_name':np.NaN, 'measuring_assumption':True},
    'Thermo 42':             {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,                                          'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,     'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,      'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,          'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':'cannot find any information. AQS states it as continuous for NO2 which is almost always chemiluminescence with internal molybdenum converter. Assume this.', 'measuring_instrument_manual_name':np.NaN, 'measuring_assumption':True},
    'Thermo 42C-TL':         {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':'0.05', 'documented_upper_limit_of_detection':'200.0',                                         'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,     'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'0.0',       'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/day',      'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.0',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Thermo_42C-TL_Manual.pdf'},
    'Thermo 42i':            {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':'0.4',  'documented_upper_limit_of_detection':'100000.0',                                      'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,     'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'0.4/day',   'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/day',      'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.6-0.8', 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Thermo_42i_Manual.pdf'},
    'Thermo 42i-LS':         {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':'10.0', 'documented_upper_limit_of_detection':'500000.0',                                      'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,     'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'5.0/day',   'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/day',      'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.025',   'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Thermo_42i-LS_Manual.pdf'},
    'Thermo 42i-TL':         {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':'0.05', 'documented_upper_limit_of_detection':'200.0',                                         'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,     'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'0.0',       'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/day',      'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.0',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'reference',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Thermo_42i-TL_Manual.pdf'},
    'Thermo 42S':            {'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,                                          'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,     'reported_precision':np.NaN, 'documented_accuracy':np.NaN,     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,      'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,          'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assume_reference', 'measuring_instrument_further_details':'No manual or specifications available but information is found about converter here: https://agupubs.onlinelibrary.wiley.com/doi/pdf/10.1029/98JD01202', 'measuring_instrument_manual_name':np.NaN},
#---No specific instrument name
    'Chemiluminescence (internal molybdenum converter)':{'methodology':'chemiluminescence (internal molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx','O3'], 'qa_accepted_parameters':['NO','O3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assume_reference', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#chemiluminescence (external molybdenum converter)

#Chemiluminescence is the emission of light (luminescence), as the result of a chemical reaction. Chemiluminescence occurs as a result of the reaction of NO with ozone (NO+O3 --> NO2*+O2).
#The return to a fundamental electronic state of the excited NO2* molecules is made by luminous radiation in a 600-3000 nm spectrum (NO2* --> NO2 + hv), which can be measured.
#This method is designed specifically to directly measure NO (and NOy indirectly).
    
#Typical measurement operation for NO (and NOy indirectly)
#1. Sample air is drawn into the reaction cell via two separate (alternating) paths; the NO and NOy channels.
#2. NO in the first path (NO channel) reacts with ozone (from ozone generator) according to the following reaction: NO+O3 --> NO2*+O2.
#3. The excited NO2 molecules quickly returns to the ground state, releasing the excess energy. This release takes the form of a quantum of light (hv). The distribution of wavelengths for these quanta range between 600 and 3000 nm, with a peak at about 1200 nm (NO2* --> NO2 +hv (1200nm))
#4. Luminescence from the reaction is detected using a photomultiplier tube (PMT). Photons enter the PMT and strike a negatively charged photo cathode causing it to emit electrons. These electrons are accelerated by an applied high voltage and multiplied through a sequence of similar acceleration steps (dynodes) until a useable current signal is generated. The more light present (in this case photons given off by the chemiluminescent reaction described above), the more current is produced. Therefore the more NO present in the reaction cell the more current is produced by the PMT.
#5. Before entering the PMT, light is passed through a high-pass optical filter only transparent to wavelengths of light above 645nm. The narrowness of this band of sensitivity allows avoids the potential of extraneous light and radiation that might interfere with the measurement (e.g. some oxides of sulfur can also be chemiluminescent emitters when in contact with O3 but give off light at much shorter wavelengths (usually around 260nm to 480nm)).
#6. All things being constant (temperature, pressure, amount of ozone present, etc.), the relationship between the amount of NO present in the reaction cell and the amount of light emitted from the reaction is very linear. If more NO is present, more IR light is produced. 
#7. In addition, sometimes the excited NO2 collides with other gaseous molecules in the reaction cell chamber or even the molecules of the reaction cell walls and transfers its excess energy to this collision partner (represented by M) without emitting any light at all. In fact, by far the largest portion of the excited NO2 returns to the ground state this way, leaving only a few percent yield of usable chemiluminescence (NO2* + M --> NO2 + M). The probability of a collision between the NO2* molecule and a collision partner M increases proportionally with the reaction cell pressure. This non-radiating collision with the NO2* molecules is usually referred to as third body quenching. Even under the best conditions only about 20% of the NO2 that is formed by the key chemiluminescence reaction is in the excited state. In order to maximize chemiluminescence, the reaction cell is maintained at reduced pressure (thereby reducing the amount of available collision partners) and is supplied with a large, constant excess of ozone (about 3000-5000 ppm) from the internal ozone generator.
#8. The second path (NOy channel) before entering the instrument enters an externally mounted heated molybdenum converter (at 315degC), with less than 10cm tubing between the converter and sample entry. The heated molybdenum reacts with NOy in the sample gas and produces a NO gas and a variety of molybdenum (3NOy + Mo --> 3NO + MoO3 (at 315degC)). Minimising the transit time and surface contact area between the sample inlet and converter enables the conversion of labile components of NOy.
#9. Once the NOy in the sample gas has been converted to NO, it is routed to the reaction cell where it undergoes the chemiluminescence reaction and is measured by the PMT.
#10. By converting the NOy in the sample gas into NO, the analyser indirectly measures total NOy content of the sample gas (i.e. the NO present + the converted NO2 present). 
#11. By switching the sample gas stream in and out of the molybdenum converter every 6 - 10 seconds, the analyser is able to quasi-continuously measure both the NO and the total NOy content.

#Known interferences: Water vapour (above 20 ppmv), 3rd body quenching (CO2, SOx), other species undergoing chemiluminescence with O3 (SOx).

    'Ecotech EC9843':    {'methodology':'chemiluminescence (external molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NOy'], 'qa_accepted_parameters':['NO','NOy'], 'documented_lower_limit_of_detection':'0.05', 'documented_upper_limit_of_detection':'2000.0', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.05/0.5%', 'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'0.1/day', 'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/day',      'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.64', 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'no_reference', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Ecotech_EC9843_Specs.pdf, Ecotech_EC9843_Manual.pdf'},
    'Teledyne 200EU-NOy':{'methodology':'chemiluminescence (external molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NOy'], 'qa_accepted_parameters':['NO','NOy'], 'documented_lower_limit_of_detection':'0.05', 'documented_upper_limit_of_detection':'2000.0', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5%>=50',  'reported_precision':np.NaN, 'documented_accuracy':'1.0%/0.1', 'reported_accuracy':np.NaN, 'documented_zero_drift':'0.1/day', 'reported_zero_drift':np.NaN, 'documented_span_drift':'0.05/0.5%/day', 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.0',  'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'no_reference', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Teledyne_200EU-NOy_addendum.pdf'},
    'Thermo 42C-NOy':    {'methodology':'chemiluminescence (external molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NOy'], 'qa_accepted_parameters':['NO','NOy'], 'documented_lower_limit_of_detection':'0.05', 'documented_upper_limit_of_detection':'200.0',  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'0.0',     'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/day',      'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.0',  'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'no_reference', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Thermo_42C-NOy_Manual.pdf'},
    'Thermo 42i-NOy':    {'methodology':'chemiluminescence (external molybdenum converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NOy'], 'qa_accepted_parameters':['NO','NOy'], 'documented_lower_limit_of_detection':'0.05', 'documented_upper_limit_of_detection':'1000.0', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'0.0',     'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/day',      'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.0',  'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'no_reference', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Thermo_42i-NOy_Manual.pdf'},
#---No specific instrument name
    'Chemiluminescence (external molybdenum converter)':{'methodology':'chemiluminescence (external molybdenum converter)', 'measuring_instrument_sampling':'continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NOy'], 'qa_accepted_parameters':['NO','NOy'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'no_reference', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#chemiluminescence (internal photolytic converter)

#Chemiluminescence is the emission of light (luminescence), as the result of a chemical reaction. Chemiluminescence occurs as a result of the reaction of NO with ozone (NO+O3 --> NO2*+O2).
#The return to a fundamental electronic state of the excited NO2* molecules is made by luminous radiation in a 600-3000 nm spectrum (NO2* --> NO2 + hv), which can be measured.
#This method is designed specifically to directly measure NO (and NOx/NO2 indirectly). 
    
#Typical measurement operation for NO (and NOx/NO2 indirectly):
#1. Sample air is drawn into the reaction cell via two separate (alternating) paths; the NO and NOx channels.
#2. NO in the first path (NO channel) reacts with ozone (from ozone generator) according to the following reaction: NO+O3 --> NO2*+O2.
#3. The excited NO2 molecules quickly returns to the ground state, releasing the excess energy. This release takes the form of a quantum of light (hv). The distribution of wavelengths for these quanta range between 600 and 3000 nm, with a peak at about 1200 nm (NO2* --> NO2 +hv (1200nm))
#4. Luminescence from the reaction is detected using a photomultiplier tube (PMT). Photons enter the PMT and strike a negatively charged photo cathode causing it to emit electrons. These electrons are accelerated by an applied high voltage and multiplied through a sequence of similar acceleration steps (dynodes) until a useable current signal is generated. The more light present (in this case photons given off by the chemiluminescent reaction described above), the more current is produced. Therefore the more NO present in the reaction cell the more current is produced by the PMT.
#5. Before entering the PMT, light is passed through a high-pass optical filter only transparent to wavelengths of light above 645nm. The narrowness of this band of sensitivity allows avoids the potential of extraneous light and radiation that might interfere with the measurement (e.g. some oxides of sulfur can also be chemiluminescent emitters when in contact with O3 but give off light at much shorter wavelengths (usually around 260nm to 480nm)).
#6. All things being constant (temperature, pressure, amount of ozone present, etc.), the relationship between the amount of NO present in the reaction cell and the amount of light emitted from the reaction is very linear. If more NO is present, more IR light is produced. 
#7. In addition, sometimes the excited NO2 collides with other gaseous molecules in the reaction cell chamber or even the molecules of the reaction cell walls and transfers its excess energy to this collision partner (represented by M) without emitting any light at all. In fact, by far the largest portion of the excited NO2 returns to the ground state this way, leaving only a few percent yield of usable chemiluminescence (NO2* + M --> NO2 + M). The probability of a collision between the NO2* molecule and a collision partner M increases proportionally with the reaction cell pressure. This non-radiating collision with the NO2* molecules is usually referred to as third body quenching. Even under the best conditions only about 20% of the NO2 that is formed by the key chemiluminescence reaction is in the excited state. In order to maximize chemiluminescence, the reaction cell is maintained at reduced pressure (thereby reducing the amount of available collision partners) and is supplied with a large, constant excess of ozone (about 3000-5000 ppm) from the internal ozone generator.
#8. The second path (NOx channel) travels through a delay loop and a photolytic converter. As the sample gas passes through the converter chamber it is exposed to blue light at specific wavelengths (350-420 nm) from a photolytic light source (blue LEDs, metal halide). This selectively converts NO2 to NO with negligible radiant heating or interference from other gases (NO2 +hv (350-420nm) --> NO + O).
#9. Once the NO2 in the sample gas has been converted to NO, it is routed to the reaction cell where it undergoes the chemiluminescence reaction and is measured by the PMT.
#10. By converting the NO2 in the sample gas into NO, the analyser indirectly measures total NOx content of the sample gas (i.e. the NO present + the converted NO2 present). 
#11. By switching the sample gas stream in and out of the photolytic converter every 6 - 10 seconds, the analyser is able to quasi-continuously measure both the NO and the total NOx content.
#12. The NO2 concentration is not directly measured but calculated by subtracting the known NO content of the sample gas from the known NOx content.

#Known interferences: Water vapour (above 20 ppmv), 3rd body quenching (CO2, SOx), thermal decomposition of PAN to NO2 within the photolysis cell

    'Ecophysics CraNOx':{'methodology':'chemiluminescence (internal photolytic converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO','NO2','NOx'], 'documented_lower_limit_of_detection':'0.025',                               'documented_upper_limit_of_detection':'1000.0', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,     'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,    'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,     'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'2.7', 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assumed_equivalent', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Ecophysics_CraNOx_Specs.pdf'},
    'Teledyne T200P':   {'methodology':'chemiluminescence (internal photolytic converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO','NO2','NOx'], 'documented_lower_limit_of_detection':'0.4',                                 'documented_upper_limit_of_detection':'4000.0', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5%>=50', 'reported_precision':np.NaN, 'documented_accuracy':'1.0%',     'reported_accuracy':np.NaN, 'documented_zero_drift':'0.5/day', 'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%/day', 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.5', 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Teledyne_T200P_Manual.pdf'},
    'Teledyne T200UP':  {'methodology':'chemiluminescence (internal photolytic converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO','NO2','NOx'], 'documented_lower_limit_of_detection':{'NO':'0.05','NO2':'0.1','NOx':'0.1'}, 'documented_upper_limit_of_detection':'2000.0', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5%>=5',  'reported_precision':np.NaN, 'documented_accuracy':'1.0%/0.1', 'reported_accuracy':np.NaN, 'documented_zero_drift':'0.1/day', 'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%/day', 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.1', 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Teledyne_T200UP_addendum.pdf'},
#---No specific instrument name
    'Chemiluminescence (internal photolytic converter)':{'methodology':'chemiluminescence (internal photolytic converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO','NO2','NOx'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assumed_equivalent', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#chemiluminescence (internal molybdenum and quartz converters)

#Chemiluminescence is the emission of light (luminescence), as the result of a chemical reaction. Chemiluminescence occurs as a result of the reaction of NO with ozone (NO+O3 --> NO2*+O2).
#The return to a fundamental electronic state of the excited NO2* molecules is made by luminous radiation in a 600-3000 nm spectrum (NO2* --> NO2 + hv), which can be measured.
#This method is designed specifically to directly measure NO (and NH3/NOx/NO2 indirectly). 

#Typical measurement operation for NO (and NH3/NOx/NO2 indirectly)
#1. Sample air is drawn into the reaction cell via three separate (alternating) paths; the NO, TNx and NOx channels.
#2. NO in the first path (NO channel) reacts with ozone (from ozone generator) according to the following reaction: NO+O3 --> NO2*+O2.
#3. The excited NO2 molecules quickly returns to the ground state, releasing the excess energy. This release takes the form of a quantum of light (hv). The distribution of wavelengths for these quanta range between 600 and 3000 nm, with a peak at about 1200 nm (NO2* --> NO2 +hv (1200nm))
#4. Luminescence from the reaction is detected using a photomultiplier tube (PMT). Photons enter the PMT and strike a negatively charged photo cathode causing it to emit electrons. These electrons are accelerated by an applied high voltage and multiplied through a sequence of similar acceleration steps (dynodes) until a useable current signal is generated. The more light present (in this case photons given off by the chemiluminescent reaction described above), the more current is produced. Therefore the more NO present in the reaction cell the more current is produced by the PMT.
#5. Before entering the PMT, light is passed through a high-pass optical filter only transparent to wavelengths of light above 645nm. The narrowness of this band of sensitivity allows avoids the potential of extraneous light and radiation that might interfere with the measurement (e.g. some oxides of sulfur can also be chemiluminescent emitters when in contact with O3 but give off light at much shorter wavelengths (usually around 260nm to 480nm)).
#6. All things being constant (temperature, pressure, amount of ozone present, etc.), the relationship between the amount of NO present in the reaction cell and the amount of light emitted from the reaction is very linear. If more NO is present, more IR light is produced. 
#7. In addition, sometimes the excited NO2 collides with other gaseous molecules in the reaction cell chamber or even the molecules of the reaction cell walls and transfers its excess energy to this collision partner (represented by M) without emitting any light at all. In fact, by far the largest portion of the excited NO2 returns to the ground state this way, leaving only a few percent yield of usable chemiluminescence (NO2* + M --> NO2 + M). The probability of a collision between the NO2* molecule and a collision partner M increases proportionally with the reaction cell pressure. This non-radiating collision with the NO2* molecules is usually referred to as third body quenching. Even under the best conditions only about 20% of the NO2 that is formed by the key chemiluminescence reaction is in the excited state. In order to maximize chemiluminescence, the reaction cell is maintained at reduced pressure (thereby reducing the amount of available collision partners) and is supplied with a large, constant excess of ozone (about 3000-5000 ppm) from the internal ozone generator.
#8. In the second path (TNx channel), sample air is passed through an internal heated quartz converter (at 750 degC). The heated quartz reacts with NH3 and NO2 in the sample gas and produces a NO gas (4NH3 + 5O2 --> 4NO + 6H2O).
#9. Once the NO2 and NH3 in the sample gas has been converted to NO, it is routed to the reaction cell where it undergoes the chemiluminescence reaction and is measured by the PMT.
#10. By converting the NO2 and NH3 in the sample gas into NO, the analyser indirectly measures total TNx content of the sample gas. 
#11. The third path (NOx channel) travels through a delay loop and a heated molybdenum converter (at 315degC). The heated molybdenum reacts with NO2 in the sample gas and produces a NO gas and a variety of molybdenum. (xNO2 + yMo --> xNO + MyOz (at 315degC)).
#12. Once the NO2 in the sample gas has been converted to NO, it is routed to the reaction cell where it undergoes the chemiluminescence reaction and is measured by the PMT.
#13. By converting the NO2 in the sample gas into NO, the analyser measures total NOx content of the sample gas (i.e. the NO present + the converted NO2 present). 
#14. By switching the sample gas stream between the 3 streams frequently, the analyser is able to quasi-continuously measure both the NO, the total NOx content and TNx.
#15. NO2 is indirectly calculated by subtracting the known NO content of the sample gas from the known NOx content.
#16. NH3 is indirectly calculated by subtracting the known NOx content of the sample gas from the known TNx content.

#Known interferences: Water vapour (above 20 ppmv), 3rd body quenching (CO2, SOx), other NOy species converted to NO by molybdenum converter (PAN, ethyl nitrate, ethyl nitrite, HONO, HNO3, methyl nitrate, n-propyl nitrate, n-butyl nitrate, nitrocresol, NH3), other species undergoing chemiluminescence with O3 (SOx).

#Not accepted QA type for NO/NOx due to bias in measuring NO2, due to molybdenum converters.

    'Ecotech EC9842': {'methodology':'chemiluminescence (internal molybdenum and quartz converters)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NH3','NO','NO2','NOx'], 'qa_accepted_parameters':['NH3','NO'], 'documented_lower_limit_of_detection':'0.5', 'documented_upper_limit_of_detection':'2000.0', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5%', 'reported_precision':np.NaN, 'documented_accuracy':'1.0%', 'reported_accuracy':np.NaN, 'documented_zero_drift':'1.0/day', 'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%/day', 'reported_span_drift':np.NaN, 'documented_resolution':'0.1',  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.000355', 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'no_reference', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Ecotech_EC9842_Specs.pdf'},
    'Ecotech EC9842T':{'methodology':'chemiluminescence (internal molybdenum and quartz converters)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NH3','NO','NO2','NOx'], 'qa_accepted_parameters':['NH3','NO'], 'documented_lower_limit_of_detection':'0.4', 'documented_upper_limit_of_detection':np.NaN,   'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'2.0%', 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':'0.1/day', 'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/day', 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'no_reference', 'measuring_instrument_further_details':'Details found online:http://aep.alberta.ca/air/legislation-and-policy/air-monitoring-directive/documents/AmbientAirMonitoringSpecifications-Sep2014.pdf', 'measuring_instrument_manual_name':np.NaN},
#---No specific instrument name
    'Chemiluminescence (internal molybdenum and quartz converters)':{'methodology':'chemiluminescence (internal molybdenum and quartz converters)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NH3','NO','NO2','NOx'], 'qa_accepted_parameters':['NH3','NO'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_stability':np.NaN, 'reported_stability':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'no_reference', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#chemiluminescence (internal molybdenum converter and external stainless steel converter)

#Chemiluminescence is the emission of light (luminescence), as the result of a chemical reaction. Chemiluminescence occurs as a result of the reaction of NO with ozone (NO+O3 --> NO2*+O2).
#The return to a fundamental electronic state of the excited NO2* molecules is made by luminous radiation in a 600-3000 nm spectrum (NO2* --> NO2 + hv), which can be measured.
#This method is designed specifically to directly measure NO (and NH3/NOx/NO2 indirectly). 
    
#Typical measurement operation for NO (and NH3/NOx/NO2 indirectly)
#1. Sample air is drawn into the reaction cell via three separate (alternating) paths; the NO, TNx and NOx channels.
#2. NO in the first path (NO channel) reacts with ozone (from ozone generator) according to the following reaction: NO+O3 --> NO2*+O2.
#3. The excited NO2 molecules quickly returns to the ground state, releasing the excess energy. This release takes the form of a quantum of light (hv). The distribution of wavelengths for these quanta range between 600 and 3000 nm, with a peak at about 1200 nm (NO2* --> NO2 +hv (1200nm))
#4. Luminescence from the reaction is detected using a photomultiplier tube (PMT). Photons enter the PMT and strike a negatively charged photo cathode causing it to emit electrons. These electrons are accelerated by an applied high voltage and multiplied through a sequence of similar acceleration steps (dynodes) until a useable current signal is generated. The more light present (in this case photons given off by the chemiluminescent reaction described above), the more current is produced. Therefore the more NO present in the reaction cell the more current is produced by the PMT.
#5. Before entering the PMT, light is passed through a high-pass optical filter only transparent to wavelengths of light above 645nm. The narrowness of this band of sensitivity allows avoids the potential of extraneous light and radiation that might interfere with the measurement (e.g. some oxides of sulfur can also be chemiluminescent emitters when in contact with O3 but give off light at much shorter wavelengths (usually around 260nm to 480nm)).
#6. All things being constant (temperature, pressure, amount of ozone present, etc.), the relationship between the amount of NO present in the reaction cell and the amount of light emitted from the reaction is very linear. If more NO is present, more IR light is produced. 
#7. In addition, sometimes the excited NO2 collides with other gaseous molecules in the reaction cell chamber or even the molecules of the reaction cell walls and transfers its excess energy to this collision partner (represented by M) without emitting any light at all. In fact, by far the largest portion of the excited NO2 returns to the ground state this way, leaving only a few percent yield of usable chemiluminescence (NO2* + M --> NO2 + M). The probability of a collision between the NO2* molecule and a collision partner M increases proportionally with the reaction cell pressure. This non-radiating collision with the NO2* molecules is usually referred to as third body quenching. Even under the best conditions only about 20% of the NO2 that is formed by the key chemiluminescence reaction is in the excited state. In order to maximize chemiluminescence, the reaction cell is maintained at reduced pressure (thereby reducing the amount of available collision partners) and is supplied with a large, constant excess of ozone (about 3000-5000 ppm) from the internal ozone generator.
#8. In the second path (TNx channel), sample air is first drawn through an externally mounted heated stainless steel converter (at 750 degC). The heated stainless steel reacts with NH3 and NO2 in the sample gas and produces a NO gas (4NH3 + 5O2 --> 4NO + 6H2O).
#9. Once the NO2 and NH3 in the sample gas has been converted to NO, it is routed to the reaction cell where it undergoes the chemiluminescence reaction and is measured by the PMT.
#10. By converting the NO2 and NH3 in the sample gas into NO, the analyser indirectly measures total TNx content of the sample gas. 
#11. The third path (NOx channel) travels through a delay loop and a heated molybdenum converter (at 315degC). The heated molybdenum reacts with NO2 in the sample gas and produces a NO gas and a variety of molybdenum. (xNO2 + yMo --> xNO + MyOz (at 315degC)).
#12. Once the NO2 in the sample gas has been converted to NO, it is routed to the reaction cell where it undergoes the chemiluminescence reaction and is measured by the PMT.
#13. By converting the NO2 in the sample gas into NO, the analyser measures total NOx content of the sample gas (i.e. the NO present + the converted NO2 present). 
#14. By switching the sample gas stream between the 3 streams frequently, the analyser is able to quasi-continuously measure both the NO, the total NOx content and TNx.
#15. NO2 is indirectly calculated by subtracting the known NO content of the sample gas from the known NOx content.
#16. NH3 is indirectly calculated by subtracting the known NOx content of the sample gas from the known TNx content.

#Known interferences: Water vapour (above 20 ppmv), 3rd body quenching (CO2, SOx), other NOy species converted to NO by molybdenum converter (PAN, ethyl nitrate, ethyl nitrite, HONO, HNO3, methyl nitrate, n-propyl nitrate, n-butyl nitrate, nitrocresol, NH3), other species undergoing chemiluminescence with O3 (SOx).

#Not accepted QA type for NO/NOx due to bias in measuring NO2, due to molybdenum converters.

    'Teledyne 201E':  {'methodology':'chemiluminescence (internal molybdenum converter and external stainless steel converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NH3','NO','NO2','NOx'], 'qa_accepted_parameters':['NH3','NO'], 'documented_lower_limit_of_detection':'1.0',  'documented_upper_limit_of_detection':'2000.0',   'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':{'NH3':'2.0%','NO':'1.0%','NO2':'1.0%','NOx':'1.0%'}, 'reported_accuracy':np.NaN, 'documented_zero_drift':'2.0/day', 'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/day', 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.5-1.0', 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'no_reference', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Teledyne_201E_Manual.pdf'},
    'Thermo 17C':     {'methodology':'chemiluminescence (internal molybdenum converter and external stainless steel converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NH3','NO','NO2','NOx'], 'qa_accepted_parameters':['NH3','NO'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN,     'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN,                                               'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,    'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,     'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'no_reference', 'measuring_instrument_further_details':'Converter information found here:https://archive.epa.gov/nrmrl/archive-etv/web/pdf/01_vs_thermo.pdf', 'measuring_instrument_manual_name':np.NaN},
    'Thermo 17i':     {'methodology':'chemiluminescence (internal molybdenum converter and external stainless steel converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NH3','NO','NO2','NOx'], 'qa_accepted_parameters':['NH3','NO'], 'documented_lower_limit_of_detection':'1.0',  'documented_upper_limit_of_detection':'100000.0', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':'1.0%',                                               'reported_accuracy':np.NaN, 'documented_zero_drift':'1.0/day', 'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/day', 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.6',     'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'no_reference', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Thermo_17i_Manual.pdf'},
#---No specific instrument name
    'Chemiluminescence (internal molybdenum converter and external stainless steel converter)':{'methodology':'chemiluminescence (internal molybdenum converter and external stainless steel converter)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NH3','NO','NO2','NOx'], 'qa_accepted_parameters':['NH3','NO'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'no_reference', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#sulphur chemiluminescence - gas chromatography

#Chemiluminescence is the emission of light (luminescence), as the result of a chemical reaction. Chemiluminescence occurs as a result of the reaction of SO and ozone (SO+O3 --> SO2*+O2).
#The return to a fundamental electronic state of the excited SO2* molecules is made by luminous radiation in a specific spectrum (SO2* --> SO2 + hv), which can be measured (by a photomultiplier tube).
#The concentration of sample total sulphur is directly proportional to the intensity of light emitted.
#This method can be mixed with gas chromatography (GC) to allow to determination of specific sulphur compounds (i.e. SO2).
#The gas sample is passed through a GC column before being ultimately measured by the photomultiplier detector.

#Gas chromatography (GC) is a method used for separating and analysing compounds that can be vaporized without decomposition.
#A sample solution is injected into a instrument, entering a gas stream which transports the sample (mobile phase) into a separation tube known as the "column".
#The mobile phase is a carrier gas, usually an inert gas such as helium or an unreactive gas such as nitrogen. Helium remains the most commonly used carrier gas in about 90% of instruments although hydrogen is preferred for improved separations.
#The column consists of a microscopic layer of liquid or polymer on an inert solid support a microscopic layer of liquid or polymer on an inert solid support (stationary phase), inside a piece of glass or metal tubing, placed inside a piece of glass or metal tubing.
#Once inside the column, the gaseous compounds being analysed interact with the walls of the column coated with a stationary phase. This causes each compound to elute at a different time, known as the retention time of the compound. 
#The comparison of retention times is what gives GC its analytical usefulness.
#If greater separation of compounds is required, multiple distinct columns can be used for this purpose.

#---No specific instrument name
    'Sulphur Chemiluminescence - Gas Chromatography':{'methodology':'sulphur chemiluminescence - gas chromatography', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'not_equivalent', 'measuring_instrument_further_details':'See reference for SO2:http://www.nrcresearchpress.com/doi/pdf/10.1139/v84-073, http://www.interline.nl/media/1000035/specifiekzwavelchromatograph.pdf', 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#flame photometric detection (FPD)

#Many elements give characteristic emission when burned in flame. Absorption of energy from the flame allows a ground state atom or molecule to reach an excited state. 
#The atom/molecule may return to the ground state through emission of light (luminescence), which can be subsequently measured (by a photomultiplier tube). This process is a chemiluminescent process (where luminescence occurs as the result of a chemical reaction).
#The concentration of the sample gas is directly proportional to the intensity of light emitted.
#This method has been applied for the measurement of sulphur containing species (i.e. SO2).
#For specific measurement of solely SO2, the sample gas must be scrubbed of other sulphur species prior to measurement, and the photomultiplier detector measures emission centred near 394nm.

#Known interferences: Other sulphur compounds

    'Bendix 8303':   {'methodology':'flame photometric detection', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent', 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses flame photometric detection here:https://books.google.es/books?id=yCDGFlP3toUC&pg=PA249&lpg=PA249&dq=monitor+labs+8450&source=bl&ots=-uIdNzc1_l&sig=LqRK0OiodCMg5Sow1wlXQgIVLx0&hl=en&sa=X&ved=0ahUKEwjCy8eNvOfbAhVBuhQKHZTJBUoQ6AEIWDAG#v=onepage&q=monitor%20labs%208450&f=false', 'measuring_instrument_manual_name':np.NaN},
    'Meloy SA185-2A':{'methodology':'flame photometric detection', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent', 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses flame photometric detection here:https://books.google.es/books?id=yCDGFlP3toUC&pg=PA249&lpg=PA249&dq=monitor+labs+8450&source=bl&ots=-uIdNzc1_l&sig=LqRK0OiodCMg5Sow1wlXQgIVLx0&hl=en&sa=X&ved=0ahUKEwjCy8eNvOfbAhVBuhQKHZTJBUoQ6AEIWDAG#v=onepage&q=monitor%20labs%208450&f=false', 'measuring_instrument_manual_name':np.NaN},
    'Meloy SA285E':  {'methodology':'flame photometric detection', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent', 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses flame photometric detection here:https://books.google.es/books?id=yCDGFlP3toUC&pg=PA249&lpg=PA249&dq=monitor+labs+8450&source=bl&ots=-uIdNzc1_l&sig=LqRK0OiodCMg5Sow1wlXQgIVLx0&hl=en&sa=X&ved=0ahUKEwjCy8eNvOfbAhVBuhQKHZTJBUoQ6AEIWDAG#v=onepage&q=monitor%20labs%208450&f=false', 'measuring_instrument_manual_name':np.NaN},
    'Teledyne 8450': {'methodology':'flame photometric detection', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent', 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses flame photometric detection here:https://books.google.es/books?id=yCDGFlP3toUC&pg=PA249&lpg=PA249&dq=monitor+labs+8450&source=bl&ots=-uIdNzc1_l&sig=LqRK0OiodCMg5Sow1wlXQgIVLx0&hl=en&sa=X&ved=0ahUKEwjCy8eNvOfbAhVBuhQKHZTJBUoQ6AEIWDAG#v=onepage&q=monitor%20labs%208450&f=false', 'measuring_instrument_manual_name':np.NaN},
#---No specific instrument name
    'Flame Photometric Detection':{'methodology':'flame photometric detection', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assumed_equivalent', 'measuring_instrument_further_details':'Details for SO2:https://nepis.epa.gov/Exe/ZyNET.exe/9101A5EI.txt?ZyActionD=ZyDocument&Client=EPA&Index=1976%20Thru%201980&Docs=&Query=&Time=&EndTime=&SearchMethod=1&TocRestrict=n&Toc=&TocEntry=&QField=&QFieldYear=&QFieldMonth=&QFieldDay=&UseQField=&IntQFieldOp=0&ExtQFieldOp=0&XmlQuery=&File=D%3A%5CZYFILES%5CINDEX%20DATA%5C76THRU80%5CTXT%5C00000026%5C9101A5EI.txt&User=ANONYMOUS&Password=anonymous&SortMethod=h%7C-&MaximumDocuments=1&FuzzyDegree=0&ImageQuality=r75g8/r75g8/x150y150g16/i425&Display=hpfr&DefSeekPage=x&SearchBack=ZyActionL&Back=ZyActionS&BackDesc=Results%20page&MaximumPages=1&ZyEntry=22', 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#flame ionisation detection (FID)

#This method is based on the principle of the generation of an electrical current that is proportional to the rate of ion formation, dependent on the concentrations of species in the sample gas.
#The method is typically the standard detection method for hydrocarbons, however the method is also sensitive to almost all compounds, mostly combustible ones. 
#There are, however, a few compounds to which the method has very little, if any, sensitivity, including: O2, N2, SO2, NO, N2O, NO2, NH3, CO, CO2, and H2O.

#Typical measurement operation for hydrocarbons:
#1. The sample gas is introduced into a hydrogen flame inside the flame ionisation detector.
#2. Any hydrocarbons in the sample will produce ions when they are burnt. 
#3. Ions are detected using a metal collector which is biased with a high DC voltage. 
#4. The current across this collector is thus proportional to the rate of ionisation which in turn depends upon the concentration of hydrocarbons in the sample gas.

#Known interferences: Method is non-specific for different gases in the sample.

    'Flame Ionisation Detection':{'methodology':'flame ionisation detection', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':[], 'qa_accepted_parameters':[], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'no_reference', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#conductimetry

#Involves the absorption of a specific gas species in deionized water, to produce an acid, which can be detected by a conductivity cell.
#Through the use of the deionized water reagent, measurements are susceptible to interferences from CO2, salt aerosols, acid mists and basic gases. 
#Addition of hydrogen peroxide to the deionized water minimises interference (through reduced solubility of CO2 within the water).
#This method been used extensively to measure SO2.

#Known interferences: Any gas that can form or remove ions (NO2, NH3, HCl, Cl2 are the worst known interferants).

    'Asarco 500':{'methodology':'conductimetry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN,    'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',   'measuring_instrument_further_details':'cannot find any information. AQS states it as conductance. Assume conductimetry as detailed in general method reference below', 'measuring_instrument_manual_name':np.NaN, 'measuring_assumption':True},
    'ECN AMOR':  {'methodology':'conductimetry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':'Denuder', 'measured_parameters':['NH3'], 'qa_accepted_parameters':['NH3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'no_reference', 'measuring_instrument_further_details':'See reference here:https://www.sciencedirect.com/science/article/pii/096016869390280C', 'measuring_instrument_manual_name':np.NaN},
#---No specific instrument name
    'Conductimetry':{'methodology':'conductimetry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NH3','SO2'], 'qa_accepted_parameters':['NH3','SO2'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':{'NH3':'no_reference','SO2':'assumed_equivalent'}, 'measuring_instrument_further_details':'See reference for SO2:https://books.google.es/books?id=DiRevS__HUkC&pg=PA6&lpg=PA6&dq=SO2+conductimetric&source=bl&ots=wTME59BaGo&sig=D8wxHHP99GihBGlBJv1DXCUxcis&hl=en&sa=X&ved=0ahUKEwjmloGg7-fbAhXDzRQKHdtIAwAQ6AEIZjAH#v=onepage&q=SO2%20conductimetric&f=false', 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#second derivative spectroscopy

#Derivative spectroscopy involves plotting the first, second or higher order derivatives of a spectrum with respect to wavelength. 
#Usually this is obtained by a microprocessor connected in series with a spectrophotometer, which computes the derivative with respect to time as the spectrum is scanned at constant speed.
#The "true" wavelength derivative is linearly related to the time derivative recorded, the magnitude of which is directly affected by scanning speed and spectral band width.
#The derivative process provides two general advantages: first, an effective enhancement of resolution, which can be useful to separate two or more components with overlapping spectra; second, a discrimination in favour of the sharpest features of a spectrum, used to eliminate interferences by broad band constituents. However, this process results in a decrease in the signal to noise ratio.
#Both advantages and disadvantages increase with the derivative order. Generally, the second derivative is more useful than the first ones.

#Not QA accepted measurement techniques for NO or NO2 due to dominance of other more accurate techniques in measuring these species

    'Ecotech SM1000':                {'methodology':'second derivative spectroscopy', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'],                  'qa_accepted_parameters':['SO2'],       'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent', 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses second derivative spectroscopy here:https://books.google.es/books?id=yCDGFlP3toUC&pg=PA249&lpg=PA249&dq=monitor+labs+8450&source=bl&ots=-uIdNzc1_l&sig=LqRK0OiodCMg5Sow1wlXQgIVLx0&hl=en&sa=X&ved=0ahUKEwjCy8eNvOfbAhVBuhQKHZTJBUoQ6AEIWDAG#v=onepage&q=monitor%20labs%208450&f=false', 'measuring_instrument_manual_name':np.NaN},
#---No specific instrument name
    'Second Derivative Spectroscopy':{'methodology':'second derivative spectroscopy', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NH3','SO2'], 'qa_accepted_parameters':['NH3','SO2'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':{'NO':'not_equivalent','NO2':'not_equivalent','NH3':'no_reference','SO2':'assumed_equivalent'}, 'measuring_instrument_further_details':'See reference for NO,NO2,NH3,SO2:https://www.osapublishing.org/as/abstract.cfm?uri=as-53-11-1352', 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#coulometry    

#Measures the current necessary to maintain a low concentration of halide and halogen at equilibrium. 
#Typical coulometric methods use solutions of potassium bromide (halide) and bromine (halogen) in dilute sulphuric acid.  
#The concentration of bromine is measured as a voltage between an indicator electrode and a bromide reference electrode.
#When the measured species is present, the bromine concentration is decreased through reaction. A feedback system then compensates by generator bromine at a generator electrode.
#The current required to regenerate the bromine is directly proportional to the concentration of the measured species.
#The method is extremely sensitive to interference through reaction with other undesired species (typically NO, NO2, O3, sulphur species, Cl2).
#Other species are typically removed through pre-filters.
#This method been used to measure NO2 and SO2.

#Known interferences: Reaction with other gases, typically: NO, NO2, O3, sulphur species, Cl2.

#Not QA accepted measurement techniques for NO2 or NOx due to dominance of other more accurate techniques in measuring these species

    'Philips PW9700':{'methodology':'coulometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':'4.0',  'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent', 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses coulometry here, and gives detection limit:https://books.google.es/books?id=KGQyBwAAQBAJ&pg=PT423&lpg=PT423&dq=PHILIPS+PW9700&source=bl&ots=lbloftODx4&sig=uBDyugqVzVHAhH2K21mDH7q2wYc&hl=en&sa=X&ved=0ahUKEwjxgYGZwOfbAhWHORQKHWEiBCAQ6AEIMTAB#v=onepage&q=PHILIPS%20PW9700&f=false', 'measuring_instrument_manual_name':np.NaN},
    'Philips PW9755':{'methodology':'coulometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent', 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses coulometry here:https://books.google.es/books?id=yCDGFlP3toUC&pg=PA249&lpg=PA249&dq=monitor+labs+8450&source=bl&ots=-uIdNzc1_l&sig=LqRK0OiodCMg5Sow1wlXQgIVLx0&hl=en&sa=X&ved=0ahUKEwjCy8eNvOfbAhVBuhQKHZTJBUoQ6AEIWDAG#v=onepage&q=monitor%20labs%208450&f=false', 'measuring_instrument_manual_name':np.NaN},
#---No specific instrument name
    'Coulometry':{'methodology':'coulometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO2','NOx','SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':{'NO2':'not_equivalent','NOx':'not_equivalent','SO2':'assumed_equivalent'}, 'measuring_instrument_further_details':'See Reference for NO2: https://www.tandfonline.com/doi/pdf/10.1080/00022470.1962.10468113; See Reference for SO2: https://www.tandfonline.com/doi/pdf/10.1080/00022470.1968.10469104', 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#polarography

#An electrochemical technique where the cell current is measured as a function of time and as a function of the potential between the indicator and reference electrodes. 
#The working electrode is a dropping mercury (or other liquid conductor) electrode and unstirred solutions are used. 
#The potential is varied using pulses of linearly increasing amplitude (one pulse during each drop lifetime) and the current is sampled before and after each voltage pulse.

#Not QA accepted measurement techniques for NO or NO2 due to dominance of other more accurate techniques in measuring these species

#---No specific instrument name
    'Polarography':{'methodology':'polarography', 'measuring_instrument_sampling':'Injection', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','SO2'], 'qa_accepted_parameters':[], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':{'NO':'not_equivalent','NO2':'not_equivalent','SO2':'not_equivalent'}, 'measuring_instrument_further_details':'See Reference for NO, NO2 and SO2: https://www.sciencedirect.com/science/article/pii/0039914079800041', 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#ultraviolet fluorescence

#Fluorescence is the emission of light (luminescence) by a substance that has absorbed light or other electromagnetic radiation (excitation). In most cases, the emitted light has a longer wavelength, and therefore lower energy, than the absorbed radiation.
#Ultraviolet fluorescence specifically refers to the process of a species being excited by ultraviolet light (10nm to 400nm) (species + hv (UV) --> species*).
#The return to a fundamental electronic state of the excited species is made by luminous radiation on a longer wavelength spectrum (species* --> species + hv).
#SO2 is efficiently excited to an excited state (SO2*) by UV light between 190 nm-230 nm, subsequently fluorescing light at approximately 330nm (SO2* --> SO2 +hv(330nm)), which can be measured.

#Typical measurement operation for SO2:
#1. The sample is drawn into the sample bulkhead (typically the sample flows through a hydrocarbon “kicker,” which removes hydrocarbons from the sample by forcing the hydrocarbon molecules to permeate through the tube wall).
#2. The sample then flows into the measurement cell, where pulsating UV light from a light source (typically mercury or zinc vapour lamp) between 190nm-230nm excites the SO2 molecules by the reaction: SO2 + hv (190nm-230nm) --> SO2* . A vacuum diode, UV detector that converts UV light to a DC current is used to measure the intensity of the excitation UV source lamp.
#3. Typically a band pass filter limits the wavelength of the UV source light to approximately 214 nm, and therefore the excitation reaction becomes: SO2 + hv (214nm) --> SO2* 
#4. The amount SO2 converted to SO2* in the sample chamber is dependent on the average intensity of the UV light (Ia) and not its peak intensity because the intensity of UV light is not constant in every part of the sample chamber. Some of the photons are absorbed by the SO2 as the light travels through the sample gas. The equation for defining the average intensity of the UV light (Ia) is: Ia = I0 [1 − exp(− ax(SO2))], Where: I0 = Intensity of the excitation UV light, a = The absorption coefficient of SO2 (a constant), SO2 = Concentration of SO2 in the sample chamber, x = The distance between the UV source and the SO2 molecule(s) being affected (path length). 
#5. SO2* then fluoresces light at a longer (lower energy) wavelength centred at 330nm: SO2* --> SO2 + hv (330nm).
#6. The amount of detectable UV given off by the decay of the SO2* is affected by the rate at which this reaction occurs (k). F = k(SO2*), Where: F = the amount of fluorescent light given off, k = The rate at which the SO2* decays into SO2, SO2* = Amount of excited-state SO2 in the sample chamber. Therefore: (SO2*) -kf --> SO2 + hv (330nm)
#7. The function (k) is affected by the temperature of the gas. The warmer the gas, the faster the individual molecules decay back into their ground state and the more photons of UV light are given off per unit of time. Given that the absorption rate of SO2 (a) is constant, the amount of fluorescence (F) is a result of: a) The amount of SO2* created which is affected by the variable factors: concentration of SO2; intensity of UV light (I0); path length of the UV light(x) and b) The amount of fluorescent light created which is affected by the variable factors: the amount of SO2* present and the rate of decay (k) which changes based on the temperature of the gas.
#8. When and the intensity of the light (I0) is known; path length of excited light is short (x); the temperature of the gas is known and compensated for so that the rate of SO2*decay is constant (k). and; no interfering conditions are present (such as interfering gases or stray light); the amount of fluorescent light emitted (F) is directly related to the concentration of the SO2 in the Sample Chamber.
#9. A Photo Multiplier Tube (PMT) detects the UV given off by the SO2* decay (330 nm) and outputs an analog signal. Several focusing lenses and optical filters ensure that both the PMT and source lamp vacuum diode are exposed to an optimum amount of only the right wavelengths of UV. To further assure that the PMT only detects light given off by decaying SO2* the pathway of the excitation UV and field of view of the PMT are perpendicular to each other and the inside surfaces of the sample chamber are coated with a layer of black teflon that absorbs stray light.
#10. The net result of the careful instrumental precision is any variation in UV fluorescence can be directly attributed to changes in the concentration of SO2 in the sample gas.

#Known interferences: 3rd body quenching (NO, CO2, O2, H2O), light pollution, UV absorption by ozone, other species undergoing ultraviolet fluorescence (poly-nuclear aromatics, NO)
   
    'Advanced Pollution 100':{'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':np.NaN,  'documented_upper_limit_of_detection':np.NaN,      'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,       'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,       'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,      'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':'cannot find any information. AQS states it as ultraviolet fluorescence. Assume this', 'measuring_instrument_manual_name':np.NaN, 'measuring_assumption':True},
    'Beckman 953':           {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':np.NaN,  'documented_upper_limit_of_detection':np.NaN,      'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,       'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,       'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,      'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet fluorescence here:https://books.google.es/books?id=yCDGFlP3toUC&pg=PA249&lpg=PA249&dq=monitor+labs+8450&source=bl&ots=-uIdNzc1_l&sig=LqRK0OiodCMg5Sow1wlXQgIVLx0&hl=en&sa=X&ved=0ahUKEwjCy8eNvOfbAhVBuhQKHZTJBUoQ6AEIWDAG#v=onepage&q=monitor%20labs%208450&f=false', 'measuring_instrument_manual_name':np.NaN},  
    'Dasibi 4108':           {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':'1.0',   'documented_upper_limit_of_detection':'2000.0',    'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.0',        'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,       'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,      'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet fluorescence here, and details about limit of detection:https://books.google.es/books?id=ZNvqCAAAQBAJ&pg=PA155&lpg=PA155&dq=Dasibi+4108&source=bl&ots=rxhgzzOLrY&sig=W2zmIMXsFjAcNUXGLgTCYViACR0&hl=en&sa=X&ved=0ahUKEwj8xOXN2ufbAhXDchQKHRVWBksQ6AEIVjAI#v=onepage&q=Dasibi%204108&f=false', 'measuring_instrument_manual_name':np.NaN},
    'DKK-TOA GFS-32':        {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':np.NaN,  'documented_upper_limit_of_detection':np.NaN,      'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,       'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,       'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,      'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet fluorescence here:http://itepsrv1.itep.nau.edu/itep_course_downloads/DAI%20resources/old%20resource%20files/Reference%20and%20Equivalent%20Methods%201-2007.pdf', 'measuring_instrument_manual_name':np.NaN},
    'DKK-TOA GFS-112E':      {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':np.NaN,  'documented_upper_limit_of_detection':np.NaN,      'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,       'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,       'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,      'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet fluorescence here:https://www.federalregister.gov/documents/2000/01/18/00-1083/ambient-air-monitoring-reference-and-equivalent-methods-designation-of-a-new-equivalent-method-for', 'measuring_instrument_manual_name':np.NaN},
    'DKK-TOA GFS-312E':      {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':'0.2',   'documented_upper_limit_of_detection':'1000.0',    'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,       'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':'0.5/day',    'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/day',   'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,      'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'DKK-TOA_GFS-312E_Specs.pdf'},
    'Ecotech AM2020':        {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':np.NaN,  'documented_upper_limit_of_detection':np.NaN,      'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,       'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,       'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,      'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet fluorescence here:https://books.google.es/books?id=yCDGFlP3toUC&pg=PA249&lpg=PA249&dq=monitor+labs+8450&source=bl&ots=-uIdNzc1_l&sig=LqRK0OiodCMg5Sow1wlXQgIVLx0&hl=en&sa=X&ved=0ahUKEwjCy8eNvOfbAhVBuhQKHZTJBUoQ6AEIWDAG#v=onepage&q=monitor%20labs%208450&f=false', 'measuring_instrument_manual_name':np.NaN},  
    'Ecotech EC9850':        {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':'0.5',   'documented_upper_limit_of_detection':'20000.0',   'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5/1.0%',   'reported_precision':np.NaN, 'documented_accuracy':'1.0%', 'reported_accuracy':np.NaN, 'documented_zero_drift':'1.0/day',    'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%/day',   'reported_span_drift':np.NaN, 'documented_resolution':'0.001', 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.5',       'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Ecotech_EC9850_Manual.pdf'},
    'Ecotech EC9850T':       {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':'0.2',   'documented_upper_limit_of_detection':'2000.0',    'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5/0.5%',   'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':'0.2/day',    'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%/day',   'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.5',       'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Ecotech_EC9850T_Specs.pdf'},
    'Ecotech Serinus50':     {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':'0.3',   'documented_upper_limit_of_detection':'20000.0',   'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5/0.15%',  'reported_precision':np.NaN, 'documented_accuracy':'1.0%', 'reported_accuracy':np.NaN, 'documented_zero_drift':'0.5/day',    'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/day',   'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.75',      'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Ecotech_Serinus50_Manual.pdf'},
    'Environnement SA AF21M':{'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':np.NaN,  'documented_upper_limit_of_detection':np.NaN,      'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,       'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,       'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,      'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet fluorescence here:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2586140/', 'measuring_instrument_manual_name':np.NaN},
    'Environnement SA AF22M':{'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':'0.4',   'documented_upper_limit_of_detection':'10000.0',   'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,       'reported_precision':np.NaN, 'documented_accuracy':'1.0%', 'reported_accuracy':np.NaN, 'documented_zero_drift':'0.5/day',    'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%/day',   'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.3',       'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Environnement_SA_AF22M_Specs.pdf'},
    'Horiba APSA360':        {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':'0.5',   'documented_upper_limit_of_detection':'10000.0',   'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.0%',       'reported_precision':np.NaN, 'documented_accuracy':'1.0%', 'reported_accuracy':np.NaN, 'documented_zero_drift':'0.5/day',    'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5/day',    'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.8',       'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Horiba_APMA360_Specs.pdf'},
    'Horiba APSA370':        {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':'0.5',   'documented_upper_limit_of_detection':'10000.0',   'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.0%',       'reported_precision':np.NaN, 'documented_accuracy':'1.0%', 'reported_accuracy':np.NaN, 'documented_zero_drift':'0.5/day',    'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5/day',    'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.7',       'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Horiba_APSA370_Specs.pdf'},
    'Meloy SA700':           {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':np.NaN,  'documented_upper_limit_of_detection':np.NaN,      'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,       'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,       'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,      'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet fluorescence here:https://books.google.es/books?id=yCDGFlP3toUC&pg=PA249&lpg=PA249&dq=monitor+labs+8450&source=bl&ots=-uIdNzc1_l&sig=LqRK0OiodCMg5Sow1wlXQgIVLx0&hl=en&sa=X&ved=0ahUKEwjCy8eNvOfbAhVBuhQKHZTJBUoQ6AEIWDAG#v=onepage&q=monitor%20labs%208450&f=false', 'measuring_instrument_manual_name':np.NaN},  
    'Seres SF2000G':         {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':'1.0',   'documented_upper_limit_of_detection':'20000.0',   'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,       'reported_precision':np.NaN, 'documented_accuracy':'1.0%', 'reported_accuracy':np.NaN, 'documented_zero_drift':'2.0/week',   'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/month', 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.5-0.833', 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Seres_SF2000G_Specs.pdf'},
    'SIR S-5001':            {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':np.NaN,  'documented_upper_limit_of_detection':np.NaN,      'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,       'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,       'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,      'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet fluorescence here:http://www.eufar.net/instruments/423', 'measuring_instrument_manual_name':np.NaN},
    'Teledyne 100A':         {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':'0.4',   'documented_upper_limit_of_detection':'20000.0',   'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5%',       'reported_precision':np.NaN, 'documented_accuracy':'1.0%', 'reported_accuracy':np.NaN, 'documented_zero_drift':'0.5/day',    'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%/7days', 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.65',      'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Teledyne_100A_Manual.pdf'},
    'Teledyne 100AH':        {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':'100.0', 'documented_upper_limit_of_detection':'5000000.0', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5%',       'reported_precision':np.NaN, 'documented_accuracy':'1.0%', 'reported_accuracy':np.NaN, 'documented_zero_drift':'1000.0/day', 'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%/7days', 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.65',      'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assumed_equivalent', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Teledyne_100AH_Manual.pdf'},
    'Teledyne 100E':         {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':'0.4',   'documented_upper_limit_of_detection':'20000.0',   'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5%>50.0',  'reported_precision':np.NaN, 'documented_accuracy':'1.0%', 'reported_accuracy':np.NaN, 'documented_zero_drift':'0.5/day',    'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%/day',   'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.65',      'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Teledyne_100E_Manual.pdf'},
    'Teledyne 100EH':        {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':'100.0', 'documented_upper_limit_of_detection':'5000000.0', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5%',       'reported_precision':np.NaN, 'documented_accuracy':'1.0%', 'reported_accuracy':np.NaN, 'documented_zero_drift':'1000.0/day', 'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%/7days', 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.7',       'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assumed_equivalent', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Teledyne_100EH_Addendum.pdf'},
    'Teledyne 100EU':        {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':'0.05',  'documented_upper_limit_of_detection':'20000.0',   'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5%',       'reported_precision':np.NaN, 'documented_accuracy':'1.0%', 'reported_accuracy':np.NaN, 'documented_zero_drift':'0.2/day',    'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%/7days', 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.65',      'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Teledyne_100EU_Addendum.pdf'},
    'Teledyne T100':         {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':'0.4',   'documented_upper_limit_of_detection':'20000.0',   'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5%>50.0',  'reported_precision':np.NaN, 'documented_accuracy':'1.0%', 'reported_accuracy':np.NaN, 'documented_zero_drift':'0.5/day',    'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%/day',   'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.65',      'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Teledyne_T100_Manual.pdf'},
    'Teledyne T100H':        {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':'200.0', 'documented_upper_limit_of_detection':'5000000.0', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5%>10000', 'reported_precision':np.NaN, 'documented_accuracy':'1.0%', 'reported_accuracy':np.NaN, 'documented_zero_drift':'1000.0/day', 'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%/day',   'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.7',       'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assumed_equivalent', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Teledyne_T100H_Addendum.pdf'},
    'Teledyne T100U':        {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':'0.05',  'documented_upper_limit_of_detection':'20000.0',   'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5%',       'reported_precision':np.NaN, 'documented_accuracy':'1.0%', 'reported_accuracy':np.NaN, 'documented_zero_drift':'0.2/day',    'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%/day',   'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.65',      'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Teledyne_T100U_Addendum.pdf'},
    'Teledyne 8850':         {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':np.NaN,  'documented_upper_limit_of_detection':np.NaN,      'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,       'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,       'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,      'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet fluorescence here:https://books.google.es/books?id=BODqCAAAQBAJ&pg=PA137&lpg=PA137&dq=MONITOR+LABS+8850&source=bl&ots=TUXOyv5p5D&sig=Ult9_8r_m8xwlzmZIHNu3a3JaMs&hl=en&sa=X&ved=0ahUKEwjsu52E2ufbAhXBvhQKHVNNCrkQ6AEIdzAM#v=onepage&q=MONITOR%20LABS%208850&f=false', 'measuring_instrument_manual_name':np.NaN},
    'Teledyne 8850S':        {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':np.NaN,  'documented_upper_limit_of_detection':np.NaN,      'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,       'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,       'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,      'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet fluorescence here:https://www.der.wa.gov.au/images/documents/your-environment/air/publications/perth-photochemical-smog-study-1996.pdf', 'measuring_instrument_manual_name':np.NaN},
    'Teledyne 9850':         {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':np.NaN,  'documented_upper_limit_of_detection':np.NaN,      'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,       'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,       'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,      'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet fluorescence here:http://www.epa.ie/licences/lic_eDMS/090151b28005fa5c.pdf', 'measuring_instrument_manual_name':np.NaN},
    'Teledyne 9850B':        {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':np.NaN,  'documented_upper_limit_of_detection':np.NaN,      'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,       'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,       'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,      'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet fluorescence here:http://www.epa.ie/licences/lic_eDMS/090151b28005fa5c.pdf', 'measuring_instrument_manual_name':np.NaN},
    'Thermo 43':             {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':np.NaN,  'documented_upper_limit_of_detection':np.NaN,      'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,       'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,       'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,      'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet fluorescence here:https://books.google.es/books?id=yCDGFlP3toUC&pg=PA249&lpg=PA249&dq=monitor+labs+8450&source=bl&ots=-uIdNzc1_l&sig=LqRK0OiodCMg5Sow1wlXQgIVLx0&hl=en&sa=X&ved=0ahUKEwjCy8eNvOfbAhVBuhQKHZTJBUoQ6AEIWDAG#v=onepage&q=monitor%20labs%208450&f=false', 'measuring_instrument_manual_name':np.NaN},  
    'Thermo 43A':            {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':'1.0',   'documented_upper_limit_of_detection':'100.0',     'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,       'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,       'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,      'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet fluorescence here, and details about limit of detection:https://books.google.es/books?id=G0EYUql3_98C&pg=PA283&lpg=PA283&dq=thermo+43a&source=bl&ots=k2RUJXlAVJ&sig=yIxG08AoSyuqedtS6dp-O7O04X4&hl=en&sa=X&ved=0ahUKEwj17qqB3OfbAhVCVRQKHanFDlo4ChDoAQgoMAA#v=onepage&q=thermo%2043a&f=false', 'measuring_instrument_manual_name':np.NaN},
    'Thermo 43B':            {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':np.NaN,  'documented_upper_limit_of_detection':np.NaN,      'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,       'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,       'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,      'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet fluorescence here:http://www.southwestohioair.org/UserFiles/Servers/Server_3788196/File/EnvironmentalServices/AirQuality/Monitoring/AirMonitoringNetwork16-17.pdf', 'measuring_instrument_manual_name':np.NaN},
    'Thermo 43C':            {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':'0.5',   'documented_upper_limit_of_detection':'100000.0',  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.0/1.0%',   'reported_precision':np.NaN, 'documented_accuracy':'1.0%', 'reported_accuracy':np.NaN, 'documented_zero_drift':'1.0/day',    'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/day',   'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.5',       'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Thermo_43C_Specs.pdf'},
    'Thermo 43C-TLE':        {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':'0.05',  'documented_upper_limit_of_detection':'1000.0',    'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.2/1.0%',   'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':'0.2/day',    'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/day',   'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.5',       'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Thermo_43C-TLE_Specs.pdf'},
    'Thermo 43i':            {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':'0.5',   'documented_upper_limit_of_detection':'100000.0',  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,       'reported_precision':np.NaN, 'documented_accuracy':'1.0%', 'reported_accuracy':np.NaN, 'documented_zero_drift':'1.0/day',    'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/day',   'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.5',       'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Thermo_43i_Manual.pdf'},
    'Thermo 43i-TLE':        {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':'0.05',  'documented_upper_limit_of_detection':'1000.0',    'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,       'reported_precision':np.NaN, 'documented_accuracy':'1.0%', 'reported_accuracy':np.NaN, 'documented_zero_drift':'0.2/day',    'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/day',   'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.5',       'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent',         'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Thermo_43i-TLE_Manual.pdf'},
    'Thermo 43W':            {'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':'1.0',   'documented_upper_limit_of_detection':'750.0',     'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,       'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,       'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,       'reported_span_drift':np.NaN, 'documented_resolution':np.NaN,  'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,      'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assumed_equivalent', 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses ultraviolet fluorescence here, and details about limit of detection:https://books.google.es/books?id=G0EYUql3_98C&pg=PA283&lpg=PA283&dq=thermo+43a&source=bl&ots=k2RUJXlAVJ&sig=yIxG08AoSyuqedtS6dp-O7O04X4&hl=en&sa=X&ved=0ahUKEwj17qqB3OfbAhVCVRQKHanFDlo4ChDoAQgoMAA#v=onepage&q=thermo%2043a&f=false', 'measuring_instrument_manual_name':np.NaN},
#---No specific instrument name
    'Ultraviolet Fluorescence':{'methodology':'ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO2'], 'qa_accepted_parameters':['SO2'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assumed_equivalent', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#thermal reduction - ultraviolet fluorescence

#Indirect method for the measurement of sulphate (SO4--) through the conversion of SO4-- to SO2 by thermal reduction, which is then measured by ultraviolet fluorescence.
#The sulphate is converted by drawing a continuous stream of sample across a hot reactive surface that reduces sulphate particles in the sample stream to sulfur dioxide gas. 
#The concentrations of sulphate in the ambient air are then quantified by comparing the signal produced when aerosol-laden sample is drawn directly into the converter to a background signal that is produced when the sample stream is run through a high-efficiency particulate aerosol filter that removes the sulfate before conversion. 
#The difference in signal between the filtered and unfiltered sample can be attributed to sulfur dioxide that is formed from sulfate particles in the unfiltered sample stream. 
#By routinely switching between the filtered and unfiltered sample streams, the instrument readings can be continuously adjusted or corrected for changes in background signal that might be produced by traces of SO2 or other interfering gases. 
#This frequent adjustment for changes in background signal improves the system stability, which in turn improves the limit of detection.

    'Thermo 5020i':{'methodology':'thermal reduction - ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO4--'], 'qa_accepted_parameters':['SO4--'], 'documented_lower_limit_of_detection':'0.5', 'documented_upper_limit_of_detection':'4000.0', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':'1.0%', 'reported_accuracy':np.NaN, 'documented_zero_drift':'1.0/day', 'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/day', 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.4-0.5', 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'no_reference', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Thermo_5020i_Manual.pdf'},
#---No specific instrument name
    'Thermal Reduction - Ultraviolet Fluorescence':{'methodology':'thermal reduction - ultraviolet fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['SO4--'], 'qa_accepted_parameters':['SO4--'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'no_reference', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#laser-induced fluorescence (LIF)

#Fluorescence is the emission of light (luminescence) by a substance that has absorbed light or other electromagnetic radiation (excitation). In most cases, the emitted light has a longer wavelength, and therefore lower energy, than the absorbed radiation.
#Laser-induced fluorescence (LIF) is a method where fluorescence is induced by an atom or molecule being excited  by the absorption of laser light.
#The emission light is detected using a photomutiplier tube. The amount of a species present in the sample is proportional to the intensity of the emission light of a specific wavelength and quantification is possible by using calibration data.
#The LIF method has been used mostly in the measurement of hydroxyl and hydroperoxyl radicals, but is also used for measurement of NO/NO2.

#Known Interferences: Laser power modulation (laser excitation could generate OH radicals biasing the measurement). 3rd body quenching.

#---No specific instrument name
   'Laser-Induced Fluorescence':{'methodology':'laser-induced fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx'], 'qa_accepted_parameters':['NO','NO2','NOx'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assumed_equivalent', 'measuring_instrument_further_details':'See details for NO/NO2 here:https://agupubs.onlinelibrary.wiley.com/doi/full/10.1029/1999GL900015 and here:http://etheses.whiterose.ac.uk/11668/1/Amy%20Foulds_Final%20MSc%20Thesis.pdf', 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#vacuum ultraviolet resonance fluorescence (VUF)

#Fluorescence is the emission of light (luminescence) by a substance that has absorbed light or other electromagnetic radiation (excitation). In most cases, the emitted light has a longer wavelength, and therefore lower energy, than the absorbed radiation.
#Vacuum Ultraviolet Resonance Fluorescence is a method where a reasonance lamp excited by reasonance fluorescence discharge (in combiantion with an optical filter) produces photons in the ultraviolet which react with a sample gas, inducing fluorescence in the vacuum ultraviolet (UV radiaion 10nm-200nm), subsequently detected by a photomultiplier tube.
#This method can be employed for CO, with the reasonance lamp emitting UV light between 145nm-151nm, with fluorescence occurring between 160nm-190nm.

#Known interferences: Water vapour, drifts in lamp intensity, continuum raman scattering by O2. 

    'Aerolaser AL5001':{'methodology':'vacuum ultraviolet resonance fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'], 'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':'0.8', 'documented_upper_limit_of_detection':'100000.0', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assumed_equivalent', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Aerolaser_AL5001_Specs.pdf'},
    'Aerolaser AL5002':{'methodology':'vacuum ultraviolet resonance fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'], 'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':'0.8', 'documented_upper_limit_of_detection':'100000.0', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assumed_equivalent', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Aerolaser_AL5002_Specs.pdf'},
#---No specific instrument name
    'Vacuum Ultraviolet Resonance Fluorescence':{'methodology':'vacuum ultraviolet resonance fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'], 'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assumed_equivalent', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#cavity ringdown spectroscopy (CRDS)

#Based on absorption spectroscopy, Cavity Ringdown Spectroscopy works by attuning light rays to the unique molecular fingerprint of the sample species. 
#By measuring the time it takes the light to fade or "ring-down", you receive an accurate molecular count in milliseconds. 
#The time of light decay, in essence, provides an exact, non-invasive, and rapid means to detect contaminants in the air, in gases, and even in the breath.
#The method is typically employed to measure CO and other greenhouse gases (e.g CO2, CH4, H2O).

#Typical measurement operation:
#1. A Continuous Wave (CW) diode laser emits a directed beam of light energy through an ultra-high reflective mirror into the absorption cell (cavity).
#2. The light reflects back and forth between two ultra-high reflective mirrors multiple times, up to a total path length of 100 kilometers.
#3. Once the photodiode detector “sees” a preset level of light energy, the light source is shuttered or diverted from the cavity.
#4. On each successive pass, a small amount of light or ring-down signal emits through the second mirror and is sensed by the light detector.
#5. Once the light "rings down", the detector achieves a point of zero light energy in milliseconds, and the measurement is complete.    
#6. The computer-controlled system tunes the laser off the absorption peak for the sample species to determine the τ empty value, equivalent to a zero baseline correction. It tunes back to the absorption peak to determine the τ value, dependent on the sample species concentration.
#7. The concentration of the sample species is directly calculated using Beer’s Law. The measured value constitutes an absolute measurement and is unaffected by losses outside the ring-down cavity.

#Known interferences: Water vapour, CO2 and particulates.

    'LGR Off-Axis ICOS':{'methodology':'cavity ringdown spectroscopy', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'],                   'qa_accepted_parameters':['CO'],                   'documented_lower_limit_of_detection':'1.0',  'documented_upper_limit_of_detection':'4000.0',                                                       'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN,                                             'reported_uncertainty':np.NaN, 'documented_precision':'0.05',                                                  'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0/day',                                                                'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assumed_equivalent',                                                                       'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'LGR_Off-Axis_ICOS_Specs.pdf'},
    'Picarro G2301':    {'methodology':'cavity ringdown spectroscopy', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO','CO2','CH4','H20'], 'qa_accepted_parameters':['CO','CO2','CH4','H20'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':{'CO':np.NaN,'CO2':'1000000.0','CH4':'20000.0','H2O':np.NaN},   'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN,                                             'reported_uncertainty':np.NaN, 'documented_precision':{'CO':np.NaN,'CO2':'25.0','CH4':'0.22','H2O':'30000.0'}, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':{'CO':np.NaN,'CO2':'120.0/day','CH4':'1.0/day','H2O':'100000.0'},         'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.4',  'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':{'CO':'assumed_equivalent','CO2':'no_reference','CH4':'no_reference','H20':'no_reference'}, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Picarro_G2301_Specs.pdf'},
    'Picarro G2401':    {'methodology':'cavity ringdown spectroscopy', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO','CO2','CH4','H20'], 'qa_accepted_parameters':['CO','CO2','CH4','H20'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':{'CO':'5000.0','CO2':'1000000.0','CH4':'20000.0','H2O':np.NaN}, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':{'CO':'2.0','CO2':'50.0','CH4':'1.0','H2O':np.NaN}, 'reported_uncertainty':np.NaN, 'documented_precision':{'CO':'1.0','CO2':'10.0','CH4':'0.3','H2O':np.NaN},      'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':{'CO':'10.0/day','CO2':'100.0/day','CH4':'1.0/day','H2O':'100000.0/day'}, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.4',  'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':{'CO':'assumed_equivalent','CO2':'no_reference','CH4':'no_reference','H20':'no_reference'}, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Picarro_G2401_Specs.pdf'},
#---No specific instrument name
    'Cavity Ringdown Spectroscopy':{'methodology':'cavity ringdown spectroscopy', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO','CO2','CH4','H20'], 'qa_accepted_parameters':['CO','CO2','CH4','H20'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assumed_equivalent', 'us_reference':{'CO':'assumed_equivalent','CO2':'no_reference','CH4':'no_reference','H20':'no_reference'}, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#cavity attenuated phase shift spectroscopy (CAPS)
    
#Operates on the principle that a specific species efficiently absorbs light at a known wavelength. This is the case for NO2, at 450nm.
#The degree to which the light is absorbed by a specific species is directly related to the species concentration as described by the Beer-Lambert Law (A = εLC; A = Absorbance (mol litres-1), ε = Molar absorptivity (litres mol-1 cm-1), L = mean optical path length of cell, C = species concentration).
#Emitted light in an optical cell is reflected back and forth between two mirrors, building intensity and running a very long path length. The long path length extends the “time” or “life” of the photon, thus providing ample time to measure absorbance when a species is present.
#The method is typically employed for direct measurement of NO2.

#Typical measurement operation for NO2:
#1. The sample is drawn into the sample bulkhead, before being passed into the measurement cell. 
#2. Light is emitted from a blue ultraviolet (UV) light emitting diode (LED) centered at 450 nm (a prominent absorption band for NO2). 
#3. The measurement cell contains high reflectivity mirrors located at either end to provide an extensive optical path length. The optical cell resides in a temperature controlled oven. The oven raises the ambient temperature of the sample gas to 45 degrees Celsius. This mitigates the formation of moisture on the surfaces of the mirrors while also minimiSing changes in the absorption coefficient due to temperature fluctuations.
#4. The CAPS method is unique in that it applies the fundamental optical absorption law in the frequency domain, rather than using relative changes in light intensity as the primary signal. 
#5. UV light from the modulating high intensity LED enters a near confocal optical cell through the rear of mirror A. The intensity of the light, as observed by a vacuum photodiode detector, which is also modulating at a slightly different frequency, located behind Mirror B, builds exponentially in the cell while the LED is ON. The opposite is true when the LED is OFF. Because both mirrors are highly reflective at 450 nm, a prominent absorption band for NO2, the light takes a considerable amount of time to plateau in the absence of the absorbing gas. 
#6. When NO2 is present, the mean path length traveled by the light is significantly reduced. This has two effects on the observed intensity as measured by the detector: a) The light plateau intensity level is lower, b) The light intensity plateaus sooner. Thus, an observed phase shift from the modulating LED is detected. The phase shift is largest when measuring zero air and decreases when NO2 is present.
#7. Both the LED and the Detector are modulated ON and OFF such that the observed signal has a much lower frequency, equal to the difference between the modulated frequencies and is referred to as a beat frequency. The system hardware and software take advantage of this, as it makes it easier to post process the signal using a micro controller. The technique is known as heterodyning.
#8. The instrument translates the phase shift from the presence of absorbing gas into a concentration measurement. Typical absorption techniques of other analysers take a reference and measure value of the light intensity “level” in order to derive concentration and compensate for source drift. Using the CAPS technique the amount of phase shift remains constant for a given concentration, even if the LED drifts over time. The measurement approach offers many advantages over traditional chemiluminescence analysers, such as faster response (single gas stream), lower noise at span and more importantly greater specificity.

#Known interferences: direct spectral interference with photochemically produced 1,2-dicarbonyl species (e.g., glyoxal, methylglyoxal)

    'Environnement SA AS32M':{'methodology':'cavity attenuated phase shift spectroscopy', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO2'], 'qa_accepted_parameters':['NO2'], 'documented_lower_limit_of_detection':'0.1',  'documented_upper_limit_of_detection':'1000.0', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.05',     'reported_precision':np.NaN, 'documented_accuracy':'4.0%',  'reported_accuracy':np.NaN, 'documented_zero_drift':'0.75/day', 'reported_zero_drift':np.NaN, 'documented_span_drift':'1.5/day',  'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'EnvironnementSA_AS32M_Specs.pdf'},
    'Teledyne T500U':        {'methodology':'cavity attenuated phase shift spectroscopy', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO2'], 'qa_accepted_parameters':['NO2'], 'documented_lower_limit_of_detection':'0.04', 'documented_upper_limit_of_detection':'1000.0', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5%>=5',  'reported_precision':np.NaN, 'documented_accuracy':'1.0%',  'reported_accuracy':np.NaN, 'documented_zero_drift':'0.1/day',  'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%/day', 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.9',  'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'equivalent', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Thermo_T500U_Manual.pdf'},
#---No specific instrument name
    'Cavity Attenuated Phase Shift Spectroscopy':{'methodology':'cavity attenuated phase shift spectroscopy', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NO2'], 'qa_accepted_parameters':['NO2'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'assumed_equivalent', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#differential optical absorption spectroscopy (DOAS)

#The basic principle used in Differential optical absorption spectroscopy (DOAS) is absorption spectroscopy. DOAS allows the quantitative determination of multiple atmospheric trace gas concentrations by recording and evaluating the characteristic absorption structures (lines or bands) of the trace gas molecules along an absorption path of known length in the open atmosphere, following the Beer-Lambert law (I = Io e−KLC; K = molecular absorption coefficient at STP, L = optical path length of cell, C = species concentration , I = light intensity of sample gas, Io = light intensity of sample without measured species (reference gas) ).
#The wavelength of light where a distinct absorption peak occurs is determined for analyte. A wavelength on either side of the absorption peak is next determined. The intensity of a light source at wavelength is measured and then the intensity is measured again after the light passes through the analyte. The difference of the intensities is proportional to the concentration to the analyte.
#DOAS is a long path measuring technique. Measurements can be made in an optical pathway from 1 to 10 kilometers.
#The method measures the average concentration of a species along the path length, not for any single molecule.
#In the real atmosphere, multiple effects contribute to the overall attenuation of the light. In particular, aerosols and clouds scatter light and thereby reduce the intensity of the direct beam while increasing intensities measured in other directions. Also, there rarely is only one absorber relevant at a given wavelength and this also needs to be accounted for. 
#The solution to this problem lies in the use of measurements at several wavelengths. Each molecule has a characteristic absorption spectrum (its spectral fingerprint) and therefore, simultaneous measurements at different wavelengths enable the separation of the contributions of the different absorbers. This is what DOAS does.
#Scattering by aerosols also needs accounting for. Their extinction cross-sections can be approximated by power laws (λ**-4 for Rayleigh scattering and λ**-1..0 for Mie scattering), the coefficients of which can be determined in the fit. The basic principle behind the separation of aerosol extinction and trace gas absorption is that the latter are identified using those parts of their absorption cross-sections that vary rapidly with wavelength. 
#The more slowly varying parts of the absorption can not be separated from extinction by aerosols which is why the absorption cross-sections are often high pass filtered before use in a DOAS retrieval.
#In addition to their effect on the spectral distribution of the intensity measured, aerosols can also have a significant impact on the light path of scattered light. This has to be modelled explicitly when computing the airmass factors for the light path correction.
#The DOAS technique is characterised by the following: 
#(a) measuring the transmitted light intensity over a relatively (compared to the width of an absorption band) broad spectral interval; 
#(b) high‐pass filtering of the spectra to obtain a differential absorption signal and eliminating broad‐band extinction processes such as Rayleigh and Mie scattering (RS and MS); 
#(c) quantitative determination of trace column densities by matching the observed spectral signatures to prerecorded (reference) spectra by, for instance, least‐squares methods.
#DOAS instruments are often divided into two main groups: passive and active ones. The active DOAS system such as longpath(LP)-systems and cavity-enhanced(CE) DOAS systems have their own light-source, whereas passive ones use the sun as their light source, e.g. MAX(Multi-axial)-DOAS. Also the moon can be used for night-time DOAS measurements, but here usually direct light measurements need to be done instead of scattered light measurements as it is the case for passive DOAS systems such as the MAX-DOAS.

#Typical measurement operation:
#1. The positioning of the emitter and the receiver define the monitoring path. The light source in the emitter is a high-pressure xenon lamp. This type of light source radiates an almost smooth spectrum ranging from approximately 200 nm up to 500 nm, and from about 1200 to 3000 nm. Within these ranges a number of gaseous substances show specific absorption spectra. The lamp spectrum is however not perfectly smooth, but the remaining "hills" in the spectral output are being taken care of in the evaluation.
#2. The emitted light beam is directed towards the receiver, and on its way the intensity is affected by scattering and absorption in molecules and particles.
#3. To ascertain the initial intensity (Io) of the light source across the path, there are typically two approaches: (a) Use of measurements at different light paths. If it is possible to take two measurements with the same initial intensity but at different light path lengths L, the dependence on the initial intensity cancels if one looks at the ratio of the two measurements. This approach is e.g. used in zenith-sky DOAS, where a measurement at low sun (long light path through the atmosphere) is analysed with a measurement taken at high sun (short light path). (b) Use of measurements at different wavelengths. In this approach, one exploits the fact that many molecules have structured spectra and light at different wavelengths experiences different absorption strengths. If the initial intensity does not vary with wavelength, one can look at the ratio of two measurements at different wavelengths to remove the dependence on Io. This approach is often used in long-path measurements which employ a lamp. It also is one reason to call this method differential as changes in absorption are used.
#4. From the receiver the captured light is led via an opto-fibre to the analyser. The function of the fibre is only to avoid exposing the opto-analyser to dust, high humidity, temperature variations, etc.
#5. When the light reaches the analyser, it enters a spectrometer. Inside the spectrometer, a grating refracts the light into its wavelength components. The refracted light is then projected onto a rapid scanning slit in front of a photo-multiplier detector or an infrared sensitive diode, where a selected part of the spectrum is detected. The scanning slit device makes it possible to record all wavelengths separately.
#6. As the grating is moveable, any chosen part of the spectrum can be detected. The wavelength window can thus be optimised for a certain component, with respect to parameters such as sensitivity and interfering pollutants. Approximately 100 scans per second are recorded.
#7. The current from the detector is converted into digital signals by a 12 bit analogue-to-digital converter, and the signal is stored and accumulated in a multi-channel register. The detected spectrum is typically 40 nm wide in the UV range and approximately twice as wide in the IR range. Each scan is digitised into 1000 points.
#8. Each pollutant is monitored during a time period entered by the operator. When the data accumulation is finished, the evaluation process is started. At the same time the next data accumulation period starts.

#Known interferences: Interference by miscellaneous atmospheric constituents. Heavy rain and fog, and even high humidity. Atmospheric turbulence, such as that from thermal-induced effects, can distort reflections. Anything that interrupts the path of the laser will cause some interference (i.e., animals, cars, planes, etc.). 

    'Environnement SA SANOA':{'methodology':'differential optical absorption spectroscopy', 'measuring_instrument_sampling':'Remote', 'sample_preparation':np.NaN, 'measured_parameters':['NO','NO2','NOx','O3','SO2','NH3'],      'qa_accepted_parameters':['NO','NO2','NOx','O3','SO2','NH3'],      'documented_lower_limit_of_detection':{'NO':'1.5','NO2':'0.6','NOx':'1.5','O3':'0.6','SO2':'0.2','NH3':'3.5'}, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':'1.0%', 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':{'NO':'equivalent','NO2':'equivalent','NOx':'equivalent','O3':'equivalent','SO2':'equivalent','NH3':'no_reference'}, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'EnvironnementSA_SANOA_Specs.pdf'},
    'OPSIS AR500':           {'methodology':'differential optical absorption spectroscopy', 'measuring_instrument_sampling':'Remote', 'sample_preparation':np.NaN, 'measured_parameters':['CO','NO','NO2','NOx','O3','SO2','NH3'], 'qa_accepted_parameters':['CO','NO','NO2','NOx','O3','SO2','NH3'], 'documented_lower_limit_of_detection':np.NaN,                                                                  'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':{'CO':'','NO':'equivalent','NO2':'equivalent','NOx':'equivalent','O3':'equivalent','SO2':'equivalent','NH3':'no_reference'}, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'OPSIS_AR500_Manual.pdf'},
    'OPSIS AR550':           {'methodology':'differential optical absorption spectroscopy', 'measuring_instrument_sampling':'Remote', 'sample_preparation':np.NaN, 'measured_parameters':['CO','NO','NO2','NOx','O3','SO2','NH3'], 'qa_accepted_parameters':['CO','NO','NO2','NOx','O3','SO2','NH3'], 'documented_lower_limit_of_detection':np.NaN,                                                                  'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'OPSIS_AR500_Manual.pdf'},
    'OPSIS AR600':           {'methodology':'differential optical absorption spectroscopy', 'measuring_instrument_sampling':'Remote', 'sample_preparation':np.NaN, 'measured_parameters':['CO','NO','NO2','NOx','O3','SO2','NH3'], 'qa_accepted_parameters':['CO','NO','NO2','NOx','O3','SO2','NH3'], 'documented_lower_limit_of_detection':np.NaN,                                                                  'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'OPSIS_AR500_Manual.pdf'},
    'OPSIS AR650':           {'methodology':'differential optical absorption spectroscopy', 'measuring_instrument_sampling':'Remote', 'sample_preparation':np.NaN, 'measured_parameters':['CO','NO','NO2','NOx','O3','SO2','NH3'], 'qa_accepted_parameters':['CO','NO','NO2','NOx','O3','SO2','NH3'], 'documented_lower_limit_of_detection':np.NaN,                                                                  'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'OPSIS_AR500_Manual.pdf'},
#---No specific instrument name
    'Differential Optical Absorption Spectroscopy':{'methodology':'differential optical absorption spectroscopy', 'measuring_instrument_sampling':'Remote', 'sample_preparation':np.NaN, 'measured_parameters':['CO','NO','NO2','NOx','O3','SO2','NH3'], 'qa_accepted_parameters':['CO','NO','NO2','NOx','O3','SO2','NH3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#electrochemical membrane diffusion

#Methodology developed specifically for measurement of NH3: https://www.sciencedirect.com/science/article/pii/S0003267003012650?via%3Dihub
#Gas is sampled in a sampler comprising two opposite channels separated by a gas permeable, water repellent polypropylene membrane. 
#Subsequently, the acid sample solution is pumped into a selector where an alkaline solution is added to ionize all sampled ambient acid gasses, resulting in an enhanced selectivity. 
#In the selector, the ammonia can diffuse through a second membrane into a purified water stream where an electrolyte conductivity sensor quantifies the resulting ammonium concentration. 
#The realized system is shown to be selective enough not to be influenced by normal ambient carbon dioxide concentrations. 
#Experiments with a gas flow of 3 ml/min, containing ammonia concentrations ranging from 9.8 to 0.3 ppm in a nitrogen carrier flow, into a 15 μl/min sample solution flow and finally into a 5 μl/min purified water stream have been carried out and show that the system is sensitive to ammonia concentration below 1 ppmv.

#Known interferences: CO2

#---No specific instrument name
    'Electrochemical Membrane Diffusion': {'methodology':'electrochemical membrane diffusion', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NH3'], 'qa_accepted_parameters':['NH3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'no_reference', 'measuring_instrument_further_details':'See details of method here:https://www.sciencedirect.com/science/article/pii/S0003267003012650?via%3Dihub', 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#photoacoustic spectroscopy

#Gaseous samples are continuously drawn through a measurement cell, where they are interrogated spectroscopically with the output radiation of a carbon dioxide/tunable quantum cascade laser. 
#This is used in conjunction with a highly sensitive acoustic detector to measure trace gas concentrations. Laser tuning is accomplished using proprietary algorithms that do not require the use of a spectrometer or other wavelength measurement device. 
#The laser is tuned to a known gaseous absorption line and passed through a cell containing the gas sample. If the trace gas species is present, the gas sample will be slightly heated. This heating can be measured very accurately and linearly by microphones in the cell and the amplitude of the electrical signal from the microphones correlate with the trace gas concentration. 
#If there is no trace gas present, there will be no signal from the microphone. This is, therefore, the highly desirable "zero-background measurement". 
#Traditional spectroscopic methods measure the total power of the laser beam with and without a sample in the path. For very weak attenuations that result from trace gas concentrations, this process requires taking the difference of two large numbers, each with a finite uncertainty, to compute a small real number. This complication is avoided using this method.
#This method has been used to measure NH3.

    'Pranalytica Nitrolux100': {'methodology':'photoacoustic spectroscopy', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NH3'], 'qa_accepted_parameters':['NH3'], 'documented_lower_limit_of_detection':'0.1', 'documented_upper_limit_of_detection':'300.0',  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.1/10%', 'reported_precision':np.NaN, 'documented_accuracy':'0.1/10%', 'reported_accuracy':np.NaN, 'documented_zero_drift':'0.1/week', 'reported_zero_drift':np.NaN, 'documented_span_drift':'10.0%/month', 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.6', 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'no_reference', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Pranalytica_Nitrolux_Specs.pdf,Pranalytica_Nitrolux100_Specs'},
    'Pranalytica Nitrolux200': {'methodology':'photoacoustic spectroscopy', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NH3'], 'qa_accepted_parameters':['NH3'], 'documented_lower_limit_of_detection':'0.2', 'documented_upper_limit_of_detection':'500.0',  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.2/10%', 'reported_precision':np.NaN, 'documented_accuracy':'0.2/10%', 'reported_accuracy':np.NaN, 'documented_zero_drift':'0.2/week', 'reported_zero_drift':np.NaN, 'documented_span_drift':'10.0%/month', 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.6', 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'no_reference', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Pranalytica_Nitrolux_Specs.pdf',},
    'Pranalytica Nitrolux1000':{'methodology':'photoacoustic spectroscopy', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NH3'], 'qa_accepted_parameters':['NH3'], 'documented_lower_limit_of_detection':'1.0', 'documented_upper_limit_of_detection':'2000.0', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.0/10%', 'reported_precision':np.NaN, 'documented_accuracy':'1.0/10%', 'reported_accuracy':np.NaN, 'documented_zero_drift':'1.0/week', 'reported_zero_drift':np.NaN, 'documented_span_drift':'10.0%/month', 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.6', 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'no_reference', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Pranalytica_Nitrolux_Specs.pdf'},
#---No specific instrument name
    'Photoacoustic Spectroscopy':{'methodology':'photoacoustic spectroscopy', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['NH3'], 'qa_accepted_parameters':['NH3'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_stability':np.NaN, 'reported_stability':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'us_reference':'no_reference', 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#non-dispersive infrared absorption (luft)

#Operates on the principle that a specific species efficiently absorbs IR light at a known wavelength in the IR range. This is the case for CO, at 4.7um
#The degree to which the IR light is absorbed by a specific species is directly related to the species concentration as described by the Beer-Lambert Law (I/Io = e−KLC; K = molecular absorption coefficient at STP, L = optical path length of cell, C = species concentration , I = light intensity of sample gas, Io = light intensity of sample without measured species (reference gas) ).

#Typical measurement operation for CO:
#1. The sample is drawn into the through the sample bulkhead
#2. IR radiation from a IR source (at 4.7 um) is passed through a rotating shutter creating a series of pulses.
#3. These pulses are split simultaneously into 2 measurement cells. One cell contains the sample gas, termed the sample stream (I), and cell contains a non-absorbing gas at the specific wavelength (i.e N2), termed the reference stream (Io).
#4. Both the pulses then exit the cells and fall on a IR photo-detector. 
#5. The intensities of 4.7 um light transmitted through the sample (I) and CO-free reference beams (Io) are related to the concentration (C) of CO in the sample gas stream according to the Beer-Lambert Law.
#6. The analyser’s microprocessor calculates the absolute concentration in molecules cm-3, and is then converted to a mixing ratio using in-instrument measured sample temperature and pressure.

#Known Interferences:
#Water vapour and CO2

    'Beckman 866':      {'methodology':'non-dispersive infrared absorption (luft)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'],                                    'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':np.NaN,                                                                                                  'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,     'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,     'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses non-dispersive infrared absorption (luft) here:https://books.google.es/books?id=yCDGFlP3toUC&pg=PA248&lpg=PA248&dq=HORIBA+AQM-10&source=bl&ots=-uIdMsd0Yg&sig=U34lJHqy1fXno_AwV36rZIKCwuE&hl=en&sa=X&ved=0ahUKEwjvlL2IxuLbAhUJthQKHZCQB90Q6AEIQjAC#v=onepage&q=HORIBA%20AQM-10&f=false', 'measuring_instrument_manual_name':np.NaN},
    'Bendix 8501-5CA':  {'methodology':'non-dispersive infrared absorption (luft)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'],                                    'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':np.NaN,                                                                                                  'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,     'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,     'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses non-dispersive infrared absorption (luft) here:https://books.google.es/books?id=yCDGFlP3toUC&pg=PA248&lpg=PA248&dq=HORIBA+AQM-10&source=bl&ots=-uIdMsd0Yg&sig=U34lJHqy1fXno_AwV36rZIKCwuE&hl=en&sa=X&ved=0ahUKEwjvlL2IxuLbAhUJthQKHZCQB90Q6AEIQjAC#v=onepage&q=HORIBA%20AQM-10&f=false', 'measuring_instrument_manual_name':np.NaN},
    'Horiba 300E':      {'methodology':'non-dispersive infrared absorption (luft)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'],                                    'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':np.NaN,                                                                                                  'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,     'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,     'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses non-dispersive infrared absorption (luft) here:https://books.google.es/books?id=yCDGFlP3toUC&pg=PA248&lpg=PA248&dq=HORIBA+AQM-10&source=bl&ots=-uIdMsd0Yg&sig=U34lJHqy1fXno_AwV36rZIKCwuE&hl=en&sa=X&ved=0ahUKEwjvlL2IxuLbAhUJthQKHZCQB90Q6AEIQjAC#v=onepage&q=HORIBA%20AQM-10&f=false', 'measuring_instrument_manual_name':np.NaN},
    'Horiba 300SE':     {'methodology':'non-dispersive infrared absorption (luft)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'],                                    'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':np.NaN,                                                                                                  'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,     'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,     'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses non-dispersive infrared absorption (luft) here:https://books.google.es/books?id=yCDGFlP3toUC&pg=PA248&lpg=PA248&dq=HORIBA+AQM-10&source=bl&ots=-uIdMsd0Yg&sig=U34lJHqy1fXno_AwV36rZIKCwuE&hl=en&sa=X&ved=0ahUKEwjvlL2IxuLbAhUJthQKHZCQB90Q6AEIQjAC#v=onepage&q=HORIBA%20AQM-10&f=false', 'measuring_instrument_manual_name':np.NaN},
    'Horiba AQM10':     {'methodology':'non-dispersive infrared absorption (luft)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'],                                    'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':np.NaN,                                                                                                  'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,     'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,     'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses non-dispersive infrared absorption (luft) here:https://books.google.es/books?id=yCDGFlP3toUC&pg=PA248&lpg=PA248&dq=HORIBA+AQM-10&source=bl&ots=-uIdMsd0Yg&sig=U34lJHqy1fXno_AwV36rZIKCwuE&hl=en&sa=X&ved=0ahUKEwjvlL2IxuLbAhUJthQKHZCQB90Q6AEIQjAC#v=onepage&q=HORIBA%20AQM-10&f=false', 'measuring_instrument_manual_name':np.NaN},
    'Horiba AQM11':     {'methodology':'non-dispersive infrared absorption (luft)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'],                                    'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':np.NaN,                                                                                                  'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,     'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,     'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses non-dispersive infrared absorption (luft) here:https://books.google.es/books?id=yCDGFlP3toUC&pg=PA248&lpg=PA248&dq=HORIBA+AQM-10&source=bl&ots=-uIdMsd0Yg&sig=U34lJHqy1fXno_AwV36rZIKCwuE&hl=en&sa=X&ved=0ahUKEwjvlL2IxuLbAhUJthQKHZCQB90Q6AEIQjAC#v=onepage&q=HORIBA%20AQM-10&f=false', 'measuring_instrument_manual_name':np.NaN},
    'Horiba AQM12':     {'methodology':'non-dispersive infrared absorption (luft)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'],                                    'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':np.NaN,                                                                                                  'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,     'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,     'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses non-dispersive infrared absorption (luft) here:https://books.google.es/books?id=yCDGFlP3toUC&pg=PA248&lpg=PA248&dq=HORIBA+AQM-10&source=bl&ots=-uIdMsd0Yg&sig=U34lJHqy1fXno_AwV36rZIKCwuE&hl=en&sa=X&ved=0ahUKEwjvlL2IxuLbAhUJthQKHZCQB90Q6AEIQjAC#v=onepage&q=HORIBA%20AQM-10&f=false', 'measuring_instrument_manual_name':np.NaN},
    'Massachusetts CO1':{'methodology':'non-dispersive infrared absorption (luft)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'],                                    'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':np.NaN,                                                                                                  'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,     'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,     'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':'cannot find any information. AQS states it as non-dispersive infrared absorption. Assume this is correct, and assume luft type', 'measuring_instrument_manual_name':np.NaN, 'measuring_assumption':True},
    'MSA 202S':         {'methodology':'non-dispersive infrared absorption (luft)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'],                                    'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':np.NaN,                                                                                                  'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,     'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,     'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses non-dispersive infrared absorption (luft) here:https://books.google.es/books?id=yCDGFlP3toUC&pg=PA248&lpg=PA248&dq=HORIBA+AQM-10&source=bl&ots=-uIdMsd0Yg&sig=U34lJHqy1fXno_AwV36rZIKCwuE&hl=en&sa=X&ved=0ahUKEwjvlL2IxuLbAhUJthQKHZCQB90Q6AEIQjAC#v=onepage&q=HORIBA%20AQM-10&f=false', 'measuring_instrument_manual_name':np.NaN}, 
    'Signal 418':       {'methodology':'non-dispersive infrared absorption (luft)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO','CH4','CO2','NH3','NO','SO2','H2O'], 'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':{'CO':'1000.0','CH4':'2000.0','CO2':'300.0','NH3':'1000.0','NO':'5000.0','SO2':'2000.0','H2O':'5000.0'}, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.1%', 'reported_precision':np.NaN, 'documented_accuracy':'0.5%', 'reported_accuracy':np.NaN, 'documented_zero_drift':'0.5%/day', 'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%/day', 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.2-2.0', 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Signal_418_Specs.pdf'},
    'Teledyne 8310':    {'methodology':'non-dispersive infrared absorption (luft)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'],                                    'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':np.NaN,                                                                                                  'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,     'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,     'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses non-dispersive infrared absorption (luft) here:https://books.google.es/books?id=yCDGFlP3toUC&pg=PA248&lpg=PA248&dq=HORIBA+AQM-10&source=bl&ots=-uIdMsd0Yg&sig=U34lJHqy1fXno_AwV36rZIKCwuE&hl=en&sa=X&ved=0ahUKEwjvlL2IxuLbAhUJthQKHZCQB90Q6AEIQjAC#v=onepage&q=HORIBA%20AQM-10&f=false', 'measuring_instrument_manual_name':np.NaN},
    'Teledyne 8830':    {'methodology':'non-dispersive infrared absorption (luft)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'],                                    'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':np.NaN,                                                                                                  'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,     'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,     'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses non-dispersive infrared absorption here (assume luft):https://books.google.es/books?id=7eL1Rd8hB-0C&pg=PA418&lpg=PA418&dq=monitor+labs+8830&source=bl&ots=GlI29t_UB9&sig=uqlixhqiWdhaQf8BvZ5GQmu_1gw&hl=en&sa=X&ved=0ahUKEwi2rNOCweLbAhVDrRQKHVf7AsoQ6AEIVDAF#v=onepage&q=monitor%20labs%208830&f=false', 'measuring_instrument_manual_name':np.NaN, 'measuring_assumption':True},
#---No specific instrument name
    'Non-Dispersive Infrared Absorption (Luft)':{'methodology':'non-dispersive infrared absorption (luft)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO','CH4','CO2','NH3','NO','SO2','H2O'], 'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#non-dispersive infrared absorption (gas-filter correlation)

#Operates on the principle that a specific species efficiently absorbs IR light at a known wavelength in the IR range. This is the case for CO, at 4.7um
#The degree to which the IR light is absorbed by a specific species is directly related to the species concentration as described by the Beer-Lambert Law (I/Io = e−KLC; K = molecular absorption coefficient at STP, L = optical path length of cell, C = species concentration , I = light intensity of sample gas, Io = light intensity of sample without measured species (reference gas) ).
#The methodology also applies the gas-filter correlation technique. This is applied as water vapour and CO2 absorb light at 4.7 um as well as CO, and ensures measurements are specific for CO.

#Typical measurement operation for CO:
#1. The sample is drawn into the through the sample bulkhead
#2. IR radiation from a IR source (at 4.7 um) is passed through a multi-pass cell length with sample gas. The sample cell uses mirrors at each end to reflect the IR beam back and forth through the sample gas a number of times. The total length that the reflected light travels is directly related to the intended sensitivity of the instrument. The lower the concentrations the instrument is designed to detect, the longer the light path must be in order to create detectable levels of attenuation.
#A gas-filter correlation wheel is combined with this system. This wheel contains three parts to increase measurement accuracy: CO, N2 and the mask:
#    The CO window contains saturation (40 %) of CO which acts as a reference beam – absorbing a known amount of light.
#    The N2 window, containing 100 % N2, does not absorb IR at 4.7 um at all and is used during normal CO measurement.
#    The mask totally blocks the light source and is used to determine background signals, the strength of other signals relative to each other and the background.
#3. The IR source is passed through the rotating filter wheel before entering the multi-pass cell: 
#    When the light beam is intercepted by the CO portion of the wheel, the carbon monoxide, which is at relatively high concentration, absorbs all wavelengths that are co-specific, creating and emanating light beam that is “CO blind”. This “optically scrubbed” portion of the beam is designated the Reference beam (Io).
#    The nitrogen-intercepted portion of the beam, which is “CO sensitive”, is designated the sample beam (I). 
#    In the absence of CO no attenuation of the Io and I portion of the beam will occur.
#    Species other than CO will cause an equal attenuation of both I and Io portions of the beam. 
#    If CO is present in the air being sampled, then the beam portion generated by the CO side of the wheel will experience no attenuation, but the beam portion generated by the N2 portion of the wheel will be attenuated to the degree dictated by the level of CO concentration.
#    When the light beam is intercepted by the mask, this is labelled the "dark portion". This provides a zero light reference point to compensate for the "dark current" of the detector.
#4. A band pass filter is fitted on the exit of the sample cell, allowing only 4.7 um wavelength light to pass.
#5. The infrared radiation then exits the optical cell and falls on an IR photo-detector. 
#6. The intensities of 4.7 um light transmitted through the sample (I) and CO-free reference beams (Io) are related to the concentration (C) of CO in the sample gas stream according to the Beer-Lambert Law.
#7. The analyser's microprocessor records the imbalance between the I and Io beams portions and performs a data linearisation, calculating the absolute concentration in molecules cm-3, and is then converted to a mixing ratio using in-instrument measured sample temperature and pressure.

#Known Interferences:
#Water vapour and CO2

    'Dasibi 3003':           {'methodology':'non-dispersive infrared absorption (gas-filter correlation)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'], 'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':np.NaN,  'documented_upper_limit_of_detection':np.NaN,       'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':np.NaN,      'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,      'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,            'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses non-dispersive infrared absorption (gas-filter correlation) here:https://books.google.es/books?id=yCDGFlP3toUC&pg=PA248&lpg=PA248&dq=HORIBA+AQM-10&source=bl&ots=-uIdMsd0Yg&sig=U34lJHqy1fXno_AwV36rZIKCwuE&hl=en&sa=X&ved=0ahUKEwjvlL2IxuLbAhUJthQKHZCQB90Q6AEIQjAC#v=onepage&q=HORIBA%20AQM-10&f=false', 'measuring_instrument_manual_name':np.NaN},
    'Dasibi 3008':           {'methodology':'non-dispersive infrared absorption (gas-filter correlation)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'], 'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':'100.0', 'documented_upper_limit_of_detection':'1000000.0',  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'100.0',     'reported_precision':np.NaN, 'documented_accuracy':'1.0%',      'reported_accuracy':np.NaN, 'documented_zero_drift':'200.0/day', 'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/day',        'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.0',     'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Dasibi_3008_Manual.pdf'},
    'DKK-TOA GFC-311E':      {'methodology':'non-dispersive infrared absorption (gas-filter correlation)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'], 'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':'400.0', 'documented_upper_limit_of_detection':'100000.0',   'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':np.NaN,      'reported_accuracy':np.NaN, 'documented_zero_drift':'100.0/day', 'reported_zero_drift':np.NaN, 'documented_span_drift':'2.0%/day',        'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'DKK-TOA_GFC-311E_Specs.pdf'},
    'Ecotech EC9830T':       {'methodology':'non-dispersive infrared absorption (gas-filter correlation)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'], 'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':'20.0',  'documented_upper_limit_of_detection':'20000.0',    'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'20/0.1%',   'reported_precision':np.NaN, 'documented_accuracy':'1.0%',      'reported_accuracy':np.NaN, 'documented_zero_drift':'50.0/day',  'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%/day',        'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.0',     'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Ecotech_EC9830T_Specs.pdf'},
    'Ecotech ML9830':        {'methodology':'non-dispersive infrared absorption (gas-filter correlation)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'], 'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':np.NaN,  'documented_upper_limit_of_detection':np.NaN,       'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':np.NaN,      'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,      'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,            'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses non-dispersive infrared absorption (gas-filter correlation) here:https://www.ecotech.com/wp-content/uploads/2015/03/EC9830-Service-Manual.pdf', 'measuring_instrument_manual_name':np.NaN},
    'Ecotech Serinus30':     {'methodology':'non-dispersive infrared absorption (gas-filter correlation)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'], 'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':'40.0',  'documented_upper_limit_of_detection':'200000.0',   'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'20/0.1%',   'reported_precision':np.NaN, 'documented_accuracy':'1.0%',      'reported_accuracy':np.NaN, 'documented_zero_drift':'100.0/day', 'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%/day',        'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.0',     'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Ecotech_Serinus30_Manual.pdf'},
    'Environnement SA CO11M':{'methodology':'non-dispersive infrared absorption (gas-filter correlation)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'], 'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':np.NaN,  'documented_upper_limit_of_detection':np.NaN,       'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':np.NaN,      'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,      'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,            'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':':No manual or specifications available but confirmation it is uses non-dispersive infrared absorption here (assume gas-filter correlation, as next version of instrument uses it):http://cdiac.ess-dive.lbl.gov/programs/NARSTO/Compendium_combined.pdf', 'measuring_instrument_manual_name':np.NaN, 'measuring_assumption':True},
    'Environnement SA CO12M':{'methodology':'non-dispersive infrared absorption (gas-filter correlation)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'], 'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':'40.0',  'documented_upper_limit_of_detection':'200000.0',   'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':'1.0%',      'reported_accuracy':np.NaN, 'documented_zero_drift':'500.0/day', 'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%/day',        'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.0',     'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'EnvironnementSA_CO12M_Specs.pdf'},
    'SIR S-5006':            {'methodology':'non-dispersive infrared absorption (gas-filter correlation)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'], 'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':'40.0',  'documented_upper_limit_of_detection':'200000.0',   'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'100.0',     'reported_precision':np.NaN, 'documented_accuracy':'1.0%',      'reported_accuracy':np.NaN, 'documented_zero_drift':'10.0/day',  'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%/day',        'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.0',     'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'SIR_S-5006_Specs.pdf'},
    'Teledyne 300':          {'methodology':'non-dispersive infrared absorption (gas-filter correlation)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'], 'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':np.NaN,  'documented_upper_limit_of_detection':np.NaN,       'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':np.NaN,      'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,      'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,            'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses non-dispersive infrared absorption here (assume gas-filter correlation, as other instruments with very similar codes use it):http://cdiac.ess-dive.lbl.gov/programs/NARSTO/Compendium_combined.pdf', 'measuring_instrument_manual_name':np.NaN, 'measuring_assumption':True}, 
    'Teledyne 300E':         {'methodology':'non-dispersive infrared absorption (gas-filter correlation)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'], 'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':'40.0',  'documented_upper_limit_of_detection':'1000000.0',  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5%/200',  'reported_precision':np.NaN, 'documented_accuracy':'1.0%',      'reported_accuracy':np.NaN, 'documented_zero_drift':'100.0/day', 'reported_zero_drift':np.NaN, 'documented_span_drift':'100.0/0.5%/day',  'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.8',     'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Teledyne_300E_Manual.pdf'},
    'Teledyne 300EM':        {'methodology':'non-dispersive infrared absorption (gas-filter correlation)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'], 'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':'200.0', 'documented_upper_limit_of_detection':'5000000.0',  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.0%/1000', 'reported_precision':np.NaN, 'documented_accuracy':'1.0%',      'reported_accuracy':np.NaN, 'documented_zero_drift':'500.0/day', 'reported_zero_drift':np.NaN, 'documented_span_drift':'500.0',           'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.8',     'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Teledyne_300E_Manual.pdf'},
    'Teledyne 300EU':        {'methodology':'non-dispersive infrared absorption (gas-filter correlation)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'], 'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':'20.0',  'documented_upper_limit_of_detection':'100000.0',   'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5%',      'reported_precision':np.NaN, 'documented_accuracy':'1.0%',      'reported_accuracy':np.NaN, 'documented_zero_drift':'20.0/day',  'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%/day',        'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.8',     'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Teledyne_300EU_Addendum.pdf'},
    'Teledyne T300':         {'methodology':'non-dispersive infrared absorption (gas-filter correlation)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'], 'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':'40.0',  'documented_upper_limit_of_detection':'1000000.0',  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5%/200',  'reported_precision':np.NaN, 'documented_accuracy':'1.0%',      'reported_accuracy':np.NaN, 'documented_zero_drift':'100.0/day', 'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%/day',        'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.8',     'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Teledyne_T300_Manual.pdf'},
    'Teledyne T300M':        {'methodology':'non-dispersive infrared absorption (gas-filter correlation)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'], 'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':'200.0', 'documented_upper_limit_of_detection':'1000000.0',  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.0%/1000', 'reported_precision':np.NaN, 'documented_accuracy':'1.0%',      'reported_accuracy':np.NaN, 'documented_zero_drift':'500.0/day', 'reported_zero_drift':np.NaN, 'documented_span_drift':'500.0/day',       'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.8',     'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Teledyne_T300_Manual.pdf'},
    'Teledyne T300U':        {'methodology':'non-dispersive infrared absorption (gas-filter correlation)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'], 'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':'20.0',  'documented_upper_limit_of_detection':'100000.0',   'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'0.5%',      'reported_precision':np.NaN, 'documented_accuracy':'1.0%',      'reported_accuracy':np.NaN, 'documented_zero_drift':'20.0/day',  'reported_zero_drift':np.NaN, 'documented_span_drift':'0.5%>=500.0/day', 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.8',     'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Teledyne_T300U_Addendum.pdf'},
    'Thermo 48':             {'methodology':'non-dispersive infrared absorption (gas-filter correlation)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'], 'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':np.NaN,  'documented_upper_limit_of_detection':np.NaN,       'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':np.NaN,      'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,      'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,            'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses non-dispersive infrared absorption (gas-filter correlation) here:https://books.google.es/books?id=yCDGFlP3toUC&pg=PA248&lpg=PA248&dq=HORIBA+AQM-10&source=bl&ots=-uIdMsd0Yg&sig=U34lJHqy1fXno_AwV36rZIKCwuE&hl=en&sa=X&ved=0ahUKEwjvlL2IxuLbAhUJthQKHZCQB90Q6AEIQjAC#v=onepage&q=HORIBA%20AQM-10&f=false', 'measuring_instrument_manual_name':np.NaN},
    'Thermo 48C':            {'methodology':'non-dispersive infrared absorption (gas-filter correlation)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'], 'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':'40.0',  'documented_upper_limit_of_detection':'10000000.0', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'100.0',     'reported_precision':np.NaN, 'documented_accuracy':'1.0%',      'reported_accuracy':np.NaN, 'documented_zero_drift':'100.0/day', 'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/day',        'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.5-2.0', 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Thermo_48C_Specs.pdf'},
    'Thermo 48C-TL':         {'methodology':'non-dispersive infrared absorption (gas-filter correlation)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'], 'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':np.NaN,  'documented_upper_limit_of_detection':np.NaN,       'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':np.NaN,      'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN,      'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN,            'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN,    'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':'No manual or specifications available but confirmation it is uses non-dispersive infrared absorption (gas-filter correlation) here:http://www.broward.org/Environment/AirQuality/AirMonitoring/Pages/AmbientAirMonitoringInstruments.aspx', 'measuring_instrument_manual_name':np.NaN},
    'Thermo 48i-TLE':        {'methodology':'non-dispersive infrared absorption (gas-filter correlation)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'], 'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':'40.0',  'documented_upper_limit_of_detection':'1000000.0',  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN,      'reported_precision':np.NaN, 'documented_accuracy':'1.0%/40.0', 'reported_accuracy':np.NaN, 'documented_zero_drift':'100.0/day', 'reported_zero_drift':np.NaN, 'documented_span_drift':'1.0%/day',        'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.5',     'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Thermo_48i-TLE_Manual.pdf'},
#---No specific instrument name
    'Non-Dispersive Infrared Absorption (Gas-Filter Correlation)':{'methodology':'non-dispersive infrared absorption (gas-filter correlation)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'], 'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#non-dispersive infrared absorption (cross-flow modulation)

#Operates on the principle that a specific species efficiently absorbs IR light at a known wavelength in the IR range. This is the case for CO, at 4.7um.
#The degree to which the IR light is absorbed by a specific species is directly related to the species concentration as described by the Beer-Lambert Law (I/Io = e−KLC; K = molecular absorption coefficient at STP, L = optical path length of cell, C = species concentration , I = light intensity of sample gas, Io = light intensity of sample without measured species (reference gas) ).
#The methodology also applies the cross-flow modulation technique. This is applied as water vapour and CO2 absorb light at 4.7 um as well as CO, and ensures measurements are specific for CO.

#Typical measurement operation for CO:
#1. The sample is drawn into the through the sample bulkhead
#2. IR radiation from a IR source (at 4.7 um) is passed through a measurement cell.
#3. Fixed amounts of the sample gas (I) and the reference gas (Io) are injected alternately into the measurement cell (cross-flow modulation). This has the advantage over the gas-filter correlation technique that, in principle, when analyzing small amounts of gas there is no generation of zero-drift. An additional advantage is that the elimination of rotary sectors precludes the need for optical adjustment. These features assure greatly improved stability over long periods of measurement. The reference gas is generated by purging the sample through an oxidation process, where an oxidizing catalyst burns the CO to CO2. These features eliminate interference from other elements, resulting in highly accurate measurements.
#4. The infrared radiation then exits the optical cell and falls on an IR photo-detector. 
#5. The intensities of 4.7 um light transmitted through the sample (I) and CO-free reference beams (Io) are related to the concentration (C) of CO in the sample gas stream according to the Beer-Lambert Law.
#6. The analyzer’s microprocessor calculates the absolute concentration in molecules cm-3, and is then converted to a mixing ratio using in-instrument measured sample temperature and pressure.

#Known Interferences:
#Water vapour and CO2

    'Horiba APMA360':{'methodology':'non-dispersive infrared absorption (cross-flow modulation)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'], 'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':'20.0',  'documented_upper_limit_of_detection':'100000.0', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.0%', 'reported_precision':np.NaN, 'documented_accuracy':'1.0%', 'reported_accuracy':np.NaN, 'documented_zero_drift':'20.0/day', 'reported_zero_drift':np.NaN, 'documented_span_drift':'20.0/day', 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.5', 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Horiba_APMA360_Specs.pdf'}, 
    'Horiba APMA370':{'methodology':'non-dispersive infrared absorption (cross-flow modulation)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'], 'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':'20.0',  'documented_upper_limit_of_detection':'100000.0', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.0%', 'reported_precision':np.NaN, 'documented_accuracy':'1.0%', 'reported_accuracy':np.NaN, 'documented_zero_drift':'20.0/day', 'reported_zero_drift':np.NaN, 'documented_span_drift':'20.0/day', 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.5', 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Horiba_APMA370_Manual.pdf'},
#---No specific instrument name
    'Non-Dispersive Infrared Absorption (Cross-Flow Modulation)':{'methodology':'non-dispersive infrared absorption (cross-flow modulation)', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'], 'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#dual isotope fluorescence   

#This method is an adaption of non-dispersive infrared absorption for the measurement of CO.
#A broadband of infrared source is used to stimulate fluorescence of C16O and C18O, contained in a sealed cell.
#The stimulated radiation is passed first through a filter that alternately passes radiation from only one of the isotopic sources and is then passed through the sample cell to a solid state detector.
#Because almost all atmospheric CO consists of the C16O isotope, only radiation produced by the C16O source will be absorbed by the CO in the sample.
#The radiation produced by the C18O source is used as a reference beam to account for interference with H2O, or other interferants.

#Known Interferences:
#Water vapour and CO2

#---No specific instrument name
    'Dual Isotope Fluorescence':{'methodology':'dual isotope fluorescence', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':np.NaN, 'measured_parameters':['CO'], 'qa_accepted_parameters':['CO'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':'See Further details:https://books.google.es/books?id=V0oEzMp7axAC&pg=PA385&lpg=PA385&dq=dual+isotope+fluorescence+carbon+monoxide&source=bl&ots=azm5b16AqC&sig=pDZOFxw9LqZxQMsW8wOSxKv1YSE&hl=en&sa=X&ved=0ahUKEwiR7o2iyOLbAhVEtRQKHSFECGEQ6AEINjAB#v=onepage&q=dual%20isotope%20fluorescence%20carbon%20monoxide&f=false', 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},
#------------------------------------
#gas chromatography (GC)

#Gas chromatography (GC) is a method used for separating and analysing compounds that can be vaporized without decomposition.
#A sample solution is injected into a instrument, entering a gas stream which transports the sample (mobile phase) into a separation tube known as the "column".
#The mobile phase is a carrier gas, usually an inert gas such as helium or an unreactive gas such as nitrogen. Helium remains the most commonly used carrier gas in about 90% of instruments although hydrogen is preferred for improved separations.
#The column consists of a microscopic layer of liquid or polymer on an inert solid support a microscopic layer of liquid or polymer on an inert solid support (stationary phase), inside a piece of glass or metal tubing, placed inside a piece of glass or metal tubing.
#Once inside the column, the gaseous compounds being analysed interact with the walls of the column coated with a stationary phase. This causes each compound to elute at a different time, known as the retention time of the compound. 
#The comparison of retention times is what gives GC its analytical usefulness.
#If greater separation of compounds is required, multiple distinct columns can be used for this purpose.

#Almost all methods involving GC are typically paired with a detector of some description to measure the GC separated components.
#These detectors are various in number, and are outlined in detail below.
#Typically GC-detector analysis is used for the separation of short lived hydrocarbon species. 

#Typically sample processing is undertaken before the passing of samples into the GC. 
#Typically this emcompasses the preconcentration, or passing samples through sorbent tubes.

#If no other information is given, it is assumed all GC-detector analysis is done via injection and do not operate online (i.e. not continuously).

#------------------------------------
#gas chromatography - electron capture detection (GC-ECD)

#The Electron Capture Detector (ECD) is a selective detector for electro-negative compounds, especially halogens.
#A beta-ray radio active source which can ionize the carrier gas is located in the detector. 
#A current is produced between two electrodes in the detector supplied with a potential difference and this is monitored as a continuous background current. 
#When there are electro-negative components present in the carrier gas, the background current is reduced because these components capture electrons.
#This change in the background current is registered as 'holes' in the background. 
#Since it concerns very small holes, the background current should not be too high. 
#Therefore the (linear) dynamic range of the ECD is often limited.

    'Gas Chromatography - Electron Capture Detection': {'methodology':'gas chromatography - electron capture detection', 'measuring_instrument_sampling':'Injection', 'sample_preparation':np.NaN, 'measured_parameters':['PAN'], 'qa_accepted_parameters':['PAN'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},
#------------------------------------
#gas chromatography - flame ionisation detection (GC-FID)

#Flame ionisation detection operates in the exact same way as it does as a standalone method, only in this instance coupled to a GC.
#It is based on the principle of the generation of an electrical current that is proportional to the rate of ion formation, dependent on the concentrations of species in the sample gas.

#A limitation of GC-FID is that the retention time is merely characteristic of a compound and certainly not adjudicative or confirmatory of the specificity of that compound.
#This means a peak at a given retention time is not a unique qualitative measure (to the exclusion of every other compound in the universe).

    'Gas Chromatography - Flame Ionisation Detection':{'methodology':'gas chromatography - flame ionisation detection', 'measuring_instrument_sampling':'Injection', 'sample_preparation':np.NaN, 'measured_parameters':['ISOPRENE'], 'qa_accepted_parameters':['ISOPRENE'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#gas chromatography - dual flame ionisation detection (GC-DualFID)

#To limit the main limitation of GC-FID, i.e. lack of specificity, it is possible to add another GC column and analyse the sample concurrently on both columns.
#This can be done by adding a y-splitter that will take the single injection made into the injector port and divide the sample into two different pathways with one part of the sample going to one column for analysis and the second part going to another column for analysis.
#The two different columns are given two different stationary phases, which provides different separation of the analytes (both in terms of retention time and possibly even eluting order). 
#This different eluting order and different retention times only minimises, but does not entirely eliminate the possibility of co-elution as again, the resolving (separating) power of the method is only determined by one non-unique measure which is the two retention times. 
#Even though there is a change in the eluting order potentially and the retention times are different based upon the stationary phase composition, again, remains the basic limitation of GC-FID remains in that a retention time is merely characteristic of the analyte, but is certainly not confirmatory.
#With dual detectors, the concentration of the analyte(s) of interest is determined from two calibration curves, and can serve as quantitative confirmation.

    'Gas Chromatography - Dual Flame Ionisation Detection':{'methodology':'gas chromatography - dual flame ionisation detection', 'measuring_instrument_sampling':'Injection', 'sample_preparation':np.NaN, 'measured_parameters':['ISOPRENE'], 'qa_accepted_parameters':['ISOPRENE'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#gas chromatography - fourier transform infrared spectroscopy (GC-FTIR)
    
#Fourier Transform Infrared Spectroscopy (FTIR) is an analytical technique used to identify organic (and in some cases inorganic) materials. 
#This technique measures the absorption of infrared radiation by the sample material versus wavelength. 
#The infrared absorption bands identify molecular components and structures.
#When a material is irradiated with infrared radiation, absorbed IR radiation usually excites molecules into a higher vibrational state. 
#The wavelength of light absorbed by a particular molecule is a function of the energy difference between the at-rest and excited vibrational states. 
#The wavelengths that are absorbed by the sample are characteristic of its molecular structure.
#The FTIR spectrometer uses an interferometer to modulate the wavelength from a broadband infrared source. 
#A detector measures the intensity of transmitted or reflected light as a function of its wavelength. 
#The signal obtained from the detector is an interferogram, which must be analyzed with a computer using Fourier transforms to obtain a single-beam infrared spectrum. 
#The FTIR spectra are usually presented as plots of intensity versus wavenumber (in cm-1). Wavenumber is the reciprocal of the wavelength. 
#The intensity can be plotted as the percentage of light transmittance or absorbance at each wavenumber.
    
    'Gas Chromatography - Fourier Transform Infrared Spectroscopy':{'methodology':'gas chromatography - fourier transform infrared spectroscopy', 'measuring_instrument_sampling':'Injection', 'sample_preparation':np.NaN, 'measured_parameters':['ISOPRENE'], 'qa_accepted_parameters':['ISOPRENE'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#gas chromatography - mass spectrometry (GC-MS)

#One of the most common detector types is a mass spectrometer.
#Mass spectrometry is the study of matter through the formation of gas-phase ions (with or without fragmentation) that are detected and characterised by their mass to charge ratios (m/z) and relative abundances. 
#The technique basically studies the effect of ionizing energy on molecules. It depends upon chemical reactions in the gas phase in which sample molecules are consumed during the formation of ionic and neutral species.
#A mass spectrometer generates multiple ions from the sample under investigation, it then separates them according to their specific mass-to-charge ratio (m/z), and then records the relative abundance of each ion type.
#The first step in the mass spectrometric analysis of compounds is the production of gas phase ions of the compound, basically by electron ionization. 
#This molecular ion undergoes fragmentation. Each primary product ion derived from the molecular ion, in turn, undergoes fragmentation, and so on. 
#The ions are separated in the mass spectrometer according to their mass-to-charge ratio, and are detected in proportion to their abundance. 
#A mass spectrum of the molecule is thus produced. It displays the result in the form of a plot of ion abundance versus mass-to-charge ratio. 
#Ions provide information concerning the nature and the structure of their precursor molecule. 
#In the spectrum of a pure compound, the molecular ion, if present, appears at the highest value of m/z (followed by ions containing heavier isotopes) and gives the molecular mass of the compound.

#There are a variety of different mass spectrometer types (almost never reported in observational data). 
#The most important difference among various mass spectrometers is the type of the analyser. 
#It is a fundamental characteristic of an instrument, and can not be modified. 
#The main analyzer types are: quadrupole, ion trap, time-of-flight (TOF), sector and Fourier-transform (FT) type instruments. 
#Some analysers are inherently capable for MS–MS (like ion trap or FT-MS), some others can be connected in tandem, offering MS–MS capabilities. 
#The most common analyzers (quadrupoles, sectors and in most respect ion traps) pass one ion (a given m / z ratio) at any one time, and filter out all other ions (which are lost for analysis).

#To obtain a mass spectrum, the analyser scans through the mass range of interest. 
#The consequence of this scanning is, that the sensitivity of detecting a given ion is much less compared to the case, when only a given mass is monitored (when the analyser stands still to pass only one ion). 
#These analyzers can be used in two ways: Either monitoring a given ion (with full sensitivity), or scanning the mass range (with loss of sensitivity) to obtain a mass spectrum. 
#Other analyzer types (TOF, FT-MS, in some respect ion traps and special sector instruments) can simultaneously detect all ions in a mass range, so there is no need for scanning. 
#In this case the full sensitivity is obtained irrespectively if one ion or a full mass spectrum is studied. 
#At present quadrupole-type instruments are most widespread. These are simple to use, cheap and rugged, good for basic GC–MS studies and for quantitation.

#In many instances the phrase 'mass selective detector' or 'MSD' is be used in place of mass spectrometer.
#However, there is no fundamental difference between mass selective detection and mass spectrometry; the name 'mass selective detection' is part of a marketing strategy, and implies a simple, relatively cheap instrument.
#Therefore all reported instances of MSD are grouped under mass spectrometry.

    'Gas Chromatography - Mass Spectrometry':{'methodology':'gas chromatography - mass spectrometry', 'measuring_instrument_sampling':'Injection', 'sample_preparation':np.NaN, 'measured_parameters':['ISOPRENE'], 'qa_accepted_parameters':['ISOPRENE'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#gas chromatography - direct temperature resolved mass spectrometry (GC-DTMS) 
    
#Direct Temperature Resolved Mass Spectrometry comprises of thermal depolymerization of compounds into smaller fragments that are either immediately analyzed by mass spectrometry.
#This technique has the advantage that compounds with high boiling points are prevented from condensation on 'cold' surfaces.
#The method is capable of detecting both extractable and non-extractable more complex organic fractions.
#It is typically used to give detailed information about a broad range of organic compounds such as lipids, waxes, terpenoids, polynuclear aromatic compounds, oligosaccharides, small peptides, protein fragments, and larger more condensed polymeric structures resulting from charred foodstuffs.
    
    'Gas Chromatography - Direct Temperature Resolved Mass Spectrometry':{'methodology':'gas chromatography - direct temperature resolved mass spectrometry', 'measuring_instrument_sampling':'Injection', 'sample_preparation':np.NaN, 'measured_parameters':['ISOPRENE'], 'qa_accepted_parameters':['ISOPRENE'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#gas chromatography - mass spectrometry - flame ionisation detection (GC-MS-FID)

#In some instances, the simultaneous application of different detectors is extremely advantageous.
#For example, the combination of an a flame ionisation detector (which has a wide quantitation response range) with a mass spectrometer (which obtains qualitative information of unknown compounds) enables identification of volatile and semi-volatile compounds at trace levels.
#A splitter is applied after the GC column, splitting output to an FID and MS detector. 
#Using such a system enables users to obtain both a TIC (Total Ion Chromatogram) and FID chromatogram at the same time, giving the advantages of both detection types simultaneously.
#By acquiring abundant information at the same time, the detector splitting system saves both cost for analytical instruments and columns, and operators' time.

    'Gas Chromatography - Mass Spectrometry - Flame Ionisation Detection':{'methodology':'gas chromatography - mass spectrometry - flame ionisation detection', 'measuring_instrument_sampling':'Injection', 'sample_preparation':np.NaN, 'measured_parameters':['ISOPRENE'], 'qa_accepted_parameters':['ISOPRENE'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#gas chromatography - fourier transform infrared spectroscopy - mass spectrometry (GC-FTIR-MS) 
    
#In the same way as GC-MS-FID, simultaneous detection using FTIR and MS detectors through splitting of GC output gives simultaneous advantage of both detection types. 
    
    'Gas Chromatography - Fourier Transform Infrared Spectroscopy - Mass Spectrometry':{'methodology':'gas chromatography - fourier transform infrared spectroscopy - mass spectrometry', 'measuring_instrument_sampling':'Injection', 'sample_preparation':np.NaN, 'measured_parameters':['ISOPRENE'], 'qa_accepted_parameters':['ISOPRENE'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#gas chromatography - unknown detection (GC-?)

    'Gas Chromatography - Unknown Detection':{'methodology':'gas chromatography - unknown detection', 'measuring_instrument_sampling':'Injection', 'sample_preparation':np.NaN, 'measured_parameters':['ISOPRENE'], 'qa_accepted_parameters':['ISOPRENE'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#proton transfer reaction

#An alternative to using gas chromatography for the separation of compounds is proton transfer reaction. 
#The main advantage of proton transfer reaction is that in most of cases it does not induce any significant fragmentation, and when it does only few fragments are produced. 
#Soft-ionisation results in only one or two characteristic ions, and the matrix of signals is much less complex than in other mass spectrometric techniques.
#Upon entering a PTR device, gas-phase molecules are ionised (by an ionisation source), transferring a proton (H3O+, O2+, NO+, or others) to the molecules of interest.
#For the proton transfer reaction to occur, the ionised molecule must have a higher proton affinity than the transferred proton (i.e. H3O+).
#Fast switching between reagent ions can also be used to separate isomeric compounds (molecules containing same atoms, but having different conformation), which have different reactivity with the various reagent ions.
#The ions produced in this reaction are subsequently detected by a mass analyser.
#Using PTR, comes with the advantage that ambient air can be directly sampled, without any prior sample processing (i.e. preconcentration). 

#------------------------------------
#proton transfer reaction - mass spectrometry (PTR-MS)

#Almost always PTR is coupled with a mass spectrometer for detection (PTR-MS).
#Proton Transfer Reaction - Mass Spectrometry characterises compounds according to their mass-to-charge ratio. 
#A great advantage of PTR-MS is that common air constituents (N2, O2) have low proton affinities and do not react, thus no diluting buffer gas is required.
#PTR-MS is the most widely used method for real-time monitoring of volatile organic compounds (VOCs) at low concentrations.

#Unless another specific detector is stated, where Proton Transfer Reaction is given as a methodology, it will be assumed that it uses Mass Spectrometry detection.

    'Proton Transfer Reaction - Mass Spectrometry':{'methodology':'proton transfer reaction - mass spectrometry', 'measuring_instrument_sampling':'Injection', 'sample_preparation':np.NaN, 'measured_parameters':['ISOPRENE'], 'qa_accepted_parameters':['ISOPRENE'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#Passive methods (colorimetry, spectrophotometry, ion chromatography, titration)

#It is not always possible to measure atmospheric composition using a automatic, continuous methodology. 
#Typically automated instrumentation is expensive, needs dedicated laboratory space, and requires regular measuremental maintenance.
#There is a growing trend in the use of passive methodologies, which are much cheaper, require less maintenance and can be used in high volume. 

#These methods typically involve 2 or more sample steps. Typically these are:
#1. Air is sampled passively, and a desired compound(s) is first trapped (through either physical or chemical means) (passive phase).
#2. The trapped species concentration is determined in a laboratory, using a suitable methodology (typically done in batch) (analysis phase). 

#The in-lab analysis phase methodologies are almost always one of the following: 
#1. colorimetry
#2. spectrophotometry
#3. ion chromatography 
#4. titration

#---------------------
#colorimetry

#Colorimetry fundamentally refers to the determination of species concentrations based on the colour of a solution.
#Intrinsically, this is based on Beer-Lambert's law, according to which the absorption of light transmitted through the medium is directly proportional to the medium concentration.
#However, the way this colour is extrapolated to give a concentration, adds complexity to the definition of this method.
#In the most basic of senses the colour can be analysed manually, with the concentration directly extrapolated through a colour chart, or given through the length of colour stain on a glass tube from reagent reaction.
#The determination can be done in a more specific, automated fashion through the use of colorimeters.
#In a colorimeter, a beam of light with a specific wavelength is passed through a solution via a series of lenses, which navigate the colored light to the measuring device. 
#This analyses the color compared to an existing standard. A microprocessor then calculates the absorbance or percent transmittance.
#If the concentration of the solution is greater, more light will be absorbed, which can be identified by measuring the difference between the amount of light at its origin and that after passing the solution.
#Colorimeters are usually portable and use LED light sources and color filters. As a result, they operate at fixed wavelengths and can only accommodate tests that incorporate those wavelengths.   

#Unless additional information is given, make assumption colorimetry method uses instrumental injection of sample species, following chemical reaction with a reagent.

#---No specific instrument name
    'Colorimetry':{'methodology':'colorimetry', 'measuring_instrument_sampling':'Injection', 'sample_preparation':np.NaN, 'measured_parameters':['O3','NO','NO2','NOx','NH3','CO','SO2','HNO3'], 'qa_accepted_parameters':[], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},
    
#---------------------
#spectrophotometry

#Spectrophotometry is also based on Beer-Lambert's law, where the absorption of light transmitted through the medium is directly proportional to the medium concentration.
#A spectrophotometer is a photometer (a device for measuring light intensity) that can measure intensity as a function of the color, or more specifically, the wavelength of light.  
#Spectrophotometers are usually bench top instruments and use light sources that can produce a range of wavelengths, use monochromators to select for a desired wavelength. As a result, spectrophotometers can be used for a broad range of tests. 

#The distinction between spectrophotometry and colorimetry is not always clear. 
#Colorimeters and spectrophotometers both measure sample absorbance to determine analyte concentrations. 
#The main distinction is that a spectrophotometer can be set to measure % transmittance or absorbance over a wide range of wavelengths, whereas a colorimeter determines absorbance at specific, visible, wavelengths.

#Unless additional information is given, make assumption spectrophotometry method uses instrumental injection of sample species, following chemical reaction with a reagent.

#---No specific instrument name
    'Spectrophotometry':{'methodology':'spectrophotometry', 'measuring_instrument_sampling':'Injection', 'sample_preparation':np.NaN, 'measured_parameters':['O3','NO','NO2','NOx','NH3','CO','SO2','HNO3'], 'qa_accepted_parameters':[], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},
    
#---------------------
#ion chromatography

#Ion chromatography (or ion-exchange chromatography) is a chromatography process that separates ions and polar molecules based on their affinity to the ion exchanger. 
#It works on almost any kind of charged molecule—including large proteins, small nucleotides, and amino acids. However, ion chromatography must be done in conditions that are one unit away from the isoelectric point of a protein. 
#The two types of ion chromatography are anion-exchange and cation-exchange. 
#Cation-exchange chromatography is used when the molecule of interest is positively charged. The molecule is positively charged because the pH for chromatography is less than the pI. In this type of chromatography, the stationary phase is negatively charged and positively charged molecules are loaded to be attracted to it. 
#Anion-exchange chromatography is when the stationary phase is positively charged and negatively charged molecules (meaning that pH for chromatography is greater than the pI) are loaded to be attracted to it.

#Typical Operation:
#1. A sample of the mixture to be analyzed (analyte) is injected into a carrier fluid (the eluent).
#2. The combination is passed through a column containing a stationary fixed material (adsorbent).
#3. Compounds contained in the analyte are then partitioned between the stationary adsorbent and the moving eluent/analyte mixture.
#4. Different dissolved materials adhere to the adsorbent with different forces. The ones that adhere strongly are moved through the adsorbent more slowly as the eluent flows over them. As the eluent flows through the column the components of the analyte will move down the column at different speeds and therefore separate from one another.
#5. A detector is used to analyze the output at the end of the column. There are various detectors, typically they use an electrical conductivity detector.
#6. Each time analyte molecules/ions emerge from the chromatography column the detector generates a measurable signal which is usually printed out as a peak on the chromatogram.
#7. A suppressor is used to reduce the background conductance of the eluent and at the same time enhance the conductance of the sample ions.

#Not QA accepted measurement techniques for NO/NO2/NOx due to dominance of other more accurate techniques in measuring these species

    'Thermo ICS-2000':   {'methodology':'ion chromatography', 'measuring_instrument_sampling':'Injection', 'sample_preparation':np.NaN, 'measured_parameters':['NH3','SO2','HNO3','C','PM10_C','PM2.5_C','PM1_C','Cl-','PM10_Cl-','PM2.5_Cl-','PM1_Cl-','EC','PM10_EC','PM2.5_EC','PM1_EC','Na+','PM10_Na+','PM2.5_Na+','PM1_Na+','NH4+','PM10_NH4+','PM2.5_NH4+','PM1_NH4+','NO3-','PM10_NO3-','PM2.5_NO3-','PM1_NO3-','OC','PM10_OC','PM2.5_OC','PM1_OC','SO4--','PM10_SO4--','PM2.5_SO4--','PM1_SO4--'], 'qa_accepted_parameters':['NO','NO2','NOx','NH3','SO2','HNO3','C','PM10_C','PM2.5_C','PM1_C','Cl-','PM10_Cl-','PM2.5_Cl-','PM1_Cl-','EC','PM10_EC','PM2.5_EC','PM1_EC','Na+','PM10_Na+','PM2.5_Na+','PM1_Na+','NH4+','PM10_NH4+','PM2.5_NH4+','PM1_NH4+','NO3-','PM10_NO3-','PM2.5_NO3-','PM1_NO3-','OC','PM10_OC','PM2.5_OC','PM1_OC','SO4--','PM10_SO4--','PM2.5_SO4--','PM1_SO4--'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Thermo_ICS-2000_Manual.pdf'},
    'Thermo ICS-3000':   {'methodology':'ion chromatography', 'measuring_instrument_sampling':'Injection', 'sample_preparation':np.NaN, 'measured_parameters':['NH3','SO2','HNO3','C','PM10_C','PM2.5_C','PM1_C','Cl-','PM10_Cl-','PM2.5_Cl-','PM1_Cl-','EC','PM10_EC','PM2.5_EC','PM1_EC','Na+','PM10_Na+','PM2.5_Na+','PM1_Na+','NH4+','PM10_NH4+','PM2.5_NH4+','PM1_NH4+','NO3-','PM10_NO3-','PM2.5_NO3-','PM1_NO3-','OC','PM10_OC','PM2.5_OC','PM1_OC','SO4--','PM10_SO4--','PM2.5_SO4--','PM1_SO4--'], 'qa_accepted_parameters':['NO','NO2','NOx','NH3','SO2','HNO3','C','PM10_C','PM2.5_C','PM1_C','Cl-','PM10_Cl-','PM2.5_Cl-','PM1_Cl-','EC','PM10_EC','PM2.5_EC','PM1_EC','Na+','PM10_Na+','PM2.5_Na+','PM1_Na+','NH4+','PM10_NH4+','PM2.5_NH4+','PM1_NH4+','NO3-','PM10_NO3-','PM2.5_NO3-','PM1_NO3-','OC','PM10_OC','PM2.5_OC','PM1_OC','SO4--','PM10_SO4--','PM2.5_SO4--','PM1_SO4--'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Thermo_ICS-3000_Manual.pdf'},
   
#---No specific instrument name
    'Ion Chromatography':{'methodology':'ion chromatography', 'measuring_instrument_sampling':'Injection', 'sample_preparation':np.NaN, 'measured_parameters':['NH3','SO2','HNO3','C','PM10_C','PM2.5_C','PM1_C','Cl-','PM10_Cl-','PM2.5_Cl-','PM1_Cl-','EC','PM10_EC','PM2.5_EC','PM1_EC','Na+','PM10_Na+','PM2.5_Na+','PM1_Na+','NH4+','PM10_NH4+','PM2.5_NH4+','PM1_NH4+','NO3-','PM10_NO3-','PM2.5_NO3-','PM1_NO3-','OC','PM10_OC','PM2.5_OC','PM1_OC','SO4--','PM10_SO4--','PM2.5_SO4--','PM1_SO4--'], 'qa_accepted_parameters':['NO','NO2','NOx','NH3','SO2','HNO3','C','PM10_C','PM2.5_C','PM1_C','Cl-','PM10_Cl-','PM2.5_Cl-','PM1_Cl-','EC','PM10_EC','PM2.5_EC','PM1_EC','Na+','PM10_Na+','PM2.5_Na+','PM1_Na+','NH4+','PM10_NH4+','PM2.5_NH4+','PM1_NH4+','NO3-','PM10_NO3-','PM2.5_NO3-','PM1_NO3-','OC','PM10_OC','PM2.5_OC','PM1_OC','SO4--','PM10_SO4--','PM2.5_SO4--','PM1_SO4--'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':'Reference for NH3:https://www.atmos-meas-tech.net/7/2733/2014/amt-7-2733-2014.html', 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#---------------------
#titration

#Titration is a common laboratory method of quantitative chemical analysis that is used to determine the concentration of an identified analyte. 
#Since volume measurements play a key role in titration, it is also known as volumetric analysis. 
#A reagent, called the titrant or titrator is prepared as a standard solution. 
#A known concentration and volume of titrant reacts with a solution of analyte or titrand to determine concentration. 
#The volume of titrant reacted is called titration volume.
#Titration can be also done automatically, in a continuous process.

#Typical measurement operation:
#1. A typical titration begins with a beaker or Erlenmeyer flask containing a very precise volume of the analyte and a small amount of indicator (such as phenolphthalein) placed underneath a calibrated burette or chemistry pipetting syringe containing the titrant. 
#2. Small volumes of the titrant are then added to the analyte and indicator until the indicator changes color in reaction to the titrant saturation threshold, reflecting arrival at the endpoint of the titration. 
#3. Depending on the endpoint desired, single drops or less than a single drop of the titrant can make the difference between a permanent and temporary change in the indicator.    
#4. When the endpoint of the reaction is reached, the volume of reactant consumed is measured and used to calculate the concentration of analyte by: Ca = Ct*Vt*M / Va  ;where Ca is the concentration of the analyte, typically in molarity; Ct is the concentration of the titrant, typically in molarity; Vt is the volume of the titrant used, typically in liters; M is the mole ratio of the analyte and reactant from the balanced chemical equation; and Va is the volume of the analyte used, typically in liters.
    
#Unless additional information is given, make assumption titration uses instrumental injection of sample species, following chemical reaction with a reagent.

    'Titration':{'methodology':'titration', 'measuring_instrument_sampling':'Injection', 'sample_preparation':'Reagent Reaction', 'measured_parameters':['SO2'], 'qa_accepted_parameters':[], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':'More details for SO2:https://www3.epa.gov/ttnemc01/ctm/ctm013B.pdf', 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

##------------------------------------
#aerosol mass spectrometry (AMS)

#This method is a variation of the Mass Spectrometry method to analyse gas-phase species, specific for aerosols.
#In Aerosol Mass Spectrometry, aerosol particles are – together with a small fraction (10−7) of a carrier gas – directed onto the tungsten vaporizer, typically heated to a temperature of 550–600 ◦C.
#Non-refractory material flash-vaporises, and the emerging vapor is electron-impact-ionised (70 eV) for subsequent analysis with a quadrupole or a time-of-flight mass spectrometer.
#In addition to the measurement of the aerosol beam (“beam-open” mass spectrum), also the instrument background is measured with the aerosol beam blocked (“beam-closed” mass spectrum). 
#The particle contribution is calculated from the difference of both measurements (“difference” spectrum), assuming that all particle components vaporize quickly compared to the beam-open–beam-closed cycle length. 
#For calculation of mass concentrations of species from the difference spectrum, each individual m/z is associated with one or several of these species.
#For the standard analysis of the unit mass resolution spectra, these associations are listed in the “frag table”, which needs to be adapted for special measurement situations by the user. 
#Measurements with the high-resolution time-of-flight AMS (HR-ToF-AMS) allow the quantification of individual signals in the spectra with certain elemental composition.
#For measurements of the continental or urban background aerosol the assumptions behind this procedure are typically well met and the AMS provides robust quantitative information on the sub-micron aerosol composition. 
#However, under certain conditions, e.g., when measuring close to anthropogenic sources or in the marine environment, the limitations of these assumptions are sometimes reached and the standard analysis could result in misinterpretation of the mass spectra.
#The method can be performed online (sampling ambient air) or offline (through injection). 
#It is assumed unless otherwise stated that instrumental sampling is done via injection.

    'Aerosol Mass Spectrometry':{'methodology':'aerosol mass spectrometry', 'measuring_instrument_sampling':'Injection', 'sample_preparation':np.NaN, 'measured_parameters':[], 'qa_accepted_parameters':[], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#gravimetry

#An air pump draws ambient air at a constant flow rate into a specially shaped inlet where particulate matter is separated into size fractions. 
#Particulate matter is then collected on a filter. Each filter is weighed before and after use, to determine the net mass gain due to collected matter. 
#The total volume of air filtered is known from the constant air flow, and the difference in filter weights is used to calculate the particulate matter concentration in micrograms per cubic meter (μg/m3) of air.

#Known Interference:
#Particulate matter may be lost during filter handling and weighing procedures, especially if filter is exposed to warming.
#Gaseous species may contaminate filters.
#Humidity and absorbed water may be difficult to control both during operations and when handling filters.
#Removing filters and transporting to a lab for analysis may affect results. 
#Meteorological conditions may affect flow rate.

#---No specific instrument name
    'Gravimetry':{'methodology':'gravimetry', 'measuring_instrument_sampling':'Manual', 'sample_preparation':np.NaN, 'measured_parameters':['PM10','PM2.5','PM1'], 'qa_accepted_parameters':['PM10','PM2.5','PM1'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#tapered element oscillating microbalance (TEOM) - gravimetry

#The TEOM - Gravimetric method essentially involves a  true “gravimetric” instrument that draws (then heats) ambient air through a filter at constant flow rate, continuously weighing the filter and calculating near real-time mass concentrations of particulate matter
#The weighing principle used in the tapered element oscillating microbalance (TEOM) TEOM mass transducer is similar to that of a laboratory microbalance in that the mass change detected by the sensor is the result of the measurement of a change in a parameter (in this case, frequency) that is directly coupled via a physical law (or from first principles).

#Typical operation:
#1. Air is drawn through a tapered glass element with a filter attached. 
#2. The element oscillates according to a characteristic frequency, that decreases as mass accumulates on the attached filter. 
#3. Measurement of the change in frequency converts to measurement of the accumulated mass.

    'Thermo 1400ab':{'methodology':'tapered element oscillating microbalance - gravimetry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':'Filter', 'measured_parameters':['PM10','PM2.5','PM1'], 'qa_accepted_parameters':['PM10','PM2.5','PM1'], 'documented_lower_limit_of_detection':'0.06', 'documented_upper_limit_of_detection':'5000000', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'1.5', 'reported_precision':np.NaN, 'documented_accuracy':'0.75%', 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':'0.1', 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'0.5-4.0', 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Thermo_1400ab_Specs.pdf'},
    'Thermo 1405':  {'methodology':'tapered element oscillating microbalance - gravimetry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':'Filter', 'measured_parameters':['PM10','PM2.5','PM1'], 'qa_accepted_parameters':['PM10','PM2.5','PM1'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':'1000000', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'2.0', 'reported_precision':np.NaN, 'documented_accuracy':'0.75%', 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':'0.1', 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'3.0',     'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Thermo_1405_Specs.pdf'},
#---No specific instrument name
    'Tapered Element Oscillating Microbalance - Gravimetry':{'methodology':'tapered element oscillating microbalance - gravimetry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':'Filter', 'measured_parameters':['PM10','PM2.5','PM1'], 'qa_accepted_parameters':['PM10','PM2.5','PM1'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#tapered element oscillating microbalance - filter dynamics measurement system (TEOM-FDMS) - gravimetry

#The Filter Dynamics Measurement System (FDMS) is a hybrid of the TEOM system which is able to measure the semi-volatile fraction of airborne particulate matter. 
#This can be important in the study of primary and secondary PM and to ensure there are no losses of these semi volatile fractions due to sampling conditions. 

    'Thermo 1405-DF':{'methodology':'tapered element oscillating microbalance - filter dynamics measurement system - gravimetry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_processing':'Filter', 'measured_parameters':['PM10','PM2.5'], 'qa_accepted_parameters':['PM10','PM2.5'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':'1000000', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'2.0', 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':'0.1', 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.67-12.0', 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Thermo_1405-DF_Specs.pdf'},
#---No specific instrument name
    'Tapered Element Oscillating Microbalance - Filter Dynamics Measurement System - Gravimetry':{'methodology':'tapered element oscillating microbalance - filter dynamics measurement system - gravimetry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_processing':'Filter', 'measured_parameters':['PM10','PM2.5','PM1'], 'qa_accepted_parameters':['PM10','PM2.5','PM1'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#beta-attenuation

#Beta particles (electrons with energies in the 0.01 to 0.1 MeV range) are attenuated according to an approximate exponential function when they pass through particulate deposits on a filter tape. 
##Automated samplers (analyzers) use a continuous filter tape, first measuring the attenuation by the unexposed tape, and then measuring the attenuation after the tape has passed through the ambient air flow. 
#The attenuation measurement converts to a measure of the mass on the filter, so that the filters do not require later laboratory analysis for the mass variable. For some devices, the beta particle source is 14C.

#Known Interference:
#Particulate matter may be lost due to filter tape advance and vibration, especially if filter is exposed to warming.
#Gaseous species may contaminate filters.
#Humidity and absorbed water may be difficult to control during operations. 
#Meteorological conditions may affect flow rate.
#Although on-site real-time mass measurement offers significant improvements over the filter removal and laboratory analysis process, the beta emission and detection process present additional on-site maintenance requirements.

    'Environnement SA MP101M':{'methodology':'beta-attenuation', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':'Filter', 'measured_parameters':['PM10','PM2.5','PM1'], 'qa_accepted_parameters':['PM10','PM2.5','PM1'], 'documented_lower_limit_of_detection':'0.5', 'documented_upper_limit_of_detection':'10000', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'16.666667',     'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Environnement_SA_MP101M_Specs.pdf'},
    'FAI Swam 5a':            {'methodology':'beta-attenuation', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':'Filter', 'measured_parameters':['PM10','PM2.5','PM1'], 'qa_accepted_parameters':['PM10','PM2.5','PM1'], 'documented_lower_limit_of_detection':'1.0', 'documented_upper_limit_of_detection':'10000', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':'1.0',  'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'13.33-41.6667', 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':'See more details here: http://fai-instruments.net/swam-dual-channel-2/?lang=en', 'measuring_instrument_manual_name':'FAI_Swam_5a_specs.pdf'}, 
    'OPSIS SM200':            {'methodology':'beta-attenuation', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':'Filter', 'measured_parameters':['PM10','PM2.5'],       'qa_accepted_parameters':['PM10','PM2.5'],       'documented_lower_limit_of_detection':'0.5', 'documented_upper_limit_of_detection':'1000',  'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'16.666667',     'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'OPSIS_SM200_Specs'},
#---No specific instrument name
    'Beta-Attenuation':{'methodology':'beta-attenuation', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':'Filter', 'measured_parameters':['PM10','PM2.5','PM1'], 'qa_accepted_parameters':['PM10','PM2.5','PM1'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#impaction

#Impaction is a methodology employed for the measurement of particulate matter where some information on the particle size distribution is desired
#An impactor has two co-linear plates; one acts as a collection surface for the particles, the other one has small nozzle or nozzles in it to control the flow velocity. 
#The sample flow is first led through the nozzles to achieve a certain, exact flow velocity. 
#After the sample passes through the nozzles it is turned sharply in front of the collection plate in which case particles larger than stage cut diameter cannot follow the flow stream lines but are impacted onto the collection plate. 
#Particles smaller that the stage cut diameter continue to the following impactor stages where they are further size classified and collected. 
#By changing the dimensions in each impactor stage, different sized particles can be collected on different impactor stages. Typically there are stage cut points of 10, 2.5 and 1.0 µm.

#Before the measurement a collection substrate is placed on each of the impactor stages and this substrate is weighed before and after the measurement to determine particle size distribution. 
#Depending on the used substrate material, a chemical composition of the collected particles may also be determined after the sample collection.
#Typically PM10 impactor particles >1.0 µm are collected on 25 mm substrates and particles <1.0 µm are collected on a 47 mm filter. 
#Different material substrates and filters can be used in the impactor depending on the used particle analysis method.

    'Dekati PM10 Impactor':{'methodology':'impaction', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':'Filter', 'measured_parameters':['PM10','PM2.5','PM1'], 'qa_accepted_parameters':['PM10','PM2.5','PM1'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':'See more details here: https://www.dekati.com/products/Fine%20Particle%20Measurement/Dekati%20PM10%20Impactor', 'measuring_instrument_manual_name':np.NaN},
#---No specific instrument name
    'Impaction':{'methodology':'impaction', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':'Filter', 'measured_parameters':['PM10','PM2.5','PM1'], 'qa_accepted_parameters':['PM10','PM2.5','PM1'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#nephelometry

#This method uses the light scattered by tiny particles (nephelometry) to determine the particulate matter concentration in the ambient air directly and continuously.
#A highly sensitive scattered light sensor lies at the heart of the applied measuring method. The light emitted by an intensity stabilized laser diode illuminates a measuring space defined by the optical path. 
#The light scattered by all the aerosol particles inside this measuring space is captured by a semiconductor photodetector positioned at an angle of 90°. 
#After amplification, the outcome of this measurement is made available as a voltage signal.
#The signal is directly proportional to the mass concentration of the aerosol in the measuring space.

#The physical principles governing light scattering determine that aerosol particles whose diameter approximately corresponds to the applied wavelength scatter the light most efficiently in relation to mass. 
#In other words, they are the prevailing contributor to the photometer output signal. For this reason the output signal of a dispersion photodetector deployed outdoors is dominated by the PM2.5 fraction. 
#Simple dispersion photometry is thus subject to limitations for the measurement of the PM10 concentration because the complementary coarse fraction PM2.5 to PM10 contributes substantially less to the output signal in relation to mass and is therefore under-represented in the measurement.

    'Comde Derenda APM-2':{'methodology':'nephelometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':'Filter', 'measured_parameters':['PM10','PM2.5','PM1'], 'qa_accepted_parameters':['PM10','PM2.5','PM1'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Comde_Derenda_APM-2_Specs.pdf'},
#---No specific instrument name
    'Nephelometry':{'methodology':'nephelometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':'Filter', 'measured_parameters':['PM10','PM2.5','PM1'], 'qa_accepted_parameters':['PM10','PM2.5','PM1'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#beta-attenuation - nephelometry

#Hybrid of beta-attenuation and nephelometry methods enhancing the overall performance.
#Has accuracy of the beta-attenuation method with high time resolution of a nephelometer.
#see https://www3.epa.gov/ttnamti1/files/2006conference/goohssharp.pdf for more information

    'Thermo 5030 SHARP':{'methodology':'beta-attenuation - nephelometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':'Filter', 'measured_parameters':['PM10','PM2.5'], 'qa_accepted_parameters':['PM10','PM2.5'], 'documented_lower_limit_of_detection':'0.5', 'documented_upper_limit_of_detection':'10000', 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':'2.0<80.0 5.0>=80.0', 'reported_precision':np.NaN, 'documented_accuracy':'5.0%', 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':'0.02%/day', 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'16.666667', 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Thermo_5030_SHARP_Specs.pdf'},
#---No specific instrument name
    'Beta-Attenuation - Nephelometry':{'methodology':'beta-attenuation - nephelometry', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_preparation':'Filter', 'measured_parameters':['PM10','PM2.5','PM1'], 'qa_accepted_parameters':['PM10','PM2.5','PM1'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#optical particle counter

#An optical particle counter (OPC) relies on a focused light beam and ambient/forward particle scattering.
#Using a long optical path, the scattered light can be separated from the main optical beam, detected and counted. 
#Since the energy of the scattered light is very small compared to the original light field, this kind of OPC usually needs a high power laser input, a set of optics to focus the light field, and sensitive light detecting equipment to capture the signal.
#This makes traditional OPCs relatively large and expensive.

    'Grimm 180':{'methodology':'optical particle counter', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_processing':'Filter', 'measured_parameters':['PM10','PM2.5','PM1'], 'qa_accepted_parameters':['PM10','PM2.5','PM1'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':'1.2',  'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':'Grimm_180_Manual.pdf'},
    'Grimm 190':{'methodology':'optical particle counter', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_processing':'Filter', 'measured_parameters':['PM10','PM2.5','PM1'], 'qa_accepted_parameters':['PM10','PM2.5','PM1'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':'More details found here: https://www.atmos-chem-phys.net/10/10679/2010/acp-10-10679-2010.pdf', 'measuring_instrument_manual_name':np.NaN},
#---No specific instrument name
    'Optical Particle Counter':{'methodology':'optical particle counter', 'measuring_instrument_sampling':'Low Volume Continuous', 'sample_processing':'Filter', 'measured_parameters':['PM10','PM2.5','PM1'], 'qa_accepted_parameters':['PM10','PM2.5','PM1'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#thermal-optical analysis (TOA)

#Thermal-optical analysis (TOA) has been widely used to separate carbonaceous aerosols from ambient and source samples into two components, organic and elemental carbon. 
#This method uses volatility to separate groups of carbon, and laser monitoring to correct for the transformation of non-absorbing carbon into pyrolytic carbon that absorbs light.
#Thermal analysis has been used to classify carbonaceous aerosols in both ambient and source samples into light-absorbing carbon (LAC) and organic carbon (OC).
#Because thermal analysis does not yield a true value of LAC, the refractory component it measures takes a different name: elemental carbon (EC). (This has no relationship to a chemist’s definition of “elemental.”) 
#Thermal methods rely on the assumption that organic carbon is volatile, and the strongly light absorbing carbon is stable or refractory at elevated temperatures. 
#It assumes that LAC in a sample is unchanged until exposed to both elevated temperatures and an oxidant, so that carbon driven off at low temperatures or in the absence of oxygen must be OC. 
#Ideally, TOA would be a separation-and-detection technique similar to chromatography, but failures of separation have hampered its interpretation.
#Some OC undergoes pyrolysis or charring in the absence of oxygen, forming pyrolyzed carbon (“charring”) instead of volatilizing (Huntzicker et al., 1982). 
#For that reason, the sample is also monitored optically. The sample usually becomes blacker as charring occurs in an inert atmosphere, and the blackness decreases as the pyrolyzed carbon burns later in the analysis. 
#This change is detected by monitoring either transmittance or reflectance (sometimes both). When the filter’s transmittance or reflectance returns to the original value, it is assumed that the remaining material is EC. 
#This point is colloquially termed the OC/EC split and the combined analysis is known as thermal-optical analysis (TOA).
#Investigations of the thermal-optical method have examined “round-robin” tests of different protocols, or sequences of temperature and analysis environments (e.g., Cadle et al., 1990; Countess et al., 1990; Schmid et al., 2001). 
#Studies have provided the differences between OC/EC split produced by various temperature programs (e.g., Chow et al., 2001; Subrama- nian et al., 2006), and quantification of positive and negative artifacts (e.g., Cadle et al., 1983; Huebert and Charlson, 1996;Kirchstetter et al., 2001). 
#Some examples of successful results have been agreement on measurement of total carbon (Schmid et al., 2001) and reproducible measurements of EC and OC from careful and consistent application of thermal programs (Schauer et al., 2003). 
#A wide variety of temperature programs has been used in TOA, often with differing results (Schmid et al., 2001; Watson et al., 2005). The combination of temperature program and optical analysis best suited to analyzing different types of samples is still a subject of debate. 
#Many papers have pointed out challenges in interpreting TOA results (Cadle et al., 1983; Reid et al., 1998; Chow et al., 2001; Conny et al., 2003; Subramanian et al., 2006), and the method has both detractors and supporters.

    'Sunset OCEC 5l':{'methodology':'thermal-optical analysis', 'measuring_instrument_sampling':'Injection', 'sample_processing':np.NaN, 'measured_parameters':['C','PM10_C','PM2.5_C','PM1_C','EC','PM10_EC','PM2.5_EC','PM1_EC','OC','PM10_OC','PM2.5_OC','PM1_OC'], 'qa_accepted_parameters':['C','PM10_C','PM2.5_C','PM1_C','EC','PM10_EC','PM2.5_EC','PM1_EC','OC','PM10_OC','PM2.5_OC','PM1_OC'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':'See more details here:http://www.sunlab.com/wp-content/uploads/Lab-Instrument-brochure.pdf', 'measuring_instrument_manual_name':'Sunset_OCEC_5l_Manual.pdf'},
#---No specific instrument name
    'Thermal-Optical Analysis':{'methodology':'thermal-optical analysis', 'measuring_instrument_sampling':'Injection', 'sample_processing':np.NaN, 'measured_parameters':['C','PM10_C','PM2.5_C','PM1_C','EC','PM10_EC','PM2.5_EC','PM1_EC','OC','PM10_OC','PM2.5_OC','PM1_OC'], 'qa_accepted_parameters':['C','PM10_C','PM2.5_C','PM1_C','EC','PM10_EC','PM2.5_EC','PM1_EC','OC','PM10_OC','PM2.5_OC','PM1_OC'], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':'See details here: https://www.tandfonline.com/doi/pdf/10.1080/02786820802360690?needAccess=true', 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True},

#------------------------------------
#unknown
    'Unknown':{'methodology':'unknown', 'measuring_instrument_sampling':np.NaN, 'sample_processing':np.NaN, 'measured_parameters':[], 'qa_accepted_parameters':[], 'documented_lower_limit_of_detection':np.NaN, 'documented_upper_limit_of_detection':np.NaN, 'reported_lower_limit_of_detection':np.NaN, 'reported_upper_limit_of_detection':np.NaN, 'documented_uncertainty':np.NaN, 'reported_uncertainty':np.NaN, 'documented_precision':np.NaN, 'reported_precision':np.NaN, 'documented_accuracy':np.NaN, 'reported_accuracy':np.NaN, 'documented_zero_drift':np.NaN, 'reported_zero_drift':np.NaN, 'documented_span_drift':np.NaN, 'reported_span_drift':np.NaN, 'documented_resolution':np.NaN, 'reported_resolution':np.NaN, 'documented_absorption_cross_section':np.NaN, 'reported_absorption_cross_section':np.NaN, 'measuring_instrument_documented_flow_rate':np.NaN, 'measuring_instrument_reported_flow_rate':np.NaN, 'measuring_instrument_further_details':np.NaN, 'measuring_instrument_manual_name':np.NaN, 'unknown_measuring_instrument':True}}
    
    return database
    
###------------------------------------------------------------------------------------###
###------------------------------------------------------------------------------------###

#map network instrument to standard instrumental database
#update the acquired specific standardised instrument information with more detailed information from the specific site/network 
def network_instrument_mapping(instrument_ref,metadata_stamp): 

#----------------------------------------------------------------------------------------#
    if run_details['network'] == 'AIRBASE':
        instrument_map={}
        
    
#----------------------------------------------------------------------------------------#
    elif run_details['network'] == 'AQS':
 #-------------------------------------------
        if run_details['parameter'] == 'O3':
            instrument_map={
            '3':  {'measuring_instrument':'Meloy 0A325-2R',             'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '4':  {'measuring_instrument':'Meloy 0A350-2R',             'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '7':  {'measuring_instrument':'Bendix 8002',                'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '11': {'measuring_instrument':'Ethylene Chemiluminescence', 'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}, 'measuring_instrument_process_details':'No instrument information, other than instrument sampling is continuous, assume ethylene chemiluminescence'},
            '14': {'measuring_instrument':'McMillan 1100-1',            'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '15': {'measuring_instrument':'McMillan 1100-2',            'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '16': {'measuring_instrument':'McMillan 1100-3',            'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}}, 
            '17': {'measuring_instrument':'Teledyne 8410E',             'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '19': {'measuring_instrument':'Dasibi 1003-AH',             'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '20': {'measuring_instrument':'Beckman 950A',               'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '23': {'measuring_instrument':'Philips PW9771',             'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '36': {'measuring_instrument':'CSI 2000',                   'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '47': {'measuring_instrument':'Thermo 49',                  'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '53': {'measuring_instrument':'Teledyne 8810',              'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '55': {'measuring_instrument':'PCI LC-12',                  'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '56': {'measuring_instrument':'Dasibi 1008-AH',             'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '78': {'measuring_instrument':'Environics 300',             'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '87': {'measuring_instrument':'API 400',                    'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '91': {'measuring_instrument':'Teledyne 9810',              'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '103':{'measuring_instrument':'OPSIS AR500',                'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '105':{'measuring_instrument':'Environnement SA O341M',     'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '112':{'measuring_instrument':'Horiba APOA360',             'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '134':{'measuring_instrument':'DKK-TOA GUX-113E',           'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '137':{'measuring_instrument':'Environnement SA SANOA',     'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '148':{'measuring_instrument':'Environnement SA O342M',     'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '160':{'measuring_instrument':'Horiba APOA370',             'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '161':{'measuring_instrument':'Seres OZ 2000G',             'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '164':{'measuring_instrument':'SIR S-5014',                 'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '165':{'measuring_instrument':'Tanabyte 722',               'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '169':{'measuring_instrument':'DKK-TOA GUX-313E',           'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '187':{'measuring_instrument':'Ecotech Serinus10',          'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '190':{'measuring_instrument':'2B 202',                     'reported_lower_limit_of_detection':{'O3':'3.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '199':{'measuring_instrument':'Teledyne 265E',              'reported_lower_limit_of_detection':{'O3':'0.6'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '214':{'measuring_instrument':'Teledyne T204-O3',           'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '215':{'measuring_instrument':'2B 211',                     'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '218':{'measuring_instrument':'2B 106-L',                   'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '222':{'measuring_instrument':'Sabio 6030',                 'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '225':{'measuring_instrument':'Environnement SA O342e',     'reported_lower_limit_of_detection':{'O3':'5.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '227':{'measuring_instrument':'2B POM',                     'reported_lower_limit_of_detection':{'O3':'4.0'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}},
            '901':{'measuring_instrument':'2B 202',                     'reported_lower_limit_of_detection':{'O3':'1.5'}, 'reported_upper_limit_of_detection':{'O3':'500.0'}}}
    #-------------------------------------------
        elif (run_details['parameter'] == 'NO') or (run_details['parameter'] == 'NO2') or (run_details['parameter'] == 'NOx') or (run_details['parameter'] == 'NOy'):
            instrument_map={
            '10': {'measuring_instrument':'Diffusive Sampler',                                                                        'reported_lower_limit_of_detection':{'NO2':'0.1'},                                         'reported_upper_limit_of_detection':{'NO2':'400.0'}},
            '11': {'measuring_instrument':'Spectrophotometry',                                 'sample_processing':'Lyshkow',         'reported_lower_limit_of_detection':{'NO':'10.0','NO2':'10.0','NOx':'10.0'},               'reported_upper_limit_of_detection':{'NO':'500.0','NO2':'400.0','NOx':'1200.0'},  'measuring_instrument_sampling':'Continuous Injection'},
            '12': {'measuring_instrument':'Spectrophotometry',                                 'sample_processing':'Griess-Saltzman', 'reported_lower_limit_of_detection':{'NO2':'10.0'},                                        'reported_upper_limit_of_detection':{'NO2':'400.0'},                              'measuring_instrument_sampling':'Continuous Injection'},
            '13': {'measuring_instrument':'Coulometry',                                                                               'reported_lower_limit_of_detection':{'NO2':'10.0','NOx':'10.0'},                           'reported_upper_limit_of_detection':{'NO2':'400.0','NOx':'1200.0'}},
            '14': {'measuring_instrument':'Chemiluminescence (internal molybdenum converter)',                                        'reported_lower_limit_of_detection':{'NO':'5.0', 'NO2':'5.0', 'NOx':'10.0'},               'reported_upper_limit_of_detection':{'NO':'500.0','NO2':'400.0','NOx':'1200.0'},  'measuring_assumption':True, 'measuring_instrument_process_details':'No instrument information, other than instrument sampling is continuous, assume chemiluminescence (internal molybdenum converter)'},
            '16': {'measuring_instrument':'Spectrophotometry',                                 'sample_processing':'Griess-Saltzman', 'reported_lower_limit_of_detection':{'NO2':'10.0'},                                        'reported_upper_limit_of_detection':{'NO2':'400.0'},                              'measuring_instrument_sampling':'Continuous Injection', 'measuring_assumption':True, 'measuring_instrument_process_details':'Poland Method. No other details about this method, but I believe it uses the Griess-Saltzman method in this paper: https://www.sciencedirect.com/science/article/pii/S0269749197000389'},
            '21': {'measuring_instrument':'Teledyne 8440E',                                    'reported_lower_limit_of_detection':{'NO':'10.0','NO2':'5.0', 'NOx':'10.0'},               'reported_upper_limit_of_detection':{'NO':'500.0','NO2':'400.0','NOx':'1200.0'}},
            '22': {'measuring_instrument':'Bendix 8101-C',                                     'reported_lower_limit_of_detection':{'NO':'10.0','NO2':'5.0', 'NOx':'10.0'},               'reported_upper_limit_of_detection':{'NO':'500.0','NO2':'400.0','NOx':'1200.0'}},
            '25': {'measuring_instrument':'CSI 1600',                                          'reported_lower_limit_of_detection':{'NO':'10.0','NO2':'5.0', 'NOx':'10.0'},               'reported_upper_limit_of_detection':{'NO':'500.0','NO2':'400.0','NOx':'1200.0'}},
            '31': {'measuring_instrument':'Meloy NA530R',                                      'reported_lower_limit_of_detection':{'NO':'10.0','NO2':'5.0', 'NOx':'10.0'},               'reported_upper_limit_of_detection':{'NO':'500.0','NO2':'400.0','NOx':'1200.0'}},
            '34': {'measuring_instrument':'Beckman 952A',                                      'reported_lower_limit_of_detection':{'NO':'10.0','NO2':'5.0', 'NOx':'10.0'},               'reported_upper_limit_of_detection':{'NO':'500.0','NO2':'400.0','NOx':'1200.0'}},
            '35': {'measuring_instrument':'Thermo 14B/E',                                      'reported_lower_limit_of_detection':{'NO':'10.0','NO2':'5.0', 'NOx':'10.0'},               'reported_upper_limit_of_detection':{'NO':'500.0','NO2':'400.0','NOx':'1200.0'}},
            '37': {'measuring_instrument':'Thermo 14D/E',                                      'reported_lower_limit_of_detection':{'NO':'10.0','NO2':'5.0', 'NOx':'10.0'},               'reported_upper_limit_of_detection':{'NO':'500.0','NO2':'400.0','NOx':'1200.0'}},
            '38': {'measuring_instrument':'Bendix 8101-B',                                     'reported_lower_limit_of_detection':{'NO':'10.0','NO2':'5.0', 'NOx':'10.0'},               'reported_upper_limit_of_detection':{'NO':'500.0','NO2':'400.0','NOx':'1200.0'}},
            '40': {'measuring_instrument':'Philips PW9762/02',                                 'reported_lower_limit_of_detection':{'NO':'10.0','NO2':'5.0', 'NOx':'10.0'},               'reported_upper_limit_of_detection':{'NO':'500.0','NO2':'400.0','NOx':'1200.0'}},
            '42': {'measuring_instrument':'Teledyne 8840',                                     'reported_lower_limit_of_detection':{'NO':'10.0','NO2':'5.0', 'NOx':'10.0'},               'reported_upper_limit_of_detection':{'NO':'500.0','NO2':'400.0','NOx':'1200.0'}},
            '51': {'measuring_instrument':'Thermo 17C',                                        'reported_lower_limit_of_detection':{'NOx':'1.0'},                                         'reported_upper_limit_of_detection':{'NOx':'1200.0'}},
            '61': {'measuring_instrument':'Griess-Saltzman',                                   'reported_lower_limit_of_detection':{'NO':'10.0'},                                         'reported_upper_limit_of_detection':{'NO':'500.0'}},
            '71': {'measuring_instrument':'Griess-Saltzman',                                   'reported_lower_limit_of_detection':{'NO':'10.0'},                                         'reported_upper_limit_of_detection':{'NO':'500.0'}},
            '74': {'measuring_instrument':'Thermo 42',                                         'reported_lower_limit_of_detection':{'NO':'10.0','NO2':'1.0', 'NOx':'10.0', 'NOy':'0.5'},  'reported_upper_limit_of_detection':{'NO':'1200.0','NO2':'400.0','NOx':'1200.0','NOy':'500.0'}},
            '75': {'measuring_instrument':'Thermo 42S',                                        'reported_lower_limit_of_detection':{'NO':'0.05','NO2':'0.05','NOx':'0.05', 'NOy':'0.05'}, 'reported_upper_limit_of_detection':{'NO':'1200.0','NO2':'400.0','NOx':'1200.0','NOy':'500.0'}},
            '82': {'measuring_instrument':'Advanced Pollution 200',                            'reported_lower_limit_of_detection':{'NO':'10.0','NO2':'5.0', 'NOx':'10.0', 'NOy':'0.5'},  'reported_upper_limit_of_detection':{'NO':'1200.0','NO2':'400.0','NOx':'1200.0','NOy':'500.0'}},
            '83': {'measuring_instrument':'Teledyne 8841',                                     'reported_lower_limit_of_detection':{'NO':'10.0','NO2':'5.0', 'NOx':'10.0'},               'reported_upper_limit_of_detection':{'NO':'1200.0','NO2':'400.0','NOx':'1200.0'}},
            '89': {'measuring_instrument':'Dasibi 2108',                                       'reported_lower_limit_of_detection':{'NO':'2.7', 'NO2':'5.0', 'NOx':'2.7'},                'reported_upper_limit_of_detection':{'NO':'1200.0','NO2':'400.0','NOx':'1200.0'}},
            '90': {'measuring_instrument':'Ecotech ML9841',                                    'reported_lower_limit_of_detection':{'NO':'10.0','NO2':'5.0', 'NOx':'10.0', 'NOy':'5.0'},  'reported_upper_limit_of_detection':{'NO':'1200.0','NO2':'400.0','NOx':'1200.0','NOy':'500.0'}},
            '91': {'measuring_instrument':'Griess-Saltzman',                                   'reported_lower_limit_of_detection':{'NO':'10.0','NO2':'2.7', 'NOx':'2.7'},                'reported_upper_limit_of_detection':{'NO':'1200.0','NO2':'400.0','NOx':'1200.0'}},
            '94': {'measuring_instrument':'Sodium Arsenite',                                   'reported_lower_limit_of_detection':{'NO2':'2.7'},                                         'reported_upper_limit_of_detection':{'NO2':'400.0'}},
            '95': {'measuring_instrument':'TEA',                                               'reported_lower_limit_of_detection':{'NO2':'2.7'},                                         'reported_upper_limit_of_detection':{'NO2':'400.0'}},
            '96': {'measuring_instrument':'TGS-ANSA',                                          'reported_lower_limit_of_detection':{'NO2':'2.7'},                                         'reported_upper_limit_of_detection':{'NO2':'400.0'}},
            '97': {'measuring_instrument':'TEA',                                               'reported_lower_limit_of_detection':{'NO2':'2.7'},                                         'reported_upper_limit_of_detection':{'NO2':'400.0'}},
            '99': {'measuring_instrument':'Teledyne 200E',                                     'reported_lower_limit_of_detection':{'NO':'5.0', 'NO2':'2.7', 'NOx':'5.0', 'NOy':'0.5'},   'reported_upper_limit_of_detection':{'NO':'1200.0','NO2':'400.0','NOx':'1200.0','NOx':'500.0'}},
            '100':{'measuring_instrument':'Chemiluminescence (internal molybdenum converter)', 'reported_lower_limit_of_detection':{'NO':'1000.0'},                                       'reported_upper_limit_of_detection':{'NO':'1200.0'}, 'measuring_assumption':True, 'measuring_instrument_process_details':'No instrument information, other than instrument sampling is continuous, assume chemiluminescence (internal molybdenum converter)'},
            '102':{'measuring_instrument':'OPSIS AR500',                                       'reported_lower_limit_of_detection':{'NO2':'1.0'},                                         'reported_upper_limit_of_detection':{'NO2':'400.0'}},
            '104':{'measuring_instrument':'Environnement SA AC31M',                            'reported_lower_limit_of_detection':{'NO2':'5.0'},                                         'reported_upper_limit_of_detection':{'NO2':'400.0'}},
            '111':{'measuring_instrument':'Horiba APNA360',                                    'reported_lower_limit_of_detection':{'NO':'5.0', 'NO2':'5.0', 'NOx':'5.0'},                'reported_upper_limit_of_detection':{'NO':'1200.0','NO2':'400.0','NOx':'1200.0'}},
            '121':{'measuring_instrument':'DKK-TOA GLN-114E',                                  'reported_lower_limit_of_detection':{'NO2':'5.0','NOx':'5.0'},                             'reported_upper_limit_of_detection':{'NO2':'400.0','NOx':'1200.0'}},
            '139':{'measuring_instrument':'Environnement SA SANOA',                            'reported_lower_limit_of_detection':{'NO2':'1.0'},                                         'reported_upper_limit_of_detection':{'NO2':'400.0'}},
            '146':{'measuring_instrument':'Environnement SA AC32M',                            'reported_lower_limit_of_detection':{'NO':'5.0', 'NO2':'1.0', 'NOx':'5.0'},                'reported_upper_limit_of_detection':{'NO':'1200.0','NO2':'400.0','NOx':'1200.0'}},
            '152':{'measuring_instrument':'SIR S-5012',                                        'reported_lower_limit_of_detection':{'NO':'5.0', 'NO2':'5.0', 'NOx':'5.0'},                'reported_upper_limit_of_detection':{'NO':'400.0','NO2':'400.0','NOx':'400.0'}},
            '157':{'measuring_instrument':'Horiba APNA370',                                    'reported_lower_limit_of_detection':{'NO':'5.0', 'NO2':'5.0', 'NOx':'5.0'},                'reported_upper_limit_of_detection':{'NO':'1200.0','NO2':'400.0','NOx':'1200.0'}},
            '163':{'measuring_instrument':'Seres 2000G',                                       'reported_lower_limit_of_detection':{'NO':'5.0', 'NO2':'5.0', 'NOx':'5.0'},                'reported_upper_limit_of_detection':{'NO':'1200.0','NO2':'400.0','NOx':'1200.0'}},
            '171':{'measuring_instrument':'DKK-TOA GLN-314E',                                  'reported_lower_limit_of_detection':{'NO':'5.0', 'NO2':'5.0', 'NOx':'5.0'},                'reported_upper_limit_of_detection':{'NO':'1200.0','NO2':'1200.0','NOx':'1200.0'}},
            '186':{'measuring_instrument':'Ecotech Serinus40',                                 'reported_lower_limit_of_detection':{'NO':'5.0', 'NO2':'5.0', 'NOx':'5.0'},                'reported_upper_limit_of_detection':{'NO':'500.0','NO2':'500.0','NOx':'500.0'}},
            '200':{'measuring_instrument':'Teledyne T200UP',                                   'reported_lower_limit_of_detection':{'NO':'0.1', 'NO2':'0.1', 'NOx':'0.1'},                'reported_upper_limit_of_detection':{'NO':'2000.0','NO2':'2000.0','NOx':'2000.0'}},
            '210':{'measuring_instrument':'Environnement SA AS32M',                            'reported_lower_limit_of_detection':{'NO2':'0.04'},                                        'reported_upper_limit_of_detection':{'NO2':'1000.0'}},
            '212':{'measuring_instrument':'Teledyne T500U',                                    'reported_lower_limit_of_detection':{'NO2':'0.04'},                                        'reported_upper_limit_of_detection':{'NO2':'1000.0'}},
            '241':{'measuring_instrument':'Teledyne T200P',                                    'reported_lower_limit_of_detection':{'NO':'0.4', 'NO2':'0.4', 'NOx':'0.4'},                'reported_upper_limit_of_detection':{'NO':'4000.0','NO2':'4000.0','NOx':'4000.0'}},
            '574':{'measuring_instrument':'Thermo 42C-TL',                                     'reported_lower_limit_of_detection':{'NO':'0.05','NO2':'0.05','NOx':'0.05'},               'reported_upper_limit_of_detection':{'NO':'1000.0','NO2':'1000.0','NOx':'1000.0'}},
            '590':{'measuring_instrument':'Ecotech EC9841T',                                   'reported_lower_limit_of_detection':{'NO':'0.05','NO2':'0.05','NOx':'0.05'},               'reported_upper_limit_of_detection':{'NO':'2000.0','NO2':'2000.0','NOx':'2000.0'}},
            '591':{'measuring_instrument':'Ecotech EC9843',                                    'reported_lower_limit_of_detection':{'NO':'0.05','NOx':'0.05'},                            'reported_upper_limit_of_detection':{'NO':'2000.0','NOx':'2000.0'}},
            '599':{'measuring_instrument':'Teledyne 200EU',                                    'reported_lower_limit_of_detection':{'NO':'0.05','NO2':'0.05','NOx':'0.05'},               'reported_upper_limit_of_detection':{'NO':'1000.0','NO2':'200.0','NOx':'2000.0'}, 'measuring_instrument_process_details':'In methods_all.csv the instrument is stated as Teledyne 200EU-NOy, but this only measures NO/NOy. It gives an equivalent method of Teledyne 200A/Teledyne 200E, however these have detection limits of 0.4ppbv. In both methods_all.csv and seen in the datafiles, the applicable detection limit is many times 0.05ppbv, this suggests the instrument in fact used is Teledyne 200EU.'},
            '674':{'measuring_instrument':'Thermo 42C-NOy',                                    'reported_lower_limit_of_detection':{'NO':'0.05','NOy':'0.05'},                            'reported_upper_limit_of_detection':{'NO':'1000.0','NOy':'1000.0'}},
            '690':{'measuring_instrument':'Ecotech EC9841T',                                   'reported_lower_limit_of_detection':{'NO':'0.05','NOy':'0.05'},                            'reported_upper_limit_of_detection':{'NO':'2000.0','NOy':'500.0'}},
            '691':{'measuring_instrument':'Ecotech EC9843',                                    'reported_lower_limit_of_detection':{'NO':'0.05','NOy':'0.05'},                            'reported_upper_limit_of_detection':{'NO':'2000.0','NOy':'500.0'}},
            '699':{'measuring_instrument':'Teledyne 200EU-NOy',                                'reported_lower_limit_of_detection':{'NO':'0.05','NOy':'0.05'},                            'reported_upper_limit_of_detection':{'NO':'1000.0','NOy':'520.0'}}}
    #------------------------------------------- 
        elif run_details['parameter'] == 'CO':
            instrument_map={
            '8':  {'measuring_instrument':'Bendix 8501-5CA',                           'reported_lower_limit_of_detection':{'CO':'500.0'},  'reported_upper_limit_of_detection':{'CO':'50000.0'}},
            '11': {'measuring_instrument':'Non-Dispersive Infrared Absorption (Luft)', 'reported_lower_limit_of_detection':{'CO':'500.0'},  'reported_upper_limit_of_detection':{'CO':'50000.0'}, 'measuring_assumption':True},
            '12': {'measuring_instrument':'Beckman 866',                               'reported_lower_limit_of_detection':{'CO':'500.0'},  'reported_upper_limit_of_detection':{'CO':'50000.0'}},
            '13': {'measuring_instrument':'Detection Tube',                            'reported_lower_limit_of_detection':{'CO':'5000.0'}, 'reported_upper_limit_of_detection':{'CO':'50000.0'}, 'methodology':'Spectrophotometry', 'measuring_instrument_sampling':'Continuous Injection', 'measuring_assumption':True, 'measuring_instrument_process_details':'AQS states methodology as continuous, so must use continuous method (i.e. assumed spectrophotometry).'},
            '14': {'measuring_instrument':'Dual Isotope Fluorescence',                 'reported_lower_limit_of_detection':{'CO':'400.0'},  'reported_upper_limit_of_detection':{'CO':'50000.0'}},
            '18': {'measuring_instrument':'MSA 202S',                                  'reported_lower_limit_of_detection':{'CO':'500.0'},  'reported_upper_limit_of_detection':{'CO':'50000.0'}},
            '21': {'measuring_instrument':'Gas Chromatography - Unknown Detection',    'reported_lower_limit_of_detection':{'CO':'500.0'},  'reported_upper_limit_of_detection':{'CO':'50000.0'}, 'measuring_instrument_sampling':'Continuous Injection'},
            '33': {'measuring_instrument':'Horiba AQM10',                              'reported_lower_limit_of_detection':{'CO':'500.0'},  'reported_upper_limit_of_detection':{'CO':'50000.0'}},
            '41': {'measuring_instrument':'Teledyne 8310',                             'reported_lower_limit_of_detection':{'CO':'500.0'},  'reported_upper_limit_of_detection':{'CO':'50000.0'}},
            '48': {'measuring_instrument':'Horiba 300E',                               'reported_lower_limit_of_detection':{'CO':'500.0'},  'reported_upper_limit_of_detection':{'CO':'50000.0'}},
            '50': {'measuring_instrument':'Massachusetts CO1',                         'reported_lower_limit_of_detection':{'CO':'500.0'},  'reported_upper_limit_of_detection':{'CO':'50000.0'}},
            '51': {'measuring_instrument':'Dasibi 3003',                               'reported_lower_limit_of_detection':{'CO':'500.0'},  'reported_upper_limit_of_detection':{'CO':'50000.0'}},
            '54': {'measuring_instrument':'Thermo 48C',                                'reported_lower_limit_of_detection':{'CO':'500.0'},  'reported_upper_limit_of_detection':{'CO':'50000.0'}},
            '55': {'measuring_instrument':'Thermo 48C-TL',                             'reported_lower_limit_of_detection':{'CO':'20.0'},   'reported_upper_limit_of_detection':{'CO':'50000.0'}},
            '66': {'measuring_instrument':'Teledyne 8830',                             'reported_lower_limit_of_detection':{'CO':'500.0'},  'reported_upper_limit_of_detection':{'CO':'50000.0'}},
            '67': {'measuring_instrument':'Dasibi 3008',                               'reported_lower_limit_of_detection':{'CO':'500.0'},  'reported_upper_limit_of_detection':{'CO':'50000.0'}},
            '88': {'measuring_instrument':'Ecotech ML9830',                            'reported_lower_limit_of_detection':{'CO':'500.0'},  'reported_upper_limit_of_detection':{'CO':'50000.0'}},
            '93': {'measuring_instrument':'Teledyne 300',                              'reported_lower_limit_of_detection':{'CO':'500.0'},  'reported_upper_limit_of_detection':{'CO':'50000.0'}},
            '106':{'measuring_instrument':'Horiba APMA360',                            'reported_lower_limit_of_detection':{'CO':'500.0'},  'reported_upper_limit_of_detection':{'CO':'50000.0'}},
            '108':{'measuring_instrument':'Environnement SA CO11M',                    'reported_lower_limit_of_detection':{'CO':'500.0'},  'reported_upper_limit_of_detection':{'CO':'50000.0'}},
            '130':{'measuring_instrument':'LGR Off-Axis ICOS',                         'reported_lower_limit_of_detection':{'CO':'0.05'}},
            '147':{'measuring_instrument':'Environnement SA CO12M',                    'reported_lower_limit_of_detection':{'CO':'500.0'},  'reported_upper_limit_of_detection':{'CO':'50000.0'}},
            '158':{'measuring_instrument':'Horiba APMA370',                            'reported_lower_limit_of_detection':{'CO':'500.0'},  'reported_upper_limit_of_detection':{'CO':'50000.0'}},
            '167':{'measuring_instrument':'DKK-TOA GFC-311E',                          'reported_lower_limit_of_detection':{'CO':'500.0'},  'reported_upper_limit_of_detection':{'CO':'50000.0'}},
            '172':{'measuring_instrument':'SIR S-5006',                                'reported_lower_limit_of_detection':{'CO':'500.0'},  'reported_upper_limit_of_detection':{'CO':'50000.0'}},
            '174':{'measuring_instrument':'Ecotech Serinus30',                         'reported_lower_limit_of_detection':{'CO':'500.0'},  'reported_upper_limit_of_detection':{'CO':'50000.0'}},
            '554':{'measuring_instrument':'Thermo 48i-TLE',                            'reported_lower_limit_of_detection':{'CO':'40.0'},   'reported_upper_limit_of_detection':{'CO':'50000.0'}},
            '562':{'measuring_instrument':'LGR Off-Axis ICOS',                         'reported_lower_limit_of_detection':{'CO':'0.05'}},
            '588':{'measuring_instrument':'Ecotech EC9830T',                           'reported_lower_limit_of_detection':{'CO':'20.0'},   'reported_upper_limit_of_detection':{'CO':'50000.0'}},
            '593':{'measuring_instrument':'Teledyne 300EU',                            'reported_lower_limit_of_detection':{'CO':'20.0'},   'reported_upper_limit_of_detection':{'CO':'50000.0'}},
            '594':{'measuring_instrument':'Teledyne 300EU',                            'reported_lower_limit_of_detection':{'CO':'20.0'},   'reported_upper_limit_of_detection':{'CO':'50000.0'}}}
   #-------------------------------------------
        elif run_details['parameter'] == 'SO2':
            instrument_map={
            '1':  {'measuring_instrument':'Unknown',                                        'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '5':  {'measuring_instrument':'Ecotech SM1000',                                 'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '6':  {'measuring_instrument':'Meloy SA185-2A',                                 'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '9':  {'measuring_instrument':'Thermo 43',                                      'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '10': {'measuring_instrument':'Philips PW9755',                                 'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '11': {'measuring_instrument':'Pararosaniline',                                 'reported_lower_limit_of_detection':{'SO2':'10.0'},  'reported_upper_limit_of_detection':{'SO2':'1500.0'}, 'measuring_instrument_sampling':'Continuous Injection'},
            '13': {'measuring_instrument':'Conductimetry',                                  'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '14': {'measuring_instrument':'Coulometry',                                     'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '16': {'measuring_instrument':'Flame Photometric Detection',                    'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '18': {'measuring_instrument':'Hydrogen Peroxide',                              'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '19': {'measuring_instrument':'Flame Photometric Detection',                    'reported_lower_limit_of_detection':{'SO2':'1.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '20': {'measuring_instrument':'Ultraviolet Fluorescence',                       'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '21': {'measuring_instrument':'Second Derivative Spectroscopy',                 'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '22': {'measuring_instrument':'Asarco 500',                                     'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '23': {'measuring_instrument':'Ultraviolet Fluorescence',                       'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '24': {'measuring_instrument':'Asarco 500',                                     'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '29': {'measuring_instrument':'Beckman 953',                                    'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '30': {'measuring_instrument':'Bendix 8303',                                    'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '31': {'measuring_instrument':'Sulphur Chemiluminescence - Gas Chromatography', 'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '32': {'measuring_instrument':'Meloy SA285E',                                   'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '33': {'measuring_instrument':'Conductimetry',                                  'reported_lower_limit_of_detection':{'SO2':'10.0'},  'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '39': {'measuring_instrument':'Teledyne 8850',                                  'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'10000.0'}},
            '46': {'measuring_instrument':'Meloy SA700',                                    'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '49': {'measuring_instrument':'Ecotech AM2020',                                 'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}, 'measuring_assumption':True, 'measuring_instrument_process_details':'AQS states as instrument as using Second Derivative Spectroscopy method, whereas reference suggests Ultraviolet Fluorescence, side with reference.'},
            '50': {'measuring_instrument':'Ion Chromatography',                             'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}, 'sample_processing':'denuder'},
            '59': {'measuring_instrument':'Ultraviolet Fluorescence',                       'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '60': {'measuring_instrument':'Thermo 43A',                                     'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'10000.0'}},
            '61': {'measuring_instrument':'Dasibi 4108',                                    'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '75': {'measuring_instrument':'Teledyne 8850S',                                 'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '77': {'measuring_instrument':'Advanced Pollution 100',                         'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '84': {'measuring_instrument':'Environnement SA AF21M',                         'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '91': {'measuring_instrument':'Pararosaniline',                                 'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '92': {'measuring_instrument':'Teledyne 9850',                                  'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '94': {'measuring_instrument':'Hydrogen Peroxide',                              'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '95': {'measuring_instrument':'Polarography',                                   'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '96': {'measuring_instrument':'Hydrogen Peroxide',                              'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '98': {'measuring_instrument':'TGS-ANSA',                                       'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '100':{'measuring_instrument':'Teledyne 100A',                                  'reported_lower_limit_of_detection':{'SO2':'0.4'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '101':{'measuring_instrument':'OPSIS AR500',                                    'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '114':{'measuring_instrument':'Horiba APSA360',                                 'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '115':{'measuring_instrument':'DKK-TOA GFS-32',                                 'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '133':{'measuring_instrument':'DKK-TOA GFS-112E',                               'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '138':{'measuring_instrument':'Environnement SA SANOA',                         'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '149':{'measuring_instrument':'Environnement SA AF22M',                         'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '159':{'measuring_instrument':'Horiba APSA370',                                 'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '166':{'measuring_instrument':'SIR S-5001',                                     'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '168':{'measuring_instrument':'DKK-TOA GFS-312E',                               'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '188':{'measuring_instrument':'Ecotech Serinus50',                              'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '194':{'measuring_instrument':'Seres SF2000G',                                  'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '511':{'measuring_instrument':'PHILIPS PW9700',                                 'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '513':{'measuring_instrument':'Teledyne 8450',                                  'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '560':{'measuring_instrument':'Thermo 43C-TLE',                                 'reported_lower_limit_of_detection':{'SO2':'0.2'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '592':{'measuring_instrument':'Ecotech EC9850T',                                'reported_lower_limit_of_detection':{'SO2':'0.2'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '600':{'measuring_instrument':'Teledyne 100EU',                                 'reported_lower_limit_of_detection':{'SO2':'0.2'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '801':{'measuring_instrument':'Pararosaniline',                                 'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}},
            '811':{'measuring_instrument':'Ion Chromatography',                             'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}, 'sample_processing':'low volume sampler,filter'},
            '850':{'measuring_instrument':'Ion Chromatography',                             'reported_lower_limit_of_detection':{'SO2':'2.0'},   'reported_upper_limit_of_detection':{'SO2':'1500.0'}, 'sample_processing':'low volume sampler,filter',  'measuring_assumption':True, 'measuring_instrument_process_details':'AQS states methodology as being sequential sampling with bulit in filter pack, make assumption concentrations are determined using Ion Chromatography'},
            '900':{'measuring_instrument':'Ion Chromatography',                             'reported_lower_limit_of_detection':{'SO2':'0.026'}, 'reported_upper_limit_of_detection':{'SO2':'1500.0'}, 'sample_processing':'filter'}}
    #-------------------------------------------
        elif run_details['parameter'] == 'ISOPRENE':
            instrument_map={
            '91': {'measuring_instrument':'Gas Chromatography - Flame Ionisation Detection',                                  'reported_lower_limit_of_detection':{'ISOPRENE':'0.02'},                                                                                                                'measuring_assumption':True, 'measuring_instrument_process_details':'AQS states purely as FID, but FID cannot solely distinguish Isoprene, therefore assume uses GC beforehand.'},
            '101':{'measuring_instrument':'Gas Chromatography - Mass Spectrometry - Flame Ionisation Detection',              'reported_lower_limit_of_detection':{'ISOPRENE':'0.02'},                                                           'sample_processing':'flask',                         'measuring_assumption':True, 'measuring_instrument_process_details':'AQS states method as multi detector GC, assume Gas Chromatography - Mass Spectrometry - Flame Ionisation Detection'},
            '120':{'measuring_instrument':'Gas Chromatography - Flame Ionisation Detection',                                  'reported_lower_limit_of_detection':{'ISOPRENE':'0.02'},                                                           'sample_processing':'sorbent tube,preconcentration'},
            '122':{'measuring_instrument':'Gas Chromatography - Dual Flame Ionisation Detection',                             'reported_lower_limit_of_detection':{'ISOPRENE':'0.02'},                                                           'sample_processing':'flask'},
            '123':{'measuring_instrument':'Gas Chromatography - Dual Flame Ionisation Detection',                             'reported_lower_limit_of_detection':{'ISOPRENE':'0.002'},                                                          'sample_processing':'flask'},
            '125':{'measuring_instrument':'Gas Chromatography - Flame Ionisation Detection',                                  'reported_lower_limit_of_detection':{'ISOPRENE':'0.0272'}, 'measuring_instrument_sampling':'Continuous Injection', 'sample_processing':'preconcentration'},
            '126':{'measuring_instrument':'Gas Chromatography - Flame Ionisation Detection',                                  'reported_lower_limit_of_detection':{'ISOPRENE':'0.02'},                                                           'sample_processing':'flask,preconcentration'},
            '127':{'measuring_instrument':'Gas Chromatography - Mass Spectrometry',                                           'reported_lower_limit_of_detection':{'ISOPRENE':'0.02'},                                                           'sample_processing':'flask,preconcentration'},
            '128':{'measuring_instrument':'Gas Chromatography - Dual Flame Ionisation Detection',                             'reported_lower_limit_of_detection':{'ISOPRENE':'0.002'},  'measuring_instrument_sampling':'Continuous Injection', 'sample_processing':'preconcentration'},
            '129':{'measuring_instrument':'Gas Chromatography - Mass Spectrometry',                                           'reported_lower_limit_of_detection':{'ISOPRENE':'0.02'},                                                           'sample_processing':'flask,preconcentration'},
            '135':{'measuring_instrument':'Gas Chromatography - Direct Temperature Resolved Mass Spectrometry',               'reported_lower_limit_of_detection':{'ISOPRENE':'0.02'},   'measuring_instrument_sampling':'Continuous Injection', 'sample_processing':'preconcentration'},                            
            '136':{'measuring_instrument':'Gas Chromatography - Mass Spectrometry - Flame Ionisation Detection',              'reported_lower_limit_of_detection':{'ISOPRENE':'0.02'},   'measuring_instrument_sampling':'Continuous Injection', 'sample_processing':'preconcentration'},
            '137':{'measuring_instrument':'Gas Chromatography - Flame Ionisation Detection',                                  'reported_lower_limit_of_detection':{'ISOPRENE':'0.02'},   'measuring_instrument_sampling':'Continuous Injection', 'sample_processing':'preconcentration'},
            '142':{'measuring_instrument':'Gas Chromatography - Dual Flame Ionisation Detection',                             'reported_lower_limit_of_detection':{'ISOPRENE':'0.1141'}, 'measuring_instrument_sampling':'Continuous Injection', 'sample_processing':'preconcentration',              'measuring_assumption':True, 'measuring_instrument_process_details':'AQS states method as dual column GC, assume Gas Chromatography - Dual Flame Ionisation Detection'},
            '146':{'measuring_instrument':'Gas Chromatography - Dual Flame Ionisation Detection',                             'reported_lower_limit_of_detection':{'ISOPRENE':'0.02'},                                                           'sample_processing':'flask,preconcentration'},
            '147':{'measuring_instrument':'Gas Chromatography - Flame Ionisation Detection',                                  'reported_lower_limit_of_detection':{'ISOPRENE':'0.148'},                                                          'sample_processing':'flask,preconcentration'},
            '148':{'measuring_instrument':'Gas Chromatography - Fourier Transform Infrared Spectroscopy - Mass Spectrometry', 'reported_lower_limit_of_detection':{'ISOPRENE':'0.02'},                                                           'sample_processing':'flask,preconcentration'},
            '149':{'measuring_instrument':'Gas Chromatography - Mass Spectrometry - Flame Ionisation Detection',              'reported_lower_limit_of_detection':{'ISOPRENE':'0.02'},                                                           'sample_processing':'flask,preconcentration'},
            '150':{'measuring_instrument':'Gas Chromatography - Mass Spectrometry',                                           'reported_lower_limit_of_detection':{'ISOPRENE':'0.02'},                                                           'sample_processing':'flask,preconcentration'},
            '152':{'measuring_instrument':'Gas Chromatography - Flame Ionisation Detection',                                  'reported_lower_limit_of_detection':{'ISOPRENE':'0.02'},                                                           'sample_processing':'flask,preconcentration'},
            '175':{'measuring_instrument':'Gas Chromatography - Mass Spectrometry',                                           'reported_lower_limit_of_detection':{'ISOPRENE':'0.02'},                                                           'sample_processing':'flask,preconcentration'},
            '177':{'measuring_instrument':'Gas Chromatography - Mass Spectrometry - Flame Ionisation Detection',              'reported_lower_limit_of_detection':{'ISOPRENE':'0.02'},                                                           'sample_processing':'flask,preconcentration'},
            '210':{'measuring_instrument':'Gas Chromatography - Mass Spectrometry',                                           'reported_lower_limit_of_detection':{'ISOPRENE':'0.02'},                                                           'sample_processing':'flask,preconcentration'}}
    #-------------------------------------------
        elif run_details['parameter'] == 'NH3':
            instrument_map={
            '10': {'measuring_instrument':'Diffusive Sampler',                  'reported_lower_limit_of_detection':{'NH3':'0.1'}},
            '50': {'measuring_instrument':'Ion Chromatography',                 'reported_lower_limit_of_detection':{'NH3':'0.03'}, 'sample_processing':'denuder'},
            '51': {'measuring_instrument':'Thermo 17C',                         'reported_lower_limit_of_detection':{'NH3':'1.0'}},
            '82': {'measuring_instrument':'Teledyne 201E',                      'reported_lower_limit_of_detection':{'NH3':'1.0'}},
            '91': {'measuring_instrument':'Nessler',                            'reported_lower_limit_of_detection':{'NH3':'7.2'}},
            '92': {'measuring_instrument':'Sodium Phenolate',                   'reported_lower_limit_of_detection':{'NH3':'7.2'}},
            '93': {'measuring_instrument':'Electrochemical Membrane Diffusion', 'reported_lower_limit_of_detection':{'NH3':'1000.0'}},
            '101':{'measuring_instrument':'Pranalytica Nitrolux200',            'reported_lower_limit_of_detection':{'NH3':'0.2'}},
            '121':{'measuring_instrument':'DKK-TOA GLN-114E',                   'reported_lower_limit_of_detection':{'NH3':'5.0'}},
            '400':{'measuring_instrument':'Pranalytica Nitrolux200',            'reported_lower_limit_of_detection':{'NH3':'0.2'}},
            '592':{'measuring_instrument':'Ecotech EC9842T',                    'reported_lower_limit_of_detection':{'NH3':'0.2'}}}
    #-------------------------------------------
        elif run_details['parameter'] == 'PAN':
            instrument_map={
            '11':{'measuring_instrument':'Gas Chromatography - Electron Capture Detection', 'reported_lower_limit_of_detection':{'PAN':'0.1'}, 'measuring_instrument_sampling':'Continuous Injection'}}
    #-------------------------------------------
        
#----------------------------------------------------------------------------------------#
    elif run_details['network'] == 'CAPMON':
        if run_details['parameter'] == 'O3':
            #convert fractional minutes to datetime
            metadata_stamp_dt = crossnetwork_processing_modules.fractional_minutes_from_reference_to_datetime(metadata_stamp)
            
            if (metadata_stamp_dt.year >= 1988) & (metadata_stamp_dt.year < 1992):
                mapped_network_dict  = {'measurement':{'measuring_instrument':'Dasibi 1008-AH', 'reported_lower_limit_of_detection':{'O3':'4.0'}}}
            elif(metadata_stamp_dt.year >= 1992) & (metadata_stamp_dt.year < 2003): 
                mapped_network_dict  = {'measurement':{'measuring_instrument':'Thermo 49'}}
            elif(metadata_stamp_dt.year >= 2003) & (metadata_stamp_dt.year < 2014):  
                mapped_network_dict  = {'measurement':{'measuring_instrument':'Thermo 49C', 'reported_lower_limit_of_detection':{'O3':'2.0'}}}
            elif(metadata_stamp_dt.year >= 2014):
                mapped_network_dict  = {'measurement':{'measuring_instrument':'Thermo 49i', 'reported_lower_limit_of_detection':{'O3':'1.0'}}}
            
#----------------------------------------------------------------------------------------#
    elif run_details['network'] == 'CASTNET':
        if run_details['parameter'] == 'O3':
            mapped_network_dict  = {'measurement':{'measuring_instrument':'Ultraviolet Photometry'}}
        elif (run_details['parameter'] == 'NO') or (run_details['parameter'] == 'NO2'):
            mapped_network_dict  = {'measurement':{'measuring_instrument':'Chemiluminescence (internal photolytic converter)'}}
        elif run_details['parameter'] == 'CO':
            mapped_network_dict  = {'measurement':{'measuring_instrument':'Non-Dispersive Infrared Absorption (Gas-Filter Correlation)'}}
            
#----------------------------------------------------------------------------------------#
    elif run_details['network'] == 'EANET':
        instrument_map={}
    
#----------------------------------------------------------------------------------------#
    elif run_details['network'] == 'EBAS':
    #-------------------------------------------        
        if run_details['parameter'] == 'O3':
            instrument_map={
            'uv_abs':                              {'measurement':{'measuring_instrument':'Ultraviolet Photometry'}},
            'uv_abs,dylec,1100':                   {'measurement':{'measuring_instrument':'Dylec 1100'}},
            'uv_abs,ebara,eg-2001f':               {'measurement':{'measuring_instrument':'Ebara EG-2001F'}},
            'uv_abs,ebara,eg-2001ftp':             {'measurement':{'measuring_instrument':'Ebara EG-2001FTP'}},
            'uv_abs,ebara,eg-3000f':               {'measurement':{'measuring_instrument':'Ebara EG-3000F'}},
            'uv_abs,ecotech,ml_9810':              {'measurement':{'measuring_instrument':'Ecotech EC9810'}},
            'uv_abs,ansyco,41m':                   {'measurement':{'measuring_instrument':'Environnement SA O341M'}},
            'uv_abs,horiba,apoa-370':              {'measurement':{'measuring_instrument':'Horiba APOA370'}},
            'uv_abs,teledyne,400a':                {'measurement':{'measuring_instrument':'Teledyne 400A'}},
            'uv_abs,monitor_labs,9810':            {'measurement':{'measuring_instrument':'Teledyne 9810'}},
            'uv_abs,teledyne_monitor_labs,ml9810b':{'measurement':{'measuring_instrument':'Teledyne 9810B'}},
            'uv_abs,teledyne,t400':                {'measurement':{'measuring_instrument':'Teledyne T400'}},
            'uv_abs,thermo,49':                    {'measurement':{'measuring_instrument':'Thermo 49'}},
            'uv_abs,thermo,49c':                   {'measurement':{'measuring_instrument':'Thermo 49C'}},
            'uv_abs,thermo,49c+49i':               {'measurement':{'measuring_instrument':'Thermo 49C'}},
            'uv_abs,thermo,49i':                   {'measurement':{'measuring_instrument':'Thermo 49i'}},
            'uv_abs,thermo,49w':                   {'measurement':{'measuring_instrument':'Thermo 49w'}},
            'na':                                  {'measurement':{'measuring_instrument':'Unknown'}}}
    #-------------------------------------------
        elif (run_details['parameter'] == 'NO') or (run_details['parameter'] == 'NO2'):
            instrument_map={
            'chemiluminescence_molybdenum':                       {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Chemiluminescence (internal molybdenum converter)'}},
            'chemiluminescence_photometer':                       {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Chemiluminescence (internal photolytic converter)'}}, 
            'chemiluminescence_photolytic':                       {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Chemiluminescence (internal photolytic converter)'}},
            'uv_fluoresc':                                        {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Laser-Induced Fluorescence', 'measuring_assumption':True, 'measuring_instrument_process_details':'Make assumption this technique is laser-induced fluorescence (proven for NO/NO2), and not ultraviolet fluorescence (used exclusively for SO2).'}},
            'continuous_colorimetric':                            {'primary_sampling':{'primary_sampling_instrument':'Low Volume Continuous', 'primary_sampling_assumption':True}, 'preparation_1':{'sample_preparation':'Reagent Reaction', 'preparation_assumption':True}, 'measurement':{'measuring_instrument':'Colorimetry', 'measuring_instrument_sampling':'Continuous Injection'}},
            'chemiluminescence_photolytic,ecophysics,cld700alppt':{                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Ecophysics CLD700AL', 'methodology':'chemiluminescence (internal photolytic converter)'}},
            'chemiluminescence_photolytic,ecophysics,cld770alppt':{                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Ecophysics CLD770AL', 'methodology':'chemiluminescence (internal photolytic converter)'}},
            'chemiluminescence_photolytic,ecophysics,cranox':     {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Ecophysics CraNOx'}},
            'chemiluminescence_photolytic,ecotech,9841t':         {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Ecotech EC9841T'}},
            'chemiluminescence_molybdenum,horiba,apna-360ce':     {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Horiba APNA360'}},
            'chemiluminescence_molybdenum,horiba,apna-370':       {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Horiba APNA370'}}, 
            'chemiluminescence_molybdenum,horiba,apna-370ce':     {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Horiba APNA370'}},
            'chemiluminescence_photolytic,horiba,apna-370':       {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Horiba APNA370', 'methodology':'chemiluminescence (internal photolytic converter)'}}, 
            'chemiluminescence_photolytic,teledyne_api,200e':     {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Teledyne 200E',  'methodology':'chemiluminescence (internal photolytic converter)'}},
            'chemiluminescence_photolytic,teledyne,t200up':       {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Teledyne T200UP'}},
            'chemiluminescence_photolytic,thermo,42c-tl':         {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Thermo 42C-TL', 'methodology':'chemiluminescence (internal photolytic converter)'}},
            'chemiluminescence_molybdenum,thermo,42i':            {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Thermo 42i'}},
            'chemiluminescence_photometer,thermo,42i':            {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Thermo 42i', 'methodology':'chemiluminescence (internal photolytic converter)'}},
            'chemiluminescence_molybdenum,thermo,42i-ls':         {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Thermo 42i-LS'}},
            'chemiluminescence_molybdenum,thermo,42i-tl':         {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Thermo 42i-TL'}},
            'chemiluminescence_photometer,thermo,42i-tl':         {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Thermo 42i-TL', 'methodology':'chemiluminescence (internal photolytic converter)'}},
            'chemiluminescence_photolytic,thermo,42i-tl':         {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Thermo 42i-TL', 'methodology':'chemiluminescence (internal photolytic converter)'}},
            'chemiluminescence_photometer,thermo,49i':            {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Thermo 49i'}},
            'caps,teledyne,t500u':                                {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Teledyne T500U'}},
            'na':                                                 {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Unknown'}}}
    #-------------------------------------------
        elif run_details['parameter'] == 'CO':
            instrument_map={
            'infrared_absorption':               {                                                                                                                                                                     'measurement':{'measuring_instrument':'Non-Dispersive Infrared Absorption (Gas-Filter Correlation)'}},      
            'ndir':                              {                                                                                                                                                                     'measurement':{'measuring_instrument':'Non-Dispersive Infrared Absorption (Gas-Filter Correlation)'}},                            
            'uv_fluoresc':                       {                                                                                                                                                                     'measurement':{'measuring_instrument':'Vacuum Ultraviolet Resonance Fluorescence'}},
            'online_crds':                       {                                                                                                                                                                     'measurement':{'measuring_instrument':'Cavity Ringdown Spectroscopy'}},
            'filter_1pack':                      {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True}, 'preparation_1':{'sample_preparation':'EMEP 1-Stage Filter Pack'}, 'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'vuv_fluorescence,aero-laser,al5001':{                                                                                                                                                                     'measurement':{'measuring_instrument':'Aerolaser AL5001'}},
            'ndir,horiba,apma-360':              {                                                                                                                                                                     'measurement':{'measuring_instrument':'Horiba APMA360'}},
            'ndir,horiba,apma-370':              {                                                                                                                                                                     'measurement':{'measuring_instrument':'Horiba APMA370'}},
            'online_crds,picarro,g2301':         {                                                                                                                                                                     'measurement':{'measuring_instrument':'Picarro G2301'}},
            'online_crds,picarro,g2401':         {                                                                                                                                                                     'measurement':{'measuring_instrument':'Picarro G2401'}},
            'na':                                {                                                                                                                                                                     'measurement':{'measuring_instrument':'Unknown'}}}
    #-------------------------------------------
        elif run_details['parameter'] == 'ISOPRENE':
            instrument_map={
            'online_gc':          {'primary_sampling':{'primary_sampling_instrument':'Low Volume Continuous', 'primary_sampling_assumption':True}, 'measurement':{'measuring_instrument':'Gas Chromatography - Unknown Detection', 'measuring_instrument_sampling':'Continuous Injection'}},
            'online_ptr':         {'primary_sampling':{'primary_sampling_instrument':'Low Volume Continuous', 'primary_sampling_assumption':True}, 'measurement':{'measuring_instrument':'Proton Transfer Reaction - Mass Spectrometry', 'measuring_instrument_sampling':'Continuous Injection'}},
            'na':                 {                                                                                                                'measurement':{'measuring_instrument':'Unknown'}}}
    #-------------------------------------------
        elif run_details['parameter'] == 'SO2':
            instrument_map={
            'abs_solution':                                              {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'Reagent Reaction', 'preparation_assumption':True},                                                                                           'measurement':{'measuring_instrument':'Spectrophotometry', 'measuring_assumption':True}},
            'abs_tube':                                                  {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'Detection Tube', 'preparation_assumption':True},                                                                                             'measurement':{'measuring_instrument':'Colorimetry', 'measuring_assumption':True, 'measuring_instrument_sampling':'Manual'}},
            'ams':                                                       {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'Filter Pack', 'preparation_assumption':True},                                                                                                'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True, 'measuring_intrument_process_details':'Some additional details in raw files which suggest this is Ion Chromatography'}}, 
            'bulk_sampler':                                              {'primary_sampling':{'primary_sampling_instrument':'Low Volume Continuous'},                                     'preparation_1':{'sample_preparation':'Filter', 'preparation_assumption':True},                                                                                                     'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'denuder':                                                   {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'Denuder'},                                                                                                                                   'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'doas':                                                      {                                                                                                                                                                                                                                                                                                    'measurement':{'measuring_instrument':'Differential Optical Absorption Spectroscopy'}},
            'flame_photometry':                                          {                                                                                                                                                                                                                                                                                                    'measurement':{'measuring_instrument':'Flame Photometric Detection'}},
            'filter_abs_solution':                                       {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'Filter'},                                          'preparation_2':{'sample_preparation':'Reagent Reaction', 'preparation_assumption':True}, 'measurement':{'measuring_instrument':'Spectrophotometry', 'measuring_assumption':True}},                                                                         
            'filterpack':                                                {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'Filter Pack'},                                                                                                                               'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'filter_1pack':                                              {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'EMEP 1-Stage Filter Pack'},                                                                                                                  'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'filter_2pack':                                              {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'EMEP 2-Stage Filter Pack'},                                                                                                                  'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'filter_3pack':                                              {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'EMEP 3-Stage Filter Pack'},                                                                                                                  'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'filter_2pack,imwm,two_stage_inline':                        {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'EMEP 2-Stage Filter Pack'},                                                                                                                  'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'filter_2pack,nilu,two_stage_open_face':                     {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'EMEP 2-Stage Filter Pack'},                                                                                                                  'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'filter_3pack,nilu,three_stage_open_face':                   {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'EMEP 3-Stage Filter Pack'},                                                                                                                  'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},   
            'filter_3pack,nilu,three_stage_open_face,ic,dionex,ics-2000':{'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'EMEP 3-Stage Filter Pack'},                                                                                                                  'measurement':{'measuring_instrument':'Thermo ICS-2000'}},
            'filter_3pack,nilu,three_stage_open_face,ic,dionex,ics-3000':{'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'EMEP 3-Stage Filter Pack'},                                                                                                                  'measurement':{'measuring_instrument':'Thermo ICS-3000'}},
            'filter_3pack,riemer,spf4':                                  {'primary_sampling':{'primary_sampling_instrument':'Riemer SPF4'},                                               'preparation_1':{'sample_preparation':'EMEP 3-Stage Filter Pack'},                                                                                                                  'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'online_ic':                                                 {'primary_sampling':{'primary_sampling_instrument':'Low Volume Continuous', 'primary_sampling_assumption':True}, 'preparation_1':{'sample_preparation':'Filter', 'preparation_assumption':True},                                                                                                     'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_instrument_sampling':'Continuous Injection'}},
            'trace_level_analyzer':                                      {                                                                                                                                                                                                                                                                                                    'measurement':{'measuring_instrument':'Ultraviolet Fluorescence', 'measuring_assumption':True, 'measuring_instrument_process_details':'Make assumption this technique is ultraviolet fluorescence (exclusive for SO2).'}},
            'tub_denuder':                                               {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'Denuder'},                                                                                                                                   'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumptionn':True}},
            'uv_abs':                                                    {                                                                                                                                                                                                                                                                                                    'measurement':{'measuring_instrument':'Ultraviolet Fluorescence', 'measuring_assumption':True, 'measuring_instrument_process_details':'Make assumption this technique is ultraviolet fluorescence (exclusive for SO2), and not ultraviolet photometry (for measuring O3)'}},
            'uv_fluoresc':                                               {                                                                                                                                                                                                                                                                                                    'measurement':{'measuring_instrument':'Ultraviolet Fluorescence'}},
            'uv_fluoresc,ecotech,ec9850':                                {                                                                                                                                                                                                                                                                                                    'measurement':{'measuring_instrument':'Ecotech EC9850'}},
            'uv_fluoresc,thermo,43i':                                    {                                                                                                                                                                                                                                                                                                    'measurement':{'measuring_instrument':'Thermo 43i'}},
            'uv_fluoresc,thermo,43i-tl':                                 {                                                                                                                                                                                                                                                                                                    'measurement':{'measuring_instrument':'Thermo 43i-TLE'}},
            'uv_fluoresc,thermo,43i-tle':                                {                                                                                                                                                                                                                                                                                                    'measurement':{'measuring_instrument':'Thermo 43i-TLE'}},
            'na':                                                        {                                                                                                                                                                                                                                                                                                    'measurement':{'measuring_instrument':'Unknown'}}}
    #-------------------------------------------
        elif run_details['parameter'] == 'NH3':
            instrument_map={
            'abs_solution':                                              {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'Reagent Reaction', 'preparation_assumption':True}, 'measurement':{'measuring_instrument':'Spectrophotometry', 'measuring_assumption':True}},
            'abs_tube':                                                  {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'Detection Tube', 'preparation_assumption':True},   'measurement':{'measuring_instrument':'Colorimetry', 'measuring_assumption':True, 'measuring_instrument_sampling':'Manual'}}, 
            'ams':                                                       {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'Filter Pack', 'preparation_assumption':True},      'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True, 'measuring_intrument_process_details':'Some additional details in raw files which suggest this is Ion Chromatography'}}, 
            'denuder':                                                   {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'Denuder'},                                         'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'tub_denuder':                                               {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'Denuder'},                                         'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'denuder,ecn,amor':                                          {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'ECN AMOR'}},
            'filter_1pack':                                              {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'EMEP 1-Stage Filter Pack'},                        'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'filter_2pack':                                              {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'EMEP 2-Stage Filter Pack'},                        'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'filter_2pack,nilu,two_stage_open_face':                     {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'EMEP 2-Stage Filter Pack'},                        'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'filter_3pack':                                              {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'EMEP 3-Stage Filter Pack'},                        'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'filter_3pack,riemer,spf4':                                  {'primary_sampling':{'primary_sampling_instrument':'Riemer SPF4'},                                               'preparation_1':{'sample_preparation':'EMEP 3-Stage Filter Pack'},                        'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'filter_3pack,nilu,three_stage_open_face':                   {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'EMEP 3-Stage Filter Pack'},                        'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'filter_3pack,nilu,three_stage_open_face,ic,dionex,ics-2000':{'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'EMEP 3-Stage Filter Pack'},                        'measurement':{'measuring_instrument':'Thermo ICS-2000'}},
            'high_vol_sampler':                                          {'primary_sampling':{'primary_sampling_instrument':'High Volume Continuous'},                                    'preparation_1':{'sample_preparation':'Filter', 'preparation_assumption':True},           'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},                      
            'lvs_teflon':                                                {'primary_sampling':{'primary_sampling_instrument':'Low Volume Continuous'},                                     'preparation_1':{'sample_preparation':'Filter', 'preparation_assumption':True},           'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'online_ic':                                                 {'primary_sampling':{'primary_sampling_instrument':'Low Volume Continuous', 'primary_sampling_assumption':True}, 'preparation_1':{'sample_preparation':'Filter', 'preparation_assumption':True},           'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_instrument_sampling':'Continuous Injection'}},
            'na':                                                        {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Unknown'}}}
    #-------------------------------------------
        elif run_details['parameter'] == 'HNO3':
            instrument_map={
            'abs_tube':                                                  {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'Detection Tube', 'preparation_assumption':True}, 'measurement':{'measuring_instrument':'Colorimetry',        'measuring_assumption':True, 'measuring_instrument_sampling':'Manual'}},                                                                                                   
            'ams':                                                       {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'Filter Pack', 'preparation_assumption':True},    'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True, 'measuring_intrument_process_details':'Some additional details in raw files which suggest this is Ion Chromatography'}}, 
            'denuder':                                                   {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'Denuder'},                                       'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'filter_1pack':                                              {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'EMEP 1-Stage Filter Pack'},                      'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'filter_2pack':                                              {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'EMEP 2-Stage Filter Pack'},                      'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'filter_2pack,nilu,two_stage_open_face':                     {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumptionn':True},              'preparation_1':{'sample_preparation':'EMEP 2-Stage Filter Pack'},                      'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'filter_3pack':                                              {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'EMEP 3-Stage Filter Pack'},                      'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'filter_3pack,nilu,three_stage_open_face':                   {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'EMEP 3-Stage Filter Pack'},                      'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'filter_3pack,nilu,three_stage_open_face,ic,dionex,ics-2000':{'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'EMEP 3-Stage Filter Pack'},                      'measurement':{'measuring_instrument':'Thermo ICS-2000'}},             
            'filter_3pack,riemer,spf4':                                  {'primary_sampling':{'primary_sampling_instrument':'Riemer SPF4'},                                               'preparation_1':{'sample_preparation':'EMEP 3-Stage Filter Pack'},                      'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'online_ic':                                                 {'primary_sampling':{'primary_sampling_instrument':'Low Volume Continuous', 'primary_sampling_assumption':True}, 'preparation_1':{'sample_preparation':'Filter', 'preparation_assumption':True},         'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_instrument_sampling':'Continuous Injection'}}, 
            'na' :                                                       {                                                                                                                                                                                                        'measurement':{'measuring_instrument':'Unknown'}}}
    #-------------------------------------------
        elif (run_details['parameter'] == 'PM10') or (run_details['parameter'] == 'PM2.5') or (run_details['parameter'] == 'PM1'):
            instrument_map={
            'abs_solution':                                            {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'Reagent Reaction', 'preparation_assumption':True}, 'measurement':{'measuring_instrument':'Spectrophotometry', 'measuring_assumption':True}},
            'b-attenuation':                                           {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Beta-Attenuation'}},
            'b-attenuation,opsis,sm200':                               {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'OPSIS SM200'}},
            'beta_gauge_particulate_sampler':                          {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Beta-Attenuation'}},
            'beta_gauge_particulate_sampler,environnement,mp101m':     {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Environnement SA MP101M'}},
            'beta_gauge_particulate_sampler,thermo,5030sharp':         {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Thermo 5030 SHARP'}},
            'beta_ray_absorption':                                     {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Beta-Attenuation'}},
            'dicho':                                                   {'primary_sampling':{'primary_sampling_instrument':'Low Volume Continuous', 'primary_sampling_assumption':True}, 'preparation_1':{'sample_preparation':'Filter', 'preparation_assumption':True},           'measurement':{'measuring_instrument':'Gravimetry', 'measuring_assumption':True, 'measuring_instrument_process_details':'Some additional details in raw files which suggest this is a gravimetric method'}},
            'filterpack':                                              {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'Filter Pack'},                                     'measurement':{'measuring_instrument':'Gravimetry', 'measuring_assumption':True}},
            'filter_1pack':                                            {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'EMEP 1-Stage Filter Pack'},                        'measurement':{'measuring_instrument':'Gravimetry', 'measuring_assumption':True}},
            'filter_3pack':                                            {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True},               'preparation_1':{'sample_preparation':'EMEP 3-Stage Filter Pack'},                        'measurement':{'measuring_instrument':'Gravimetry', 'measuring_assumption':True}},
            'high_vol_sampler':                                        {'primary_sampling':{'primary_sampling_instrument':'High Volume Continuous'},                                    'preparation_1':{'sample_preparation':'Filter', 'preparation_assumption':True},           'measurement':{'measuring_instrument':'Gravimetry', 'measuring_assumption':True}},
            'high_vol_sampler,digitel,da-80':                          {'primary_sampling':{'primary_sampling_instrument':'Digitel DHA-80'},                                                                                                                                      'measurement':{'measuring_instrument':'Gravimetry', 'measuring_assumption':True}},
            'high_vol_sampler,digitel,dha-80':                         {'primary_sampling':{'primary_sampling_instrument':'Digitel DHA-80'},                                                                                                                                      'measurement':{'measuring_instrument':'Gravimetry', 'measuring_assumption':True}},
            'high_vol_sampler,mcv,cav-a_mb':                           {'primary_sampling':{'primary_sampling_instrument':'MCV CAV-A/mb'},                                                                                                                                        'measurement':{'measuring_instrument':'Gravimetry', 'measuring_assumption':True}},
            'high_vol_sampler,mcv,cav-a_msb':                          {'primary_sampling':{'primary_sampling_instrument':'MCV CAV-A/msb'},                                                                                                                                       'measurement':{'measuring_instrument':'Gravimetry', 'measuring_assumption':True}},
            'high_vol_sampler,thermo,vfc-pm10':                        {'primary_sampling':{'primary_sampling_instrument':'Thermo VFC-PM10'},                                                                                                                                     'measurement':{'measuring_instrument':'Gravimetry', 'measuring_assumption':True}},
            'low_vol_sampler':                                         {'primary_sampling':{'primary_sampling_instrument':'Low Volume Continuous'},                                     'preparation_1':{'sample_preparation':'Filter', 'preparation_assumption':True},           'measurement':{'measuring_instrument':'Gravimetry', 'measuring_assumption':True}},
            'low_vol_sampler,derenda,pns_16t':                         {'primary_sampling':{'primary_sampling_instrument':'Comde Derenda PNS 16T'},                                                                                                                               'measurement':{'measuring_instrument':'Gravimetry', 'measuring_assumption':True}},
            'low_vol_sampler,fai_instruments,swam_5a_dual_channel':    {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'FAI Swam 5a'}},
            'low_vol_sampler,leckel,lvs3':                             {'primary_sampling':{'primary_sampling_instrument':'Leckel LVS3'},                                                                                                                                         'measurement':{'measuring_instrument':'Gravimetry', 'measuring_assumption':True}},
            'low_vol_sampler,leckel,mvs6':                             {'primary_sampling':{'primary_sampling_instrument':'Leckel MVS6'},                                                                                                                                         'measurement':{'measuring_instrument':'Gravimetry', 'measuring_assumption':True}},
            'low_vol_sampler,leckel,seq47_50':                         {'primary_sampling':{'primary_sampling_instrument':'Leckel SEQ 47-50'},                                                                                                                                    'measurement':{'measuring_instrument':'Gravimetry', 'measuring_assumption':True}},
            'low_vol_sampler,rupprecht&patashnick,partisol2025':       {'primary_sampling':{'primary_sampling_instrument':'Thermo Partisol 2025i'},                                                                                                                               'measurement':{'measuring_instrument':'Gravimetry', 'measuring_assumption':True}},
            'low_vol_sampler,thermo,partisol2000i':                    {'primary_sampling':{'primary_sampling_instrument':'Thermo Partisol 2000i'},                                                                                                                               'measurement':{'measuring_instrument':'Gravimetry', 'measuring_assumption':True}},
            'low_vol_sampler,thermo,partisol2025':                     {'primary_sampling':{'primary_sampling_instrument':'Thermo Partisol 2025i'},                                                                                                                               'measurement':{'measuring_instrument':'Gravimetry', 'measuring_assumption':True}},
            'lvs_qbq':                                                 {'primary_sampling':{'primary_sampling_instrument':'Low Volume Continuous'},                                     'preparation_1':{'sample_preparation':'Filter', 'preparation_assumption':True},           'measurement':{'measuring_instrument':'Gravimetry', 'measuring_assumption':True}},
            'lvs_teflon':                                              {'primary_sampling':{'primary_sampling_instrument':'Low Volume Continuous'},                                     'preparation_1':{'sample_preparation':'Filter', 'preparation_assumption':True},           'measurement':{'measuring_instrument':'Gravimetry', 'measuring_assumption':True}},
            'impactor':                                                {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Dekati PM10 Impactor', 'measuring_assumption':True, 'measuring_instrument_process_details':'Suggestion on EBAS submission portal that it is this specific instrument.'}},
            'ivlpm':                                                   {'primary_sampling':{'primary_sampling_instrument':'IVL P-Model S10', 'primary_sampling_assumption':True, 'primary_sampling_process_details':'Rough guess it is this specific instrument.'},               'measurement':{'measuring_instrument':'Gravimetry', 'measuring_assumption':True}},
            'optical_particle_counter':                                {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Optical Particle Counter'}},
            'optical_particle_size_spectrometer,grimm,180':            {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Grimm 180'}},
            'optical_particle_size_spectrometer,grimm,190':            {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Grimm 190'}},
            'teom':                                                    {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Tapered Element Oscillating Microbalance - Gravimetry'}},
            'teom_fdms':                                               {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Tapered Element Oscillating Microbalance - Filter Dynamics Measurement System - Gravimetry'}},
            'teom,rupprecht&patashnick,1400':                          {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Thermo 1400ab'}},
            'teom,rupprecht&patashnick,1400a':                         {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Thermo 1400ab'}},            
            'thermo':                                                  {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Thermo 1400ab', 'measuring_assumption':True}},
            'teom,thermo,1405':                                        {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Thermo 1405'}},       
            'na' :                                                     {                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Unknown'}}}
        #-------------------------------------------
        elif (run_details['parameter'] == 'C') or (run_details['parameter'] == 'Cl-') or (run_details['parameter'] == 'EC') or (run_details['parameter'] == 'Na+') or (run_details['parameter'] == 'NH4+') or (run_details['parameter'] == 'NO3-') or (run_details['parameter'] == 'OC') or (run_details['parameter'] == 'SO4--'):
            instrument_map={ 
            'abs_solution':                                              {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True}, 'preparation_1':{'sample_preparation':'Reagent Reaction', 'preparation_assumption':True},                                                                                           'measurement':{'measuring_instrument':'Spectrophotometry', 'measuring_assumption':True}},
            'ams':                                                       {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True}, 'preparation_1':{'sample_preparation':'Filter Pack', 'preparation_assumption':True},                                                                                                'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True, 'measuring_intrument_process_details':'Some additional details in raw files which suggest this is Ion Chromatography'}}, 
            'bulk_sampler':                                              {'primary_sampling':{'primary_sampling_instrument':'Low Volume Continuous'},                       'preparation_1':{'sample_preparation':'Filter', 'preparation_assumption':True},                                                                                                     'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'denuder':                                                   {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True}, 'preparation_1':{'sample_preparation':'Denuder'},                                                                                                                                   'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},                                                                                                                                                      
            'filter_abs_solution':                                       {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True}, 'preparation_1':{'sample_preparation':'Filter'},                                          'preparation_2':{'sample_preparation':'Reagent Reaction', 'preparation_assumption':True}, 'measurement':{'measuring_instrument':'Spectrophotometry', 'measuring_assumption':True}},                                                                         
            'filter_1pack':                                              {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True}, 'preparation_1':{'sample_preparation':'EMEP 1-Stage Filter Pack'},                                                                                                                  'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'filter_2pack':                                              {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True}, 'preparation_1':{'sample_preparation':'EMEP 2-Stage Filter Pack'},                                                                                                                  'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'filter_2pack,imwm,two_stage_inline':                        {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True}, 'preparation_1':{'sample_preparation':'EMEP 2-Stage Filter Pack'},                                                                                                                  'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'filter_2pack,nilu,two_stage_open_face':                     {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True}, 'preparation_1':{'sample_preparation':'EMEP 2-Stage Filter Pack'},                                                                                                                  'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'filter_3pack':                                              {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True}, 'preparation_1':{'sample_preparation':'EMEP 3-Stage Filter Pack'},                                                                                                                  'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},              
            'filter_3pack,nilu,three_stage_open_face':                   {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True}, 'preparation_1':{'sample_preparation':'EMEP 3-Stage Filter Pack'},                                                                                                                  'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'filter_3pack,nilu,three_stage_open_face,ic,dionex,ics-2000':{'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True}, 'preparation_1':{'sample_preparation':'EMEP 3-Stage Filter Pack'},                                                                                                                  'measurement':{'measuring_instrument':'Thermo ICS-2000'}},
            'filter_3pack,nilu,three_stage_open_face,ic,dionex,ics-3000':{'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True}, 'preparation_1':{'sample_preparation':'EMEP 3-Stage Filter Pack'},                                                                                                                  'measurement':{'measuring_instrument':'Thermo ICS-3000'}},
            'filter_3pack,riemer,spf4':                                  {'primary_sampling':{'primary_sampling_instrument':'Riemer SPF4'},                                 'preparation_1':{'sample_preparation':'EMEP 3-Stage Filter Pack'},                                                                                                                  'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'high_vol_sampler':                                          {'primary_sampling':{'primary_sampling_instrument':'High Volume Continuous'},                      'preparation_1':{'sample_preparation':'Filter', 'preparation_assumption':True},                                                                                                     'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},              
            'high_vol_sampler,digitel,da-80':                            {'primary_sampling':{'primary_sampling_instrument':'Digitel DHA-80'},                                                                                                                                                                                                                  'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'high_vol_sampler,digitel,dha-80':                           {'primary_sampling':{'primary_sampling_instrument':'Digitel DHA-80'},                                                                                                                                                                                                                  'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'low_vol_sampler':                                           {'primary_sampling':{'primary_sampling_instrument':'Low Volume Continuous'},                       'preparation_1':{'sample_preparation':'Filter', 'preparation_assumption':True},                                                                                                     'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},    
            'sulphate_monitor':                                          {                                                                                                                                                                                                                                                                                      'measurement':{'measuring_instrument':'Thermo 5020i', 'measuring_assumption':True, 'measuring_intrument_process_details':'Some details in raw files suggest instrument is Thermo 5020i'}}, 
            'na' :                                                       {                                                                                                                                                                                                                                                                                      'measurement':{'measuring_instrument':'Unknown'}}} 

    #-------------------------------------------                                                                                                                                                                                                                                                                                                                                                          
        elif (run_details['parameter'] == 'PM10_C') or (run_details['parameter'] == 'PM2.5_C') or (run_details['parameter'] == 'PM1_C') or (run_details['parameter'] == 'PM10_Cl-') or (run_details['parameter'] == 'PM2.5_Cl-') or (run_details['parameter'] == 'PM1_Cl-') or (run_details['parameter'] == 'PM10_EC') or (run_details['parameter'] == 'PM2.5_EC') or (run_details['parameter'] == 'PM1_EC') or (run_details['parameter'] == 'PM10_Na+') or (run_details['parameter'] == 'PM2.5_Na+') or (run_details['parameter'] == 'PM1_Na+') or (run_details['parameter'] == 'PM10_NH4+') or (run_details['parameter'] == 'PM2.5_NH4+') or (run_details['parameter'] == 'PM1_NH4+') or (run_details['parameter'] == 'PM10_NO3-') or (run_details['parameter'] == 'PM2.5_NO3-') or (run_details['parameter'] == 'PM1_NO3-') or (run_details['parameter'] == 'PM10_OC') or (run_details['parameter'] == 'PM2.5_OC') or (run_details['parameter'] == 'PM1_OC') or (run_details['parameter'] == 'PM10_SO4--') or (run_details['parameter'] == 'PM2.5_SO4--') or (run_details['parameter'] == 'PM1_SO4--'):
            instrument_map={
            'denuder':                                                                                                {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True}, 'preparation_1':{'sample_preparation':'Denuder'},                                                                                                                                                        'preparation_2':{'sample_preparation':'Gravimetry', 'preparation_assumption':True}, 'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},                                                                                                                                                      
            'filter_1pack':                                                                                           {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True}, 'preparation_1':{'sample_preparation':'EMEP 1-Stage Filter Pack'},                                                                                                                                       'preparation_2':{'sample_preparation':'Gravimetry', 'preparation_assumption':True}, 'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'filter_2pack':                                                                                           {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True}, 'preparation_1':{'sample_preparation':'EMEP 2-Stage Filter Pack'},                                                                                                                                       'preparation_2':{'sample_preparation':'Gravimetry', 'preparation_assumption':True}, 'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},  
            'filter_3pack':                                                                                           {'primary_sampling':{'primary_sampling_instrument':'Passive', 'primary_sampling_assumption':True}, 'preparation_1':{'sample_preparation':'EMEP 3-Stage Filter Pack'},                                                                                                                                       'preparation_2':{'sample_preparation':'Gravimetry', 'preparation_assumption':True}, 'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},                   
            'high_vol_sampler':                                                                                       {'primary_sampling':{'primary_sampling_instrument':'High Volume Continuous'},                      'preparation_1':{'sample_preparation':'Filter', 'preparation_assumption':True},                                                                                                                          'preparation_2':{'sample_preparation':'Gravimetry', 'preparation_assumption':True}, 'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},              
            'high_vol_sampler,digitel,da-80':                                                                         {'primary_sampling':{'primary_sampling_instrument':'Digitel DHA-80'},                              'preparation_1':{'sample_preparation':'Gravimetry', 'preparation_assumption':True},                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},                                                                                              
            'high_vol_sampler,digitel,dha-80':                                                                        {'primary_sampling':{'primary_sampling_instrument':'Digitel DHA-80'},                              'preparation_1':{'sample_preparation':'Gravimetry', 'preparation_assumption':True},                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'high_vol_sampler,mcv,cav-a_mb':                                                                          {'primary_sampling':{'primary_sampling_instrument':'MCV CAV-A/mb'},                                'preparation_1':{'sample_preparation':'Gravimetry', 'preparation_assumption':True},                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'high_vol_sampler,mcv,cav-a_msb':                                                                         {'primary_sampling':{'primary_sampling_instrument':'MCV CAV-A/msb'},                               'preparation_1':{'sample_preparation':'Gravimetry', 'preparation_assumption':True},                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},          
            'low_vol_sampler':                                                                                        {'primary_sampling':{'primary_sampling_instrument':'Low Volume Continuous'},                       'preparation_1':{'sample_preparation':'Filter', 'preparation_assumption':True},                                                                                                                          'preparation_2':{'sample_preparation':'Gravimetry', 'preparation_assumption':True}, 'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},   
            'low_vol_sampler,derenda,mvs_6.1':                                                                        {'primary_sampling':{'primary_sampling_instrument':'Comde Derenda MVS 6.1'},                       'preparation_1':{'sample_preparation':'Gravimetry', 'preparation_assumption':True},                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'low_vol_sampler,derenda,pns_16t,thermal-optical_analysis,sunset_laboratory,ocec_lab_instrument_model_5l':{'primary_sampling':{'primary_sampling_instrument':'Comde Derenda PNS 16T'},                       'preparation_1':{'sample_preparation':'Gravimetry', 'preparation_assumption':True},                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Sunset OCEC 5l'}},  
            'low_vol_sampler,leckel,mvs6':                                                                            {'primary_sampling':{'primary_sampling_instrument':'Leckel MVS6'},                                 'preparation_1':{'sample_preparation':'Gravimetry', 'preparation_assumption':True},                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},    
            'low_vol_sampler,leckel,seq47_50':                                                                        {'primary_sampling':{'primary_sampling_instrument':'Leckel SEQ 47-50'},                            'preparation_1':{'sample_preparation':'Gravimetry', 'preparation_assumption':True},                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},  
            'low_vol_sampler,rupprecht&patashnick,partisol2025':                                                      {'primary_sampling':{'primary_sampling_instrument':'Thermo Partisol 2025i'},                       'preparation_1':{'sample_preparation':'Gravimetry', 'preparation_assumption':True},                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},  
            'low_vol_sampler,thermo,partisol2000i':                                                                   {'primary_sampling':{'primary_sampling_instrument':'Thermo Partisol 2000i'},                       'preparation_1':{'sample_preparation':'Gravimetry', 'preparation_assumption':True},                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}}, 
            'low_vol_sampler,thermo,partisol2025':                                                                    {'primary_sampling':{'primary_sampling_instrument':'Thermo Partisol 2025i'},                       'preparation_1':{'sample_preparation':'Gravimetry', 'preparation_assumption':True},                                                                                                                                                                                                          'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},     
            'lvs_denuder_tandem':                                                                                     {'primary_sampling':{'primary_sampling_instrument':'Low Volume Continuous'},                       'preparation_1':{'sample_preparation':'Denuder'},                                                                                                                                                        'preparation_2':{'sample_preparation':'Gravimetry', 'preparation_assumption':True}, 'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}}, 
            'lvs_qbq':                                                                                                {'primary_sampling':{'primary_sampling_instrument':'Low Volume Continuous'},                       'preparation_1':{'sample_preparation':'Filter', 'preparation_assumption':True},                                                                                                                          'preparation_2':{'sample_preparation':'Gravimetry', 'preparation_assumption':True}, 'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},
            'lvs_single':                                                                                             {'primary_sampling':{'primary_sampling_instrument':'Low Volume Continuous'},                       'preparation_1':{'sample_preparation':'Filter', 'preparation_assumption':True},                                                                                                                          'preparation_2':{'sample_preparation':'Gravimetry', 'preparation_assumption':True}, 'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},         
            'lvs_single_twin':                                                                                        {'primary_sampling':{'primary_sampling_instrument':'Low Volume Continuous'},                       'preparation_1':{'sample_preparation':'Filter', 'preparation_assumption':True},                                                                                                                          'preparation_2':{'sample_preparation':'Gravimetry', 'preparation_assumption':True}, 'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},         
            'lvs_teflon':                                                                                             {'primary_sampling':{'primary_sampling_instrument':'Low Volume Continuous'},                       'preparation_1':{'sample_preparation':'Filter', 'preparation_assumption':True},                                                                                                                          'preparation_2':{'sample_preparation':'Gravimetry', 'preparation_assumption':True}, 'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}}, 
            'impactor':                                                                                               {                                                                                                  'preparation_1':{'sample_preparation':'Dekati PM10 Impactor', 'preparation_assumption':True, 'preparation_process_details':'Suggestion on EBAS submission portal that it is this specific instrument.'},                                                                                     'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_assumption':True}},   
            'online_ic':                                                                                              {                                                                                                  'preparation_1':{'sample_preparation':'Tapered Element Oscillating Microbalance - Gravimetry', 'preparation_assumption':True},                                                                                                                                                               'measurement':{'measuring_instrument':'Ion Chromatography', 'measuring_instrument_sampling':'Continuous Injection'}},                           
            'online_thermal-optical_analysis':                                                                        {                                                                                                  'preparation_1':{'sample_preparation':'Tapered Element Oscillating Microbalance - Gravimetry', 'preparation_assumption':True},                                                                                                                                                               'measurement':{'measuring_instrument':'Thermal-Optical Analysis','measuring_instrument_sampling':'Continuous Injection'}}, 
            'na' :                                                                                                    {                                                                                                                                                                                                                                                                                                                                                                                               'measurement':{'measuring_instrument':'Unknown'}}} 
#----------------------------------------------------------------------------------------#
    elif run_details['network'] == 'EIONET':
        if run_details['parameter'] == 'O3':
            instrument_map={}
    
        elif (run_details['parameter'] == 'NO') or (run_details['parameter'] == 'NO2'):
            instrument_map={}
        
        elif run_details['parameter'] == 'CO':
            instrument_map={}
            
        elif run_details['parameter'] == 'ISOPRENE':
            instrument_map={}
        
        elif run_details['parameter'] == 'SO2':
            instrument_map={}
        
        elif run_details['parameter'] == 'NH3':
            instrument_map={}
            
        elif run_details['parameter'] == 'HNO3':
            instrument_map={} 
            
        elif (run_details['parameter'] == 'PM10') or (run_details['parameter'] == 'PM2.5') or (run_details['parameter'] == 'PM1'):
            instrument_map={}
            #instrument_map={
            #'api300e ndir automatic':                                                                                     {'measurement':{'measuring_instrument':''}},
            #'horibaapma360e ndir automatic':                                                                              {'measurement':{'measuring_instrument':''}},
            #'teledyne api 300e gas filter correlation co analyser non-dispersive infrared spectroscopy (ndir) automatic': {'measurement':{'measuring_instrument':''}}}
            
        
#----------------------------------------------------------------------------------------#
    elif run_details['network'] == 'GAW':
        instrument_map={}
        #mapped_network_dict  = instrument_map[instrument_ref]
    
#----------------------------------------------------------------------------------------#
    elif run_details['network'] == 'NAPS':
        if run_details['parameter'] == 'O3':
            mapped_network_dict  = {'measurement':{'measuring_instrument':'Ultraviolet Photometry'}}
        elif (run_details['parameter'] == 'NO') or (run_details['parameter'] == 'NO2'):
            mapped_network_dict  = {'measurement':{'measuring_instrument':'Chemiluminescence (internal molybdenum converter)'}}
        elif run_details['parameter'] == 'CO':
            mapped_network_dict  = {'measurement':{'measuring_instrument':'Non-Dispersive Infrared Absorption (Gas-Filter Correlation)'}}
        elif run_details['parameter'] == 'ISOPRENE':
            mapped_network_dict  = {'measurement':{'measuring_instrument':'Gas Chromatography - Mass Spectrometry'}}
        
#----------------------------------------------------------------------------------------#
    elif run_details['network'] == 'SEARCH':
        if run_details['parameter'] == 'O3':
            mapped_network_dict  = {'measurement':{'measuring_instrument':'Ultraviolet Photometry'}}
        elif (run_details['parameter'] == 'NO') or (run_details['parameter'] == 'NO2'):
            mapped_network_dict  = {'measurement':{'measuring_instrument':'Chemiluminescence (internal photolytic converter)'}}
        elif run_details['parameter'] == 'CO':
            mapped_network_dict  = {'measurement':{'measuring_instrument':'Non-Dispersive Infrared Absorption (Gas-Filter Correlation)'}}
#----------------------------------------------------------------------------------------#
#----------------------------------------------------------------------------------------#    
    
    #get list of af all currently un-mapped instruments
    miss_instru = sorted(glob.glob('/esarchive/obs/ghost/logs/unmapped_instruments/*'))
    miss_instru = [instru.split('/unmapped_instruments/')[-1] for instru in miss_instru]
        
    #make sure instrument_ref is lower-case, and replace empty single spaces and forward slashes with underscores
    instrument_ref = instrument_ref.replace(" ", "_").replace("/", "_").lower()
        
    #create network:species:network_instrument_name variable for writing to log file if do have not mapping for the instrument 
    specie_instrument = '%s:%s:%s'%(run_details['network'],run_details['parameter'],instrument_ref)
    instrument_filename = '/esarchive/obs/ghost/logs/unmapped_instruments/%s'%(specie_instrument)
    
    #load in standard sampling types database
    standard_sampling_dict = sampling_types_database()
    #load in standard preparation database
    standard_preparation_dict = sampling_preparation_database()
    #load in standard measurement instrument database
    standard_measurement_dict = measurement_methodologies_database()
    
    #set flags for determining if primary sampling/sampling preparation/measurement method can actually isolate/measure parameter processing
    erroneous_primary_sampling_flag = False
    erroneous_sample_preparation_flag = False
    erroneous_measurement_methodology_flag = False
    #set flag for determining if measurement method is qa accepted for measurement of parameter processing 
    not_qc_accepted_method_flag = False
    
    #map network reported sampling/preparation/measurement information to that in standard dicts
    if instrument_ref in instrument_map.keys():
        #flag to track if instrument is contained/or not within standard instrument dictionary
        un_mapped_method = False
        mapped_network_dict = instrument_map[instrument_ref]

        #construct 1 large standardised dictionary for measurement process using mapped standardised sampling/preparation/measurement information
        standard_sampling_information = {}
        standard_preparation_information = {}
        standard_measurement_information = {}
    
        #--------------------------------------------------------------------------------#
        #is there primary sampling information?
        if 'primary_sampling' in mapped_network_dict.keys():
            #get mapped network measurement information, for primary sampling 
            network_sampling_dict = deepcopy(mapped_network_dict['primary_sampling'])
            #get specific primary sampling instrument name
            sampling_instrument = deepcopy(network_sampling_dict['primary_sampling_instrument'])
            #get standard primary sampling information for specific instrument 
            standard_sampling_information = deepcopy(standard_sampling_dict[sampling_instrument])
            #overwrite standard primary sampling information with more specific information from network (if given)
            for k in network_sampling_dict.keys():
                standard_sampling_information[k] = deepcopy(network_sampling_dict[k])
            #rename sampling type to be specific for primary sampling
            if 'sampling_type' in standard_sampling_information.keys():
                standard_sampling_information['primary_sampling_type'] = deepcopy(standard_sampling_information['sampling_type'])
                del standard_sampling_information['sampling_type']
                
            #determine if current parameter processing is validly isolated by primary sampling method
            if 'primary_sampling_isolated_parameters' in standard_sampling_information.keys():
                if (run_details['parameter'] not in standard_sampling_information['primary_sampling_isolated_parameters']) & (run_details['parameter'].split('_')[0] not in standard_sampling_information['primary_sampling_isolated_parameters']):
                    erroneous_primary_sampling_flag = True
            
            #check if know specific primary sampling instrument name
            if 'unknown_sampling_instrument' in standard_sampling_information.keys():
                standard_sampling_information['unknown_primary_sampling_instrument'] = True
                
            #if have sample preparation information given by primary sampling instrument, add it to standard preparation dict
            if 'sample_preparation' in standard_sampling_information.keys():
                preparation_info = deepcopy(standard_sampling_information['sample_preparation'])
                del standard_sampling_information['sample_preparation']
                if pd.isnull(preparation_info) == False:
                    #add sample preparation field (if exists already, append to string, connected by semi-colon)
                    if 'sample_preparation' in standard_preparation_information.keys():
                        standard_preparation_information['sample_preparation'] = '%s;%s'%(deepcopy(standard_preparation_information['sample_preparation']),deepcopy(preparation_info))
                    else:
                        standard_preparation_information['sample_preparation'] = deepcopy(preparation_info)
                    #split by semi-colon, to split out separate sample preparation information
                    preparation_info = preparation_info.split(';')
                    #iterate through fields of standard sample preparation information and concatenate to standard_preparation_information dictionary
                    for prep in preparation_info:
                        prep_standard = deepcopy(standard_preparation_dict[prep])
                        for field in prep_standard.keys():
                            
                            #determine if current parameter processing is validly isolated by sample preparation
                            if field == 'preparation_isolated_parameters':
                                if (run_details['parameter'] not in prep_standard[field]) & (run_details['parameter'].split('_')[0] not in prep_standard[field]):
                                    erroneous_sample_preparation_flag = True
                            
                            #if field already exists in standard_preparation_information dict, concatenate it
                            elif field in standard_preparation_information:
                                #maintain this field value as True, if already given (will only be there if has a value of True)
                                if field == 'preparation_assumption':
                                    pass
                                #concatenate these fields in a string (connected with semi-colons)
                                else:
                                    standard_preparation_information[field] = '%s;%s'%(deepcopy(standard_preparation_information[field]), deepcopy(prep_standard[field])) 
                            #if field not yet in standard_preparation_information dict, simply add it
                            else:
                                standard_preparation_information[field] = deepcopy(prep_standard[field])
                 
            #for primary sampling flow rates, limit each variable to just 1 value, specific to parameter currently processing
            #first, check if primary sampling instrument is known to filter current parameter processing
            check_if_dict_keys = ['primary_sampling_instrument_documented_flow_rate', 'primary_sampling_instrument_reported_flow_rate']
            if any(var in standard_sampling_information.keys() for var in check_if_dict_keys) == True:
                if erroneous_primary_sampling_flag == False:
                    for k in check_if_dict_keys:
                        param = deepcopy(standard_sampling_information[k])
                        if type(param) == dict:
                            standard_sampling_information[k] = param[run_details['parameter']]
                #if primary sampling instrument not known for filtering of parameter currently processing, then make sure flow rates are NaN
                else:
                    for k in check_if_dict_keys:
                        standard_sampling_information[k] = np.NaN 
            
        #--------------------------------------------------------------------------------#
        #is there sample preparation information?
        #check for all different sample preparation information (i.e. preparation_1, preparation_2, preparation_3..)
        have_preparation = True
        preparation_n = 1
        while have_preparation == True:
            if 'preparation_%s'%(preparation_n) in mapped_network_dict.keys():
                #get mapped network measurement information, for sample preparation_n
                network_preparation_dict = deepcopy(mapped_network_dict['preparation_%s'%(preparation_n)])
                #get specific sample preparation name
                preparation_name = deepcopy(network_preparation_dict['sample_preparation'])
                #get standard sample preparation information for specific preparation type
                #in some instances the preparation is another type of measurement - handle this
                try:
                    prep_standard = deepcopy(standard_preparation_dict[preparation_name])
                #measurement method
                except:
                    prep_standard = deepcopy(standard_measurement_dict[preparation_name])
                    #remove all fields but 'methodology', 'measuring_instrument_sampling', 'sample_preparation', 'measured_parameters' and 'qa_accepted_parameters'
                    prep_standard = {key: prep_standard[key] for key in ['methodology','measuring_instrument_sampling','sample_preparation','measured_parameters','qa_accepted_parameters']}
                    #change 'methodology' to 'preparation_type' 
                    prep_standard['preparation_type'] = deepcopy(prep_standard['methodology'])
                    del prep_standard['methodology']
                    #if do not have primary sampling determined yet, write it to standard sampling dict
                    if 'primary_sampling_instrument' not in standard_sampling_information.keys(): 
                        if pd.isnull(prep_standard['measuring_instrument_sampling']) == False:
                            sampling_info = deepcopy(standard_sampling_dict[prep_standard['measuring_instrument_sampling']])
                            sampling_info['primary_sampling_instrument'] = deepcopy(prep_standard['measuring_instrument_sampling'])
                            standard_sampling_information = deepcopy(sampling_info)
                    del prep_standard['measuring_instrument_sampling']
                    #handle extra measurement 'sample prepration' - could be multiple (separate by semi-colon)
                    #split by semi-colon, to split out separate sample preparation information
                    if pd.isnull(prep_standard['sample_preparation']) == False:
                        preparation_info = deepcopy(prep_standard['sample_preparation']).split(';')
                        #iterate through fields of standard sample preparation information and add/concatenate to standard_preparation_information dictionary
                        for prep in preparation_info:
                            prep_standard_it = deepcopy(standard_preparation_dict[prep])
                            for field in prep_standard_it.keys():
                                
                                #determine if current parameter processing is validly isolated by sample preparation
                                if field == 'preparation_isolated_parameters':
                                    if (run_details['parameter'] not in prep_standard_it[field]) & (run_details['parameter'].split('_')[0] not in prep_standard_it[field]):
                                        erroneous_sample_preparation_flag = True
                                
                                #if field already exists in standard_preparation_information dict, concatenate it
                                if field in standard_preparation_information:
                                    #maintain this field value as True, if already given (will only be there if has a value of True)
                                    if field == 'preparation_assumption':
                                        pass
                                    #concatenate these fields in a string (connected with semi-colons)
                                    else:
                                        standard_preparation_information[field] = '%s;%s'%(deepcopy(standard_preparation_information[field]), deepcopy(prep_standard_it[field])) 
                                #if field not yet in standard_preparation_information dict, simply add it
                                else:
                                    standard_preparation_information[field] = deepcopy(prep_standard_it[field])
                    #if sample preparation is NaN, then remove the field
                    else:
                        del prep_standard['sample_preparation']
                    
                    #determine if current parameter processing is validly isolated by sample preparation (given by 'measured_parameters')
                    if (run_details['parameter'] not in prep_standard['measured_parameters']) & (run_details['parameter'].split('_')[0] not in prep_standard['measured_parameters']):
                        erroneous_sample_preparation_flag = True                    
                    del prep_standard['measured_parameters']
                    
                    #determine if measurement method used is qa accepted for current parameter processing
                    if (run_details['parameter'] not in prep_standard['qa_accepted_parameters']) & (run_details['parameter'].split('_')[0] not in prep_standard['qa_accepted_parameters']):
                        not_qc_accepted_method_flag = True
                    del prep_standard['qa_accepted_parameters']
                    
                #overwrite standard sample preparation information with more specific information from network (if given)
                for k in network_preparation_dict.keys():
                    if k == 'sample_preparation': 
                        if 'sample_preparation' in prep_standard.keys():
                            prep_standard[k] = '%s;%s'%(deepcopy(prep_standard[k]),deepcopy(network_preparation_dict[k]))
                        else:
                            prep_standard[k] = deepcopy(network_preparation_dict[k])
                    else:    
                        prep_standard[k] = deepcopy(network_preparation_dict[k])

                #iterate through fields of standard sample preparation information and add/concatenate to standard_preparation_information dictionary
                for field in prep_standard.keys():
                    
                    #determine if current parameter processing is validly isolated by sample preparation
                    if field == 'preparation_isolated_parameters':
                        if (run_details['parameter'] not in prep_standard[field]) & (run_details['parameter'].split('_')[0] not in prep_standard[field]):
                            erroneous_sample_preparation_flag = True
                    
                    #if field already exists in standard_preparation_information dict, concatenate it
                    if field in standard_preparation_information:
                        #maintain this field value as True, if already given (will only be there if has a value of True)
                        if field == 'preparation_assumption':
                            pass
                        #concatenate these fields in a string (connected with semi-colons)
                        else:
                            standard_preparation_information[field] = '%s;%s'%(deepcopy(standard_preparation_information[field]), deepcopy(prep_standard[field])) 
                    #if field not yet in standard_preparation_information dict, simply add it
                    else:
                        standard_preparation_information[field] = deepcopy(prep_standard[field])
                
                preparation_n += 1
            else:
                have_preparation = False
        
        #--------------------------------------------------------------------------------#
        #is there measurement information? 
        if 'measurement' in mapped_network_dict.keys():
            #get mapped network measurement information, for measuring instrument
            network_measurement_dict = deepcopy(mapped_network_dict['measurement'])
            #get specific measuring instrument name
            measuring_instrument = deepcopy(network_measurement_dict['measuring_instrument'])
            #get standard measuring instrument information for specific instrument 
            standard_measurement_information = deepcopy(standard_measurement_dict[measuring_instrument])
            #overwrite standard measurement information with more specific information from network (if given)
            for k in network_measurement_dict.keys():
                standard_measurement_information[k] = deepcopy(network_measurement_dict[k])
            
            #merge sampling type information for specific measuring_instrument sampling into dictionary  
            if 'measuring_instrument_sampling' in standard_measurement_information.keys():
                if pd.isnull(standard_measurement_information['measuring_instrument_sampling']) == False: 
                    sampling_info = deepcopy(standard_sampling_dict[standard_measurement_information['measuring_instrument_sampling']])
                    #merge info into standard measurement dictionary
                    standard_measurement_information = dict(standard_measurement_information.items() + sampling_info.items())
                    #rename sampling type to be specific for measuring instrument
                    standard_measurement_information['measuring_instrument_sampling_type'] = deepcopy(standard_measurement_information['sampling_type'])
                    del standard_measurement_information['sampling_type']
                del standard_measurement_information['measuring_instrument_sampling']
                    
                
            #determine if measurement method used can actually measure current parameter processing
            if run_details['parameter'] not in standard_measurement_information['measured_parameters']:
                erroneous_measurement_methodology_flag = True
            #determine if measurement method used is qa accepted for current parameter processing
            if run_details['parameter'] not in standard_measurement_information['qa_accepted_parameters']:
                not_qc_accepted_method_flag = True
            
            #if have sample preparation information, add it to standard preparation dict
            if 'sample_preparation' in standard_measurement_information.keys():
                preparation_info = deepcopy(standard_measurement_information['sample_preparation'])
                del standard_measurement_information['sample_preparation']
                if pd.isnull(preparation_info) == False:
                    #add sample preparation field (if exists already, append to string, connected by semi-colon)
                    if 'sample_preparation' in standard_preparation_information.keys():
                        standard_preparation_information['sample_preparation'] = '%s;%s'%(deepcopy(standard_preparation_information['sample_preparation']),deepcopy(preparation_info))
                    else:
                        standard_preparation_information['sample_preparation'] = deepcopy(preparation_info)
                    #split by semi-colon, to split out separate sample preparation information
                
                    preparation_info = preparation_info.split(';')
                    #iterate through fields of standard sample preparation information and add/concatenate to standard_preparation_information dictionary
                    for prep in preparation_info:
                        prep_standard = deepcopy(standard_preparation_dict[prep])
                        for field in prep_standard.keys():
                            
                            #determine if current parameter processing is validly isolated by sample preparation
                            if field == 'preparation_isolated_parameters':
                                if (run_details['parameter'] not in prep_standard[field]) & (run_details['parameter'].split('_')[0] not in prep_standard[field]):
                                    erroneous_sample_preparation_flag = True
                            
                            #if field already exists in standard_preparation_information dict, concatenate it
                            if field in standard_preparation_information:
                                #maintain this field value as True, if already given (will only be there if has a value of True)
                                if field == 'preparation_assumption':
                                    pass
                                #concatenate these fields in a string (connected with semi-colons)
                                else:
                                    standard_preparation_information[field] = '%s;%s'%(deepcopy(standard_preparation_information[field]), deepcopy(prep_standard[field])) 
                            #if field not yet in standard_preparation_information dict, simply add it
                            else:
                                standard_preparation_information[field] = deepcopy(prep_standard[field])
            
            #for measurement LODs/uncertainties/precisions/accuracies/zero drifts/span drifts/resolutions/cross sections/flow rates, limit each variable to just 1 value, specific to parameter currently processing
            #first, check if measurement method is known for measurement of current parameter processing
            check_if_dict_keys = ['reported_lower_limit_of_detection', 'documented_lower_limit_of_detection', 'reported_upper_limit_of_detection', 'documented_upper_limit_of_detection', 'reported_uncertainty', 'documented_uncertainty', 'reported_precision', 'documented_precision', 'reported_accuracy', 'documented_accuracy', 'reported_zero_drift', 'documented_zero_drift', 'reported_span_drift', 'documented_span_drift', 'reported_resolution', 'documented_resolution', 'reported_absorption_cross_section', 'documented_absorption_cross_section', 'measuring_instrument_reported_flow_rate', 'measuring_instrument_documented_flow_rate']
            if erroneous_measurement_methodology_flag == False:
                for k in check_if_dict_keys:
                    param = deepcopy(standard_measurement_information[k])
                    if type(param) == dict:
                        standard_measurement_information[k] = param[run_details['parameter']]
            #if measurement method not known for measurement of parameter currently processing, then make sure LOD/precisions are NaN
            else:
                for k in check_if_dict_keys:
                    standard_measurement_information[k] = np.NaN 
        
        #if methodology has been successfully mapped, but is still contained within unapped_instrumentes directory, remove file from directory
        if specie_instrument in miss_instru:
            #check if instrument file still exists before removing it (for parallel cases)
            if os.path.isfile(instrument_filename) == True:
                os.remove(instrument_filename)
        
        #merge processed standard primary sampling, preparation and measurement dicts
        standard_dict = dict(standard_sampling_information.items() + standard_preparation_information.items() + standard_measurement_information.items())
        
        #add stem of instrument manual locations on esarchive to manual names in standard dictionary
        manual_stem = '/esarchive/obs/ghost/process/documentation/instrument_manuals/'
        #primary sampling instrument manuals
        if 'primary_sampling_instrument_manual_name' in standard_dict.keys():
            standard_dict['primary_sampling_instrument_manual_name'] = '%s%s'%(manual_stem,standard_dict['primary_sampling_instrument_manual_name'])
        #measuring instrument manuals
        if 'measuring_instrument_manual_name' in standard_dict.keys():  
            #make sure existing value is not NaN
            if pd.isnull(standard_dict['measuring_instrument_manual_name']) == False:
                standard_dict['measuring_instrument_manual_name'] = '%s%s'%(manual_stem,standard_dict['measuring_instrument_manual_name'])
         
    #if do not have mapping details for instrument then write file in unmapped_instruments directory (if not already written)
    else:
        un_mapped_method = True
        standard_dict = {}
        
        if specie_instrument not in miss_instru:
            #check if instrument file does not exist yet before writing it (for parallel cases)
            if os.path.isfile(instrument_filename) == False:
                f= open(instrument_filename,"w+")
                f.close() 
            
    #add in empty NaN fields for all potential parameters that are not already in dictionary 
    all_fields = ['primary_sampling_instrument', 'primary_sampling_type', 'primary_sampling_instrument_documented_flow_rate', 'primary_sampling_instrument_reported_flow_rate', 'primary_sampling_process_details', 'primary_sampling_instrument_manual_name', 'primary_sampling_instrument_further_details', 'sample_preparation', 'preparation_type', 'preparation_process_details', 'preparation_further_details', 'measuring_instrument', 'methodology', 'measuring_instrument_sampling_type', 'measuring_instrument_documented_flow_rate', 'measuring_instrument_reported_flow_rate', 'measuring_instrument_process_details', 'measuring_instrument_manual_name', 'measuring_instrument_further_details', 'reported_lower_limit_of_detection', 'documented_lower_limit_of_detection', 'reported_upper_limit_of_detection', 'documented_upper_limit_of_detection', 'reported_uncertainty', 'documented_uncertainty', 'reported_accuracy', 'documented_accuracy', 'reported_precision', 'documented_precision', 'reported_zero_drift', 'documented_zero_drift', 'reported_span_drift', 'documented_span_drift', 'reported_resolution', 'documented_resolution', 'reported_absorption_cross_section', 'documented_absorption_cross_section']
    for field in all_fields:
        if field not in standard_dict:
            standard_dict[field] = np.NaN

#----------------------------------------------------------------------------------------# 
    #QC checks for methodology/instrumentation
    
    #is methodology un-mapped (i.e. do not have mapping for network provided methodology to standard methodology)?
    if un_mapped_method == True:
        un_mapped_method_flag = True
    else:
        un_mapped_method_flag = False
    
    #has primary sampling information been assumed?
    if 'primary_sampling_assumption' in standard_dict.keys():
        primary_sampling_assumption_flag = True
    else:
        primary_sampling_assumption_flag = False
            
    #has sample preparation information been assumed?
    if 'preparation_assumption' in standard_dict.keys():
        preparation_assumption_flag = True
    else:
        preparation_assumption_flag = False
    
    #has measurement information been assumed?
    if 'measuring_assumption' in standard_dict.keys():
        measuring_assumption_flag = True
    else:
        measuring_assumption_flag = False
        
    #is the specific primary sampling instrument unknown?
    #this is False for "passive", "remote" and "manual" types as there is no physically real sampling instrument in these cases
    if 'unknown_primary_sampling_instrument' in standard_dict.keys():
        unknown_primary_sampling_instrument_flag = True
    else:
        unknown_primary_sampling_instrument_flag = False
        
    #is the specific measuring instrument unknown?
    #if measuring_instrument_sampling_type is "manual" then this should be False, as there is no physically real measuring instrument in this case
    if ('unknown_measuring_instrument' in standard_dict.keys()) & (standard_dict['measuring_instrument_sampling_type'] != 'manual'):
        unknown_measuring_instrument_flag = True
    else:
        unknown_measuring_instrument_flag = False
        
    #is the primary sampling capable of isolating the current paramater for subsequent measurement?
    #***only do check when have a standalone primary sampling instrument
    #given by erroneous_primary_sampling_flag (processed above)
    
    #is the sampling preparation capable of isolating the current paramater for subsequent measurement?
    #***only do check when have sample preparation stages
    #given by erroneous_sample_preparation_flag (processed above)

    #is the measurement methodology actually capable of measuring the current parameter?
    #***only do check when know method (or have assumed method) 
    #given by erroneous_measurement_methodology_flag (processed above) 
        
    #is the measurement methodology not QC accepted for parameter it is measuring?
    #***only do check when know method (or have assumed method)
    #given by not_qc_accepted_method_flag (processed above)
        
    #package flags together
    methodology_qa_flags = {'un_mapped_method_flag':un_mapped_method_flag, 'primary_sampling_assumption_flag':primary_sampling_assumption_flag, 'preparation_assumption_flag':preparation_assumption_flag, 'measuring_assumption_flag':measuring_assumption_flag, 'unknown_primary_sampling_instrument_flag':unknown_primary_sampling_instrument_flag, 'unknown_measuring_instrument_flag':unknown_measuring_instrument_flag, 'erroneous_primary_sampling_flag':erroneous_primary_sampling_flag, 'erroneous_sample_preparation_flag':erroneous_sample_preparation_flag, 'erroneous_measurement_methodology_flag':erroneous_measurement_methodology_flag, 'not_qc_accepted_method_flag':not_qc_accepted_method_flag}

    #print instrument_ref
    #for field in all_fields:
    #    print field,':',standard_dict[field]
    #print methodology_qa_flags

    return standard_dict, methodology_qa_flags