首先Metadata是由yml描述的,需要了解一些基本的yaml语法。
常见的数据类型:
下面是根据NILM Metadata Tutorial的一个example尝试去理解Metadata的结构。
首先,instance、elec_meters、appliances是同一个层级关系的。
elec_meters是一个保存字典的字典(a dictionary of dictionaries)。键值(1到7分别代表上图的电表Meter)。如果site_meter测量整个建筑的总电力需求,则该仪表设置为true。submeter_of记录上游仪表的仪表实例,比如Meter3的上一级是Meter1,也就是一个site_meter。
再看appliances是一个包含字典的列表(a list of dictionaries)。对于每个appliance,指定一个整数integer,用于区分同一栋建筑物中,同类型type的多个电器。比如light,在同一栋建筑物中有两个instance,分别指定一个integer。(可以把appliance理解为一个类clas,instance就是其中一个实例,有种面向对象编程的感觉。)
同时,指定一个meters的list,list中的每个元素都是对应meter的一个instance的一个integer。
总结:
elec_meters是一个字典。
appliances是一个列表。