|
参考nilmtk官方提供的notebook
结合API手册,深入理解。
断点运行- import sys
- sys.path.append('G:/Code/')from nilmtk import DataSet
- iawe = DataSet(r'G:\Code\DataSet\IAWE\iawe.h5')
- elec = iawe.buildings[1].elec
- fridge = elec['fridge']
- df =next(fridge.load())
复制代码 查看当前各变量类型
此时fridge是ElecMeter类型,然后调用load()方法
查看对应API手册
frige.load()返回的是a generator of DataFrames
可以对应看到df此时是个DataFrames,看一下内容:
如何返回一个功率序列(power series)?
查看frige这个电器拥有多少columns,那到底需要在API手册怎么搜索呢?
首先此时的frige是ElecMeter类型,所以在ElecMeter定义的方法里面找
查看手册,调用available_columns(),返回一个list,list里面的元素是tuples且tuples是( , )的形式。
- print(fridge.available_columns())
复制代码 此时返回是
比如我们现在需要返回一个视在功率的Series,查找手册
在传入参数ac_type = “apparent”
即- series =next(fridge.power_series(ac_type='apparent'))
复制代码
如何指定物理量并返回相应的列?
前面通过available_columns()可以知道物理量有power、voltage、current、frequency和power factor
假如现在要返回power,且包含active、reactive和apparent,要怎么调用?根据ElecMeter的load方法需要传入参数physical_quantity和ac_type
即- df =next(fridge.load(physical_quantity ='power',ac_type =None))
复制代码
如何根据需要返回重采样的数据?
从上面的时间戳可以看到目前是采样频率为1Hz,假如希望得到的数据是一分钟一个数据点,怎么读取?
load()方法提供了resample参数
60s取一个数据点,即- df =next(fridge.load(physical_quantity ='power',ac_type =None, sample_period=60))
复制代码
总结:
1.frige是ElecMeter类型,因此想要读取frige的数据时候,需要根据手册,在ElecMeter下面找方法
2.需要以Series的形式返回数据时候,调用load_series(),如果是提取功率数据,可以直接调用power_series()
3.需要以DataFrame的形式返回数据时候,调用load()。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|