Understanding SD Card Data Columns

This article describes the data columns that appear in CSV files recorded to microSD cards by PurpleAir sensors. Use this as a reference when analyzing your SD card data.

SD card data uses different field names than the PurpleAir API. To see API field names, visit the API documentation.


Example SD Data

You can download example SD card data files here: Example SD Data


CSV File Structure

SD card data is recorded in CSV (comma-separated values) format. Each row represents one data recording (typically every 2 minutes). The first row contains the column headers listed below.


Sensor Information Columns

These columns identify the sensor and provide system status information.

Column Name Description
UTCDateTime The time when this row of data was recorded. Derived from the Real-Time Clock and synced with NTP where possible. The format follows YYYY/MM/DDTHH:MM:SSz and uses UTC as the Time Zone.
mac_address The sensor’s Device ID. This is identical to the sensor’s MAC address, except that leading 0’s are omitted in each Octet. For example, device ID 8:3a:8d:b:a4:fd would correspond to the MAC address 08:3a:8d:0b:a4:fd.
firmware_ver Firmware version of the control board.
hardware Hardware type the control board has detected.
uptime Firmware uptime in seconds. Rebooting the sensor will reset this to 0.
rssi WiFi signal strength in dBm.
mem Free HEAP memory on the control board.
adc The voltage reading on the analog input of the control board.

Environmental Data Columns

These columns record environmental conditions measured by the sensor.

Note: Temperature and humidity data reflect conditions inside the sensor’s housing and do not always match ambient readings. Corrections are available to better match ambient conditions. See A Note on Temperature and Humidity.

Column Name Description
current_temp_f Current temperature in Fahrenheit. This is taken directly from the sensor without applying a correction.
current_humidity Current Humidity in %. This is taken directly from the sensor without applying a correction.
current_dewpoint_f Calculated dew point in Fahrenheit. Calculated using uncorrected temperature.
pressure Current pressure in millibars.
gas Bosch BSEC IAQ when BME680 gas sensor is present (FIRMWARE 4.10 and up). These readings are experimental.

Air Quality Data Columns

Air quality columns represent particulate matter measurements from the sensor’s dual laser counters (Channel A and Channel B).

All air quality data columns represent data from either laser counter A or laser counter B. Columns with “_b” at the end represent data from channel B. If “_b” is not at the end of an air quality data column, it represents data from channel A.

For more information about these channels, see: What are Channel A and Channel B?

Air Quality Channel A Columns

Column Name Description
pm1_0_cf_1 Channel A CF=1 PM1.0 particulate mass in ug/m3.
pm2_5_cf_1 Channel A CF=1 PM2.5 particulate mass in ug/m3.
pm10_0_cf_1 Channel A CF=1 PM10.0 particulate mass in ug/m3.
pm1_0_atm Channel A ATM PM1.0 particulate mass in ug/m3.
pm2_5_atm Channel A ATM PM2.5 particulate mass in ug/m3.
pm10_0_atm Channel A ATM PM10.0 particulate mass in ug/m3.
pm2.5_aqi_cf_1 Channel A US EPA PM2.5 AQI calculated using pm2_5_cf_1.
pm2.5_aqi_atm Channel A US EPA PM2.5 AQI calculated using pm2_5_atm.
p_0_3_um Channel A 0.3-micrometer particle counts per deciliter of air.
p_0_5_um Channel A 0.5-micrometer particle counts per deciliter of air.
p_1_0_um Channel A 1.0-micrometer particle counts per deciliter of air.
p_2_5_um Channel A 2.5-micrometer particle counts per deciliter of air.
p_5_0_um Channel A 5.0-micrometer particle counts per deciliter of air.
p_10_0_um Channel A 10.0-micrometer particle counts per deciliter of air.

Air Quality Channel B Columns

Column Name Description
pm1_0_cf_1_b Channel B CF=1 PM1.0 particulate mass in ug/m3.
pm2_5_cf_1_b Channel B CF=1 PM2.5 particulate mass in ug/m3.
pm10_0_cf_1_b Channel B CF=1 PM10.0 particulate mass in ug/m3.
pm1_0_atm_b Channel B ATM PM1.0 particulate mass in ug/m3.
pm2_5_atm_b Channel B ATM PM2.5 particulate mass in ug/m3.
pm10_0_atm_b Channel B ATM PM10.0 particulate mass in ug/m3.
pm2.5_aqi_cf_1_b Channel B US EPA PM2.5 AQI calculated using pm2_5_cf_1_b.
pm2.5_aqi_atm_b Channel B US EPA PM2.5 AQI calculated using pm2_5_atm_b.
p_0_3_um_b Channel B 0.3 micrometer particle counts per deciliter of air.
p_0_5_um_b Channel B 0.5 micrometer particle counts per deciliter of air.
p_1_0_um_b Channel B 1.0 micrometer particle counts per deciliter of air.
p_2_5_um_b Channel B 2.5 micrometer particle counts per deciliter of air.
p_5_0_um_b Channel B 5.0 micrometer particle counts per deciliter of air.
p_10_0_um_b Channel B 10.0 micrometer particle counts per deciliter of air.

Important Notes

UTC Time Zone

All timestamps in the UTCDateTime column are recorded in UTC (Coordinated Universal Time), not your local time zone. Remember to account for the time zone difference when analyzing your data.

For more information, see our section in our SD troubleshooting article on Time Zone Differences.

Data Recording Interval

PurpleAir sensors record SD data every 2 minutes when operating normally. If you see different intervals, review this SD Overview article section on our sensor’s LED indicators to see where things might be going wrong.


Learn More

2 Likes

2 posts were merged into an existing topic: No header in csv file