Skip to main content

Devices Scripts - Overview

This directory contains Python scripts for processing device and timeseries data in the HydroTrek DWD Suite. The scripts handle device metadata parsing, timeseries data processing, and database operations.

📂 Directory Structure

This directory is organized into two versions:

v1/ - Legacy Implementation (Reference)

Contains the original timeseries processing scripts that use metadata-based frequency detection.

  • Single tag per device
  • Frequency based on ROUTE_CATEGORY field
  • Row-by-row processing

Contains the upgraded timeseries processing with dynamic frequency detection.

  • Multiple tags per device (one per frequency type)
  • Frequency detected from actual data patterns
  • Parallel LPS (liters/second) tags for hydraulic modeling
  • Pandas-based bulk processing
  • Supports devices with mixed frequencies over time

📖 Documentation Structure

  • 01_Overview/ - This overview document
  • 02_Design/ - Technical design specifications
  • 03_Implementation/ - Implementation plan and summary
  • 04_Analysis/ - Data analysis results
  • 05_User-Guide/ - User documentation and quick start guides

📁 Scripts Overview

v1 - Legacy Scripts (Reference Only)

ScriptPurposeInputOutput
v1/parse_devices_csv.pyParse device metadata CSVDevice CSVDatabase records
v1/add_bldgtype_to_devices.pyAdd building type to existing devicesDevice CSV with BLDGTYPEUpdated DeviceGroup & Device records
v1/parse_timeseries_csv.pyParse timeseries data (create-as-encountered)Timeseries CSVDatabase records
v1/parse_timeseries_csv_bulk.pyParse timeseries data (bulk analysis)Timeseries CSVDatabase records
v1/analyze_device_joins.pyAnalyze device join success/failureTimeseries CSVAnalysis report + CSV
v1/preview_timeseries_processing.pyPreview what will be processedTimeseries CSVProcessing preview
v1/tag_creation_analysis.pyAnalyze DeviceTag creation strategiesTimeseries CSVPerformance analysis
v1/convert_db_device_coordinates.pyConvert device coordinatesDatabaseUpdated coordinates

v2 - New Implementation (Current)

ScriptPurposeInputOutput
v2/analyze_frequency_patterns.pyAnalyze reading frequency patternsTimeseries CSVAnalysis report
v2/parse_timeseries_csv_v2.pyParse timeseries with dynamic frequencyTimeseries CSVDeviceTags & Data (consumption + LPS)
v2/validate_results.pyValidate processing resultsDatabaseValidation report
v2/compare_device_data_coverage.pyCompare device and data coverageTwo CSVsCoverage analysis

Key Improvements in V2

  1. Dynamic Frequency Detection - Determines frequency from actual reading patterns, not metadata
  2. Mixed Frequency Support - Handles devices that change frequency over time
  3. LPS Tag Creation - Parallel liters/second tags for hydraulic modeling
  4. Max-Period Classification - Uses maximum period number instead of count for accurate classification
  5. Pandas-Based Processing - Efficient bulk operations
  6. Comprehensive Validation - Built-in validation and analysis tools

Status

V2 Implementation Complete (November 2025)

  • All core features implemented
  • Comprehensive testing completed
  • Production ready

Last Updated: November 3, 2025