Instruments#
This module implements UATAQ instruments as classes.
Each instrument class is a subclass of the Instrument abstract base class and implements methods for reading and parsing data files.
The Instrument class provides a common interface for all instrument classes and defines abstract methods that must be implemented by each subclass.
- class uataq.instruments.Instrument(SID, name, loggers, config)[source]#
Bases:
objectAbstract base class for instrument objects.
- read_data(group: str, lvl: str, time_range: TimeRange, num_processes: int, file_pattern: str) pd.DataFrame[source]#
Read and parse group data files for the given level and time range using multiple processes.
- get_datafiles(group, lvl, time_range, pattern=None)[source]#
Get data files for the given level and time range from the groupspace.
- Parameters:
- Returns:
A list of data files.
- Return type:
- standardize_data(group, data)[source]#
Manipulate the data to a standard format between research groups, renaming columns, converting units, mapping values, etc. as needed.
- Parameters:
group (str) – The research group whose data to standardize.
data (pandas.DataFrame) – The data to standardize.
- Returns:
The standardized data.
- Return type:
- read_data(group, lvl=None, time_range=None, num_processes=1, file_pattern=None)[source]#
Read and parse data files for the given level and time range, using multiple processes if specified.
- Parameters:
group (str) – The research group whose data to read.
lvl (str) – The level of the data to read.
time_range (TimeRange | TimeRangeTypes) – The time range to read data. Default is None which reads all available data.
num_processes (int | 'max') – The number of processes to use for parallelization.
file_pattern (str) – A string pattern to filter the file paths.
- Returns:
A concatenated DataFrame containing the parsed data from files.
- Return type:
- uataq.instruments.configure_instrument(SID, name, config, loggers=None)[source]#
Configure an instrument object based on the given configuration settings.
- Parameters:
- Returns:
An instrument object configured with the given settings.
- Return type:
- Raises:
ValueError – If the instrument model is not found in the catalog.
ValueError – If no loggers are found for the instrument at the site.
- class uataq.instruments.InstrumentEnsemble(SID, configs, loggers=None)[source]#
Bases:
objectContainer for an ensemble of instruments at a site.
- class uataq.instruments.SensorMixin[source]#
Bases:
objectMixin for instrument objects that measure a pollutant.
- Attributes:
pollutants (tuple): Tuple of pollutants measured by the instrument.
- class uataq.instruments.BB_205(SID, name, loggers, config)[source]#
Bases:
Instrument,SensorMixin
- class uataq.instruments.BB_405(SID, name, loggers, config)[source]#
Bases:
Instrument,SensorMixin
- class uataq.instruments.CR1000(SID, name, loggers, config)[source]#
Bases:
Instrument
- class uataq.instruments.GPS(SID, name, loggers, config)[source]#
Bases:
Instrument- read_data(group, lvl=None, time_range=None, num_processes=1, file_pattern=None)[source]#
Read and parse data files for the given level and time range, using multiple processes if specified.
- Parameters:
group (str) – The research group whose data to read.
lvl (str) – The level of the data to read.
time_range (TimeRange | TimeRangeTypes) – The time range to read data. Default is None which reads all available data.
num_processes (int | 'max') – The number of processes to use for parallelization.
file_pattern (str) – A string pattern to filter the file paths.
- Returns:
A concatenated DataFrame containing the parsed data from files.
- Return type:
- class uataq.instruments.LGR_NO2(SID, name, loggers, config)[source]#
Bases:
Instrument,SensorMixin
- class uataq.instruments.LGR_UGGA(SID, name, loggers, config)[source]#
Bases:
Instrument,SensorMixin
- class uataq.instruments.Licor_6262(SID, name, loggers, config)[source]#
Bases:
Instrument,SensorMixin
- class uataq.instruments.Licor_7000(SID, name, loggers, config)[source]#
Bases:
Licor_6262
- class uataq.instruments.Magee_AE33(SID, name, loggers, config)[source]#
Bases:
Instrument,SensorMixin
- class uataq.instruments.MetOne_ES405(SID, name, loggers, config)[source]#
Bases:
Instrument,SensorMixin
- class uataq.instruments.MetOne_ES642(SID, name, loggers, config)[source]#
Bases:
Instrument,SensorMixin
- class uataq.instruments.Teledyne_T200(SID, name, loggers, config)[source]#
Bases:
Instrument,SensorMixin
- class uataq.instruments.Teledyne_T300(SID, name, loggers, config)[source]#
Bases:
Instrument,SensorMixin
- class uataq.instruments.Teledyne_T400(SID, name, loggers, config)[source]#
Bases:
Instrument,SensorMixin
- class uataq.instruments.Teledyne_T500u(SID, name, loggers, config)[source]#
Bases:
Instrument,SensorMixin
- class uataq.instruments.Teom_1400ab(SID, name, loggers, config)[source]#
Bases:
Instrument,SensorMixin
- uataq.instruments.catalog: dict[str, type[Instrument]] = {'2b_205': <class 'uataq.instruments.BB_205'>, '2b_405': <class 'uataq.instruments.BB_405'>, 'cr1000': <class 'uataq.instruments.CR1000'>, 'gps': <class 'uataq.instruments.GPS'>, 'lgr_no2': <class 'uataq.instruments.LGR_NO2'>, 'lgr_ugga': <class 'uataq.instruments.LGR_UGGA'>, 'licor_6262': <class 'uataq.instruments.Licor_6262'>, 'licor_7000': <class 'uataq.instruments.Licor_7000'>, 'magee_ae33': <class 'uataq.instruments.Magee_AE33'>, 'metone_es405': <class 'uataq.instruments.MetOne_ES405'>, 'metone_es642': <class 'uataq.instruments.MetOne_ES642'>, 'teledyne_t200': <class 'uataq.instruments.Teledyne_T200'>, 'teledyne_t300': <class 'uataq.instruments.Teledyne_T300'>, 'teledyne_t400': <class 'uataq.instruments.Teledyne_T400'>, 'teledyne_t500u': <class 'uataq.instruments.Teledyne_T500u'>, 'teom_1400ab': <class 'uataq.instruments.Teom_1400ab'>}#
Instrument catalog