Skip to main content

Code to process ion spectrometer data files

Project description

data

NAIS processor

Use this code package to process NAIS (Neutral cluster and Air Ion Spectrometer, Airel Ltd.) data files.

The code corrects for diffusion losses in the inlet line (Gromley and Kennedy, 1948) and applies an ion mode calibration (Wagner et al. 2016). Optionally the data can be corrected to standard conditions (273.15 K, 101325 Pa), which can be useful when comparing aerosol particle and ion data from various locations at different altitudes.

Optionally one can also apply a cleaning procedure to the data where the corona ion band is removed from the particle data and instances of electrometer noise are removed from ion and particle data.

Documentation

Installation

pip install nais-processor

Example usage

Open the python prompt and load methods from the nais_processor module. Then use the make_config() method to create a configuration file that is used at processing the data files.

$ python
>>> from nais_processor import *
>>> make_config()

Enter name of configuration file (full path)
E.g. /home/user/campaign.yml
> /home/user/viikki.yml

Give full path(s) to raw data. If multiple paths give them as comma separated list.
E.g. /home/user/data/2021,/home/user/data/2022
> /home/user/data/2021,/home/user/data/2022

Full path to where processed data is saved.
E.g. /home/user/campaign
> /home/user/viikki

Start of measurement (YYYY-MM-DD)
Leave empty if you want to start from the earliest date found
> 2022-09-28   

End of measurement (YYYY-MM-DD)
If empty processor assumes current day, use for continuous measurements.
> 2022-09-30

Enter name of database file (full path)
E.g. /home/user/campaign.json
> /home/user/viikki.json 

Allow reprocessing (True/False)
Overwrites already processed datafiles in the database when running the processor again.
> True

Measurement location
E.g. Helsinki, Kumpula
> Viikki, Helsinki, Finland 

Apply data cleaning procedures (True/False)
Remove corona ions and electrometer noise from data
> True

Apply corrections to data? (True/False)
Requires a NAIS with temperature and pressure sensors.
> True 

Length of the inlet in meters
> 1.0 

Correct concentrations to sealevel conditions? (True/False)
> True

Configuration saved to: /home/user/viikki.yml

The resulting configuration file looks like this:

allow_reprocess: true
apply_cleaning: true
apply_corrections: true
data_folder:
- /home/user/data/2021 
- /home/user/data/2022
database_file: /home/user/viikki.json
end_date: 2022-09-30
inlet_length: 1.0
location: Viikki, Helsinki, Finland
processed_folder: /home/user/viikki
sealevel_correction: true
start_date: 2022-09-28

Then process the data files by running nais_processor() method with the config file as the input argument.

>>> nais_processor("/home/user/viikki.yml")
Configuration file: /home/user/viikki.yml
processing 20220928
processing 20220929
processing 20220930
Done!

The code produces daily processed data files for ion and particle data. These files are saved in the destinations given in the configuration file.

The processed data files are named

NAIS[n|p][yyyymmdd][np|nds].sum

where n and p refer to negative and positive polarity respectively. yyyymmdd tells the date in the year-month-day format. np and nds refer to particle and ion data respectively. The cleaned files have an additional _cleaned at the end of the filename before the suffix.

The data files have the following structure (sum matrix)

[0,0]  = UTC offset in hours
[1:,0] = Time (MATLAB datenum) 
[0,2:] = Geometric mean diameter of size-channel (m)
[1:,1] = Integrated total number concentration (cm-3)
[1:,2:] = Normalized number concentrations, dN/dlogDp (cm-3)

The locations of raw files, processed files and cleaned processed files are written in the database_file, which is in JSON format.

Combining sumfiles

Once you have processed your NAIS data you can extract any time range in a sum matrix format using the combine_spectra() function.

Example:

import nais_processor as nais

start_time="2022-09-29 02:00:00"
end_time="2022-09-30 14:00:00"

combined_data = nais.combine_spectra(
    config_file,start_time,end_time,spectra_type="negion")

You can also plot sum matrices using plot_sumfile() or you can create daily plots using plot_nais() without playing around with sum matrices.

License

This project is licensed under the terms of the GNU GPLv3.

References

Gormley P. G. and Kennedy M., Diffusion from a Stream Flowing through a Cylindrical Tube, Proceedings of the Royal Irish Academy. Section A: Mathematical and Physical Sciences, 52, (1948-1950), pp. 163-169.

Wagner R., Manninen H.E., Franchin A., Lehtipalo K., Mirme S., Steiner G., Petäjä T. and Kulmala M., On the accuracy of ion measurements using a Neutral cluster and Air Ion Spectrometer, Boreal Environment Research, 21, (2016), pp. 230–241.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nais-processor-0.0.7.tar.gz (295.8 kB view details)

Uploaded Source

Built Distribution

nais_processor-0.0.7-py3-none-any.whl (27.6 kB view details)

Uploaded Python 3

File details

Details for the file nais-processor-0.0.7.tar.gz.

File metadata

  • Download URL: nais-processor-0.0.7.tar.gz
  • Upload date:
  • Size: 295.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.7.13

File hashes

Hashes for nais-processor-0.0.7.tar.gz
Algorithm Hash digest
SHA256 fd2eff0d196c254d375f80cdecf22966e35f9b7474dbd6e23a6c65215f0c728b
MD5 6648511404a32ef6f1585d3c2abe1f3f
BLAKE2b-256 4ffe41f26cdb306888b945a3e8aedbbfe3b89b34dd85069b9ba386b07aeee90b

See more details on using hashes here.

File details

Details for the file nais_processor-0.0.7-py3-none-any.whl.

File metadata

File hashes

Hashes for nais_processor-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 6218f3e3d0f010c951335c752e925f4d2f98b68356e79c4ad562ffc65988cc6a
MD5 ac9b995f6426023f857ae2d4a3bb026a
BLAKE2b-256 13c801b662b1483c5d541d675cca75a1bbfb487137467a93bf4a447e811e77bc

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page