Air Temperature Monitoring with Portable Sensors

SOP-F501 Revision 0.2
Author

Marc Los Huertos

Environmental Analysis, Pomona College

Published

2026-06-26

1 Purpose

This SOP describes the deployment, calibration, data retrieval, and post-processing of low-cost portable sensor networks for ambient air temperature and relative humidity monitoring. Three sensor platforms are covered: Maxim/Analog Devices Thermochron iButton loggers, Onset HOBO data loggers, and Raspberry Pi single-board computers with BME280 environmental sensor modules.

Dense networks of inexpensive air temperature sensors enable studies of urban heat island (UHI) effects, microclimatic gradients beneath photovoltaic arrays, canopy-vs.-open temperature contrasts, and diurnal and seasonal temperature variability at spatial resolutions not achievable with conventional weather stations (Chapman et al., 2015; Muller et al., 2013). The UHI is one of the most thoroughly documented examples of inadvertent human modification of local climate, driven by impervious surfaces, waste heat, reduced vegetation, and altered radiative and convective energy exchange (Oke et al., 2017; Voogt & Oke, 2003).

When designing a sensor network, characterizing the land cover at each site using the Local Climate Zone (LCZ) framework provides a standardized basis for comparing UHI intensities across cities and studies (Stewart & Oke, 2012).

2 Scope

  • Applies to: Outdoor ambient air temperature and relative humidity monitoring at 1.5–2.0 m above ground level using portable sensor networks.
  • Does not apply to: Soil temperature profiles (see SOP-F404), indoor temperature monitoring, or air quality (PM, gases; see SOP-F502).
  • Location: EA Program field sites including the Pomona College campus, Bernard Field Station, photovoltaic study sites, and surrounding Inland Empire communities.

3 Responsibilities

Role Responsibility
Lab PI Approve monitoring plan, oversee data quality
Field Lead Coordinate site access and logistics
Trained Personnel Calibrate, deploy, retrieve data, process results
New Students Complete training before independent deployment

4 Safety and Hazards

WarningHazards
  • Working at height: Mounting sensors at 1.5–2.0 m on poles or structures may require a stepladder. Follow ladder safety protocols.
  • Traffic: Some monitoring locations are near roadways. Wear high-visibility vests.
  • Heat exposure: Deployment and retrieval in summer in the Inland Empire involves significant heat risk. Carry water, work in pairs, and schedule field work for early morning when possible.
  • Electrical: Raspberry Pi units use low-voltage USB power. Do not expose connections to rain or standing water without weatherproof enclosures.

4.1 Required PPE

5 Definitions

  • Urban Heat Island (UHI): The phenomenon whereby urban areas experience higher air temperatures than surrounding rural areas due to impervious surfaces, waste heat, reduced vegetation, and altered energy balance. UHI intensity (\(\Delta T_{\text{UHI}}\)) is quantified as the difference between an urban and a rural reference site at a given time (Oke et al., 2017).
  • Local Climate Zone (LCZ): A classification system that describes the physical properties of the local environment (building density, height, surface cover, land use) at scales relevant to urban temperature variation. LCZ types range from compact high-rise (LCZ 1) to scattered trees (LCZ B), and provide a standardized framework for describing monitoring sites in UHI studies (Stewart & Oke, 2012).
  • Radiation shield: A louvered or ventilated housing that protects a temperature sensor from direct and reflected solar radiation while allowing ambient air to flow past the sensor. Without shielding, sensors can read 5–15 C above true air temperature in direct sun (Hubbart et al., 2005; Terando et al., 2017).
  • BME280: A Bosch environmental sensor measuring temperature, relative humidity, and barometric pressure. Used with Raspberry Pi platforms in the EA Program sensor network.
  • iButton: A coin-sized temperature (and optionally RH) data logger manufactured by Maxim/Analog Devices (Thermochron series).
  • HOBO: A family of portable data loggers manufactured by Onset Computer Corporation.
  • Collocation: The practice of placing multiple sensors at the same location for a period to assess inter-sensor agreement and identify systematic offsets. Collocation is the primary calibration strategy for dense low-cost sensor networks (Meier et al., 2017).
  • Calibration offset: A systematic difference between a sensor’s reading and a known reference, determined during collocation and applied as a correction to field data.
  • Data completeness: The percentage of expected readings actually recorded during a deployment period. A minimum of 75% completeness (18 of 24 hours per day) is required for daily summaries.

6 Prerequisites

7 Sensor Platforms

7.1 Comparison

Feature iButton DS1921/DS1923 HOBO U23 Pro v2 Raspberry Pi + BME280
Approximate cost $20–60 $130–200 $40–80
Temperature accuracy $$0.5–1.0 C $$0.21 C $$0.5 C (BME280)
RH measurement DS1923 only Yes Yes
Logging interval 1 min – 255 min 1 s – 18 h User-defined (script)
Memory 2048–8192 readings ~42,000 readings SD card (unlimited)
Communication 1-Wire (download) USB (download) Wi-Fi / SD card
Battery life ~1 year ~1 year Requires continuous power
Size 17 mm coin 6 x 5 x 2 cm Variable (enclosure)

