helikite.instruments.pops

  1. POPS -> HK_20220929x001.csv (has pressure)

The POPS is an optical particle counter. It provides information on the particle number concentration (how many particles per cubic centimeter) and the size distribution for particles larger than 180 nm roughly. Resolution: 1 sec

Important variables to keep: DateTime, P, POPS_Flow, b0 -> b15

PartCon needs to be re-calculated by adding b3 to b15 and deviding by averaged POPS_Flow (b0 -> b15 can be converted to dN/dlogDp values with conversion factors I have)

Housekeeping variables to look at: POPS_flow -> flow should be just below 3, and check for variability increase

Attributes

pops

Classes

POPS

Helper class that provides a standard way to create an ABC using

Module Contents

class helikite.instruments.pops.POPS(*args, **kwargs)

Bases: helikite.instruments.base.Instrument

Helper class that provides a standard way to create an ABC using inheritance.

__repr__()
property has_size_distribution: bool
set_time_as_index(df: pandas.DataFrame) pandas.DataFrame

Set the DateTime as index of the dataframe and correct if needed

Using values in the time_offset variable, correct DateTime index

data_corrections(df: pandas.DataFrame, *args, **kwargs) pandas.DataFrame

Default callback function for data corrections.

Return with no changes

read_data() pandas.DataFrame

Read data into dataframe

This allows a custom read function to parse the CSV/TXT into a dataframe, for example cleaning dirty data at the end of the file in memory without altering the input file (see flight computer conf).

calculate_derived(df: pandas.DataFrame, verbose: bool, *args, **kwargs) pandas.DataFrame

This function calculates the total concentration of POPS particles and adds it to the dataframe.

Parameters: - df: DataFrame with POPS data and altitude.

Returns: - df: Updated DataFrame with POPS total concentration and dNdlogDp for each bin.

normalize(df: pandas.DataFrame, reference_instrument: helikite.instruments.base.Instrument, verbose: bool, *args, **kwargs) pandas.DataFrame

Normalize POPS concentrations to STP conditions.

Parameters: df (pd.DataFrame): DataFrame containing POPS measurements and necessary metadata

like ‘flight_computer_pressure’ and ‘Average_Temperature’.

Returns: df (pd.DataFrame): Updated DataFrame with new STP-normalized columns added.

plot_raw_and_normalized(df: pandas.DataFrame, verbose: bool, *args, **kwargs)

Plots POPS concentration, raw and normalized to STP conditions, against altitude

plot_distribution(df: pandas.DataFrame, verbose: bool, time_start: datetime.datetime, time_end: datetime.datetime, subplot: tuple[matplotlib.pyplot.Figure, matplotlib.pyplot.Axes] | None = None)

This function generates a contour plot for POPS size distribution and total concentration.

Parameters: - df: DataFrame with the POPS data. - time_start: Optional, start time for the x-axis (datetime formatted). - time_end: Optional, end time for the x-axis (datetime formatted).

static _dNdlogDp_calculation(df_pops, dp_notes)
helikite.instruments.pops.pops