NILM所用数据的准备

本文介绍了REDD和UK-DALE两个重要的能量分解数据集。REDD由MIT提供,包含家庭用能数据及部分高频电流电压记录。UK-DALE数据量庞大,记录了五个家庭长达三年的详细用能情况。两数据集对于研究能量分解算法至关重要。

REDD数据

REDD是功率分解参考数据集(The Reference Energy Disaggregation Data Set)的简称。麻省理工学院(MIT)公布了一个REDD数据集,包含了6个不同家庭在几周内的用能数据,以及其中2个家庭主要用能设备的高频电流/电压数据。
数据集的网址如下:

redd.csail.mit.edu

虽然上述资源是免费的,但是,如果要下载,需要给作者发送邮件索取下载所需的用户名和密码。

UK-DALE数据

看名字就知道,这是英国的学者搜集的数据。其数据量很大,一个房子某一周的数据就达到接近10G。一年的记录有40多周,一个房子有3年的数据,一共有5个房子的数据。总数居量确实很大,下载起来也很费劲。
好消息是,有一个经过整理的压缩文件,名字叫做ukdale.h5.tgz,文件大小不到3G。相对比较容易下载。
文件下载地址如下:

https://ukerc.rl.ac.uk/DC/cgi-bin/edc_search.pl?GoButton=Detail&WantComp=41

需要特别说明的是,UK-DALE数据的作者是Kelly,数据的发布方是英国能源研究中心能源数据中心(UK Energy Research Centre Energy Data Centre)。而NILMTK的发布者也是Kelly。因此,该数据格式和NILMTK的相容性肯定不成问题。

### 如何使用Python读取REDD数据REDD数据集以二进制 `.dat` 文件格式存储,通常需要特定的程序或脚本来读取和解析。为了便于分析与处理,可以将 `.dat` 文件转换为更易用的格式(如CSV),并利用Python中的Pandas库进行后续操作[^3]。 以下是具体的代码示例和步骤: #### 1. 读取 `.dat` 文件 使用Python的 `numpy` 库读取 `.dat` 文件的内容,并将其转换为数组形式。以下是一个简单的代码示例: ```python import numpy as np # 定义文件路径 file_path = 'path_to_redd_data/house_2/channel_1.dat' # 使用 numpy 的 fromfile 方法读取 .dat 文件 data = np.fromfile(file_path, dtype=np.float64) # 将数据 reshape 成二维数组(假设每行有两个值:时间戳和功率) data = data.reshape(-1, 2) # 输出前几行数据 print(data[:5]) ``` #### 2. 转换为Pandas DataFrame 为了更方便地进行数据分析和可视化,可以将读取的数据转换为Pandas DataFrame: ```python import pandas as pd # 创建 DataFrame df = pd.DataFrame(data, columns=['timestamp', 'power']) # 设置时间戳为索引 df['timestamp'] = pd.to_datetime(df['timestamp'], unit='s') # 假设时间戳为秒数 df.set_index('timestamp', inplace=True) # 查看 DataFrame 的前几行 print(df.head()) ``` #### 3. 数据清洗与保存 在完成初步读取后,可能需要对数据进行清洗和去重等操作,并将其保存为CSV文件以便进一步分析: ```python # 数据清洗(例如去除缺失值) df.dropna(inplace=True) # 去重 df = df[~df.index.duplicated(keep='first')] # 保存为 CSV 文件 output_file = 'processed_data.csv' df.to_csv(output_file) print(f"数据已保存到 {output_file}") ``` ### 注意事项 - REDD数据集中的 `.dat` 文件通常是固定格式的二进制文件,因此在读取时需确保正确设置数据类型(如 `dtype=np.float64`)[^4]。 - 如果数据集中包含多个通道(channel)的数据,建议分别读取每个通道的 `.dat` 文件,并根据需求合并或单独处理[^1]。 ### 示例总结 通过上述代码,可以实现从 `.dat` 文件的读取到DataFrame的转换,并完成基本的数据清洗与保存操作。这为后续的能源消耗分析、无侵入式负载分解(NILM)研究等奠定了基础[^2]。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值