7.2 Choosing a Platform

  • iButton: Best for dense spatial networks where low cost and small size are priorities. Limited memory requires periodic retrieval. Ideal for short-term (weeks to months) UHI transects.
  • HOBO: Best general-purpose option with highest accuracy, long battery life, and large memory. Good for season-long deployments.
  • Raspberry Pi + BME280: Best for real-time or near-real-time monitoring with Wi-Fi. Requires continuous power. Already available in the EA Program inventory (16 Pi Zero+ units).

8 Radiation Shielding

ImportantRadiation Shields Are Mandatory

Unshielded sensors exposed to direct or reflected solar radiation can read 5–15 C higher than true air temperature. Every deployed sensor must be housed in a radiation shield (Hubbart et al., 2005; Terando et al., 2017).

8.1 Shield Options

Shield Type Cost Notes
6-plate gill shield (e.g., Davis 7714) $20–30 Standard; good ventilation
10-plate aspirated shield $30–50 Better in low-wind conditions
DIY stacked-plate shield (white plastic plates) $5–10 Acceptable for student projects; see Appendix B for construction
Naturally aspirated PVC tube (white, louvered) $10–15 Compact; fits iButtons

All shields must be white (high albedo) and mounted with the sensor opening facing downward to prevent rain intrusion.

9 Calibration

9.1 Ice-Bath Calibration (Single-Point Check)

  1. Prepare an ice-water bath: fill an insulated container with crushed ice and deionized water, stir for 2 minutes
  2. Submerge the sensor (in a waterproof sleeve for iButtons, or using a sealed bag for non-waterproof units)
  3. Wait 5 minutes for equilibration
  4. The sensor should read 0.0 \(\pm\) 0.5 C. Record the reading.
  5. If outside tolerance, note the offset; sensors with offsets greater than 1.0 C should be replaced.

9.2 Room-Temperature Inter-Comparison (Collocation)

  1. Place all sensors to be deployed together in a shaded, well-mixed indoor environment for at least 24 hours
  2. Calculate the mean temperature across all sensors for each timestep. Each sensor’s offset is its deviation from the group mean.
  3. Record offsets in a calibration log file: data/calibration/offsets_YYYYMMDD.csv
  4. Apply these offsets as corrections during data processing (Section 11). Collocation under controlled conditions is the most practical calibration approach for networks of 10 or more sensors (Meier et al., 2017).

10 Deployment

10.1 Site Selection and Documentation

Select monitoring sites to represent the range of land cover types and microclimates relevant to the research question. For UHI studies, sample across multiple LCZ types (e.g., compact low-rise, open low-rise, large low-rise, scattered trees, dense trees) (Stewart & Oke, 2012).

At each site, record:

  • GPS coordinates per SOP-F006
  • Mounting height (standard: 1.5–2.0 m above ground level)
  • Shield type and orientation
  • Land cover within 50 m radius (impervious %, tree canopy %, grass %)
  • LCZ type (see Stewart & Oke (2012) for classification guide)
  • Nearest road (distance and type)
  • Sky view factor (estimated or photographed)
  • Sensor serial number and platform type

10.2 Mounting

  1. Mount the radiation shield on a pole, post, fence, or structure at 1.5–2.0 m height. Ensure the shield is not directly above a paved surface, air conditioning exhaust, or heat-radiating wall.
  2. Place the sensor inside the shield, ensuring the sensing element is centered within the shield stack.
  3. For Raspberry Pi units, route the power cable through the base of the enclosure. Secure with cable ties.
  4. Photograph the installation and record all metadata.
  5. Record metadata as above.

11 Data Retrieval

Platform Retrieval Method Frequency
iButton Remove, connect to 1-Wire reader, download in OneWireViewer Every 2–4 weeks
HOBO U23 Connect USB shuttle or cable, download in HOBOware Every 1–3 months
Raspberry Pi SSH + scp, or remove SD card Weekly or as needed

After retrieval, archive the raw file immediately. Never modify the original.

12 Data Processing

12.1 Import and Standardize

Code
library(tidyverse)
library(lubridate)

# Example: import iButton CSV
raw <- read_csv("data/raw/site01_ibutton_ABC123.csv",
                skip = 14) %>%
  rename(timestamp = 1, temp_c = 2) %>%
  mutate(
    timestamp = mdy_hms(timestamp, tz = "America/Los_Angeles"),
    sensor_id = "ABC123",
    site_id   = "site01",
    platform  = "iButton"
  )

# Apply calibration offset (from Section 9)
offsets <- read_csv("data/calibration/offsets_YYYYMMDD.csv")

raw <- raw %>%
  left_join(offsets %>% select(sensor_id, offset), by = "sensor_id") %>%
  mutate(temp_corrected = temp_c - offset)

12.2 Quality Control

Code
raw <- raw %>%
  mutate(
    qc_flag = case_when(
      temp_corrected < -10 | temp_corrected > 55 ~ "out_of_range",
      temp_corrected == lag(temp_corrected) &
        temp_corrected == lag(temp_corrected, 2) &
        temp_corrected == lag(temp_corrected, 3)   ~ "stuck_sensor",
      abs(temp_corrected - lag(temp_corrected)) > 10 ~ "spike",
      TRUE ~ "valid"
    )
  )

