Python project for analyzing alarm data from building monitoring systems. Includes alarm analyzer, plotting, tests, and source data files.
44 lines
1.9 KiB
Python
44 lines
1.9 KiB
Python
import pandas as pd
|
|
from alarm_analyzer import AlarmAnalyzer
|
|
|
|
# Create analyzer instance
|
|
analyzer = AlarmAnalyzer(
|
|
csv_file_path="C:\\Users\\AndrewConlon\\Documents\\AlarmAnalysis\\CardinalAlarmsDec25.csv",
|
|
xlsx_file_path="C:\\Users\\AndrewConlon\\Documents\\AlarmAnalysis\\SensorReport Cardinal 2025-12-23_processed.xlsx"
|
|
)
|
|
|
|
# Load data
|
|
alarm_data, sensor_data = analyzer.load_data()
|
|
|
|
# Check which sensors are mapped to 'Unknown' group
|
|
unknown_sensors = analyzer.alarm_data[analyzer.alarm_data['Sensor_Group'] == 'Unknown']
|
|
|
|
print(f"Number of alarm records with 'Unknown' group: {len(unknown_sensors)}")
|
|
print(f"Number of unique sensors with 'Unknown' group: {unknown_sensors['Sensor_Id'].nunique()}")
|
|
|
|
if len(unknown_sensors) > 0:
|
|
print("\nFirst 20 unique sensors with 'Unknown' group:")
|
|
unknown_sensor_ids = unknown_sensors['Sensor_Id'].unique()[:20]
|
|
print(unknown_sensor_ids)
|
|
|
|
print("\nSensor details for first few 'Unknown' sensors:")
|
|
for sensor_id in unknown_sensor_ids[:10]:
|
|
sensor_records = unknown_sensors[unknown_sensors['Sensor_Id'] == sensor_id].iloc[0]
|
|
print(f"Sensor ID: {sensor_id}, Name: {sensor_records['Sensor_Name']}, Group: {sensor_records['Sensor_Group']}")
|
|
|
|
# Check if this sensor exists in the sensor mapping
|
|
sensor_info = analyzer.sensor_mapping.get(sensor_id, {})
|
|
if sensor_info:
|
|
print(f" Sensor mapping info: {sensor_info}")
|
|
else:
|
|
print(f" Sensor NOT found in mapping")
|
|
print()
|
|
|
|
# Also check which sensors from alarm data are not in the sensor mapping
|
|
alarm_sensor_ids = set(analyzer.alarm_data['Sensor_Id'].unique())
|
|
mapped_sensor_ids = set(analyzer.sensor_mapping.keys())
|
|
unmapped_sensors = alarm_sensor_ids - mapped_sensor_ids
|
|
|
|
print(f"\nNumber of sensors in alarm data but not in sensor mapping: {len(unmapped_sensors)}")
|
|
if unmapped_sensors:
|
|
print("First 20 unmapped sensor IDs:", list(unmapped_sensors)[:20]) |