Skip to content

check_bme280.py

Purpose: Plot BME280 sensor time series (temperature, pressure, humidity)

Use case: Monitoring environmental conditions during measurement, correlating sensor data with event rates

Features:

  • Reads JSONL or Parquet event files from a directory
  • Resamples sensor values by configurable frequency (e.g. 10s, 1min)
  • Plots mean and standard deviation per hit_type per resample bin
  • Excludes rows with out-of-range BME280 values by default
  • Timestamps displayed in local timezone (configurable via KAZUNOKO_TZ)
  • Supports PNG, PDF, and SVG output formats

Required input: JSONL or Parquet files produced by get_events.py, get_runs.py, or from_jsonl_to_parquet.py

Usage:

# Plot all hit_types from Parquet files with 10s resample
uv run examples/check_bme280.py ./20251221_run126/

# Custom resample frequency and specific hit_types
uv run examples/check_bme280.py ./20251221_run126/ --resample 60s --hit-type 1 --hit-type 7

# Use JSONL files and save plot
uv run examples/check_bme280.py ./20251221_run126/ --pattern "events*.jsonl" --save

# Save as PDF
uv run examples/check_bme280.py ./20251221_run126/ --save --format pdf

# Include rows with invalid BME280 readings
uv run examples/check_bme280.py ./20251221_run126/ --include-invalid-bme280

CLI Options:

Option Default Description
READ_FROM (required) Directory containing data files
--pattern run*.parquet Glob pattern to filter input files
--resample 10s Resample frequency as pandas offset string
--hit-type all (1–7) hit_type values to display (repeatable)
--timestamp detected_us Timestamp column (detected_us or received_us)
--format / -f png Output format (png, pdf, svg)
--dpi 150 Resolution for PNG output (50–600)
--include-invalid-bme280 off Include rows where bme280_valid is False
--save off Save plot to READ_FROM directory
--verbose / --quiet --quiet Show or suppress status messages
--log-level error Log level (debug/info/error)

Environment Variables:

Variable Default Description
KAZUNOKO_TZ system timezone IANA timezone name for plot timestamps (e.g. Asia/Tokyo)