count(raw, qc_flag)
clean <- raw %>% filter(qc_flag == "valid")

12.3 Hourly and Daily Summaries

Code
hourly <- clean %>%
  mutate(hour = floor_date(timestamp, "hour")) %>%
  group_by(site_id, sensor_id, hour) %>%
  summarize(
    temp_mean = mean(temp_corrected, na.rm = TRUE),
    temp_min  = min(temp_corrected, na.rm = TRUE),
    temp_max  = max(temp_corrected, na.rm = TRUE),
    n_obs     = n(),
    .groups   = "drop"
  ) %>%
  filter(n_obs >= 3)

daily <- hourly %>%
  mutate(date = as_date(hour)) %>%
  group_by(site_id, sensor_id, date) %>%
  summarize(
    t_mean = mean(temp_mean, na.rm = TRUE),
    t_min  = min(temp_min, na.rm = TRUE),
    t_max  = max(temp_max, na.rm = TRUE),
    n_hours = n(),
    .groups = "drop"
  ) %>%
  filter(n_hours >= 18)

12.4 Urban Heat Island Intensity

UHI intensity is typically calculated as the difference between an urban site and a rural (or least-developed) reference site (Oke et al., 2017):

\[ \Delta T_{\text{UHI}} = T_{\text{urban}} - T_{\text{rural}} \]

Code
ref_site <- "site_rural01"

uhi <- hourly %>%
  select(site_id, hour, temp_mean) %>%
  pivot_wider(names_from = site_id, values_from = temp_mean) %>%
  mutate(across(-c(hour, all_of(ref_site)),
                ~ . - .data[[ref_site]],
                .names = "uhi_{.col}"))

13 Quality Control Summary

Check Criterion
Ice-bath calibration Reading within $$0.5 C of 0.0 C
Inter-sensor agreement (collocation) Within $$0.5 C at night
Hourly data completeness $$75% of expected readings
Daily data completeness $$18 of 24 hours
Stuck-sensor detection $$4 identical consecutive readings flagged
Spike detection $$10 C change between consecutive readings flagged

14 Data Management

  • Raw files archived unmodified: data/raw/siteID_platform_sensorID.csv
  • Calibration records: data/calibration/
  • Processed files: data/processed/
  • Site metadata (coordinates, height, shield type, land cover, LCZ type, sensor serial numbers, deployment/retrieval dates): data/metadata/site_metadata.csv
  • All scripts version-controlled in the project Git repository

15 References

Chapman, L., Muller, C. L., Young, D. T., Warren, E. L., Grimmond, C. S. B., Cai, X., & Ferranti, E. J. S. (2015). The birmingham urban climate laboratory: An open meteorological test bed and challenges of the smart city. Bulletin of the American Meteorological Society, 96(9), 1545–1560. https://doi.org/10.1175/BAMS-D-13-00193.1
Hubbart, J. A., Link, T. E., Campbell, J. L., & Cobos, D. (2005). Evaluation of a low-cost temperature measurement system for environmental applications. Hydrological Processes, 19(7), 1517–1523. https://doi.org/10.1002/hyp.5861
Meier, F., Fenner, D., Grassmann, T., Otto, M., & Scherer, D. (2017). Crowdsourcing air temperature from citizen weather stations for urban climate research. Urban Climate, 19, 170–191. https://doi.org/10.1016/j.uclim.2017.01.006
Muller, C. L., Chapman, L., Grimmond, C. S. B., Young, D. T., & Cai, X. (2013). Sensors and the city: A review of urban meteorological networks. International Journal of Climatology, 33(7), 1585–1600. https://doi.org/10.1002/joc.3678
Oke, T. R., Mills, G., Christen, A., & Voogt, J. A. (2017). Urban climates. Cambridge University Press. https://doi.org/10.1017/9781139016476
Stewart, I. D., & Oke, T. R. (2012). Local climate zones for urban temperature studies. Bulletin of the American Meteorological Society, 93(12), 1879–1900. https://doi.org/10.1175/BAMS-D-11-00019.1
Terando, A. J., Youngsteadt, E., Meineke, E. K., & Prado, S. G. (2017). Ad hoc instrumentation methods in ecological studies produce highly biased temperature measurements. Ecology and Evolution, 7(23), 9890–9904. https://doi.org/10.1002/ece3.3499
Voogt, J. A., & Oke, T. R. (2003). Thermal remote sensing of urban climates. Remote Sensing of Environment, 86(3), 370–384. https://doi.org/10.1016/S0034-4257(03)00079-8

17 Training Record

Before deploying air temperature sensors independently, personnel must:

  1. Read this SOP and SOP-F001 Field Safety in full
  2. Perform a calibration (ice-water bath and room-temperature inter-comparison) under supervision
  3. Assemble and mount a radiation shield
  4. Deploy and retrieve a sensor at a test site
  5. Import, clean, and summarize data using the R workflow
  6. Be signed off by the PI or field lead