示例#1
0
import dataclient
m = dataclient.MDALClient("corbusier.cs.berkeley.edu:8088")

def get_max_temp_day(start_day, end_day, site, agg='MAX', offset=0):
    request = {
        "Variables": {
                "weather": {
                    "Definition": """SELECT ?t ?t_uuid FROM %s WHERE {
                        ?t rdf:type/rdfs:subClassOf* brick:Weather_Temperature_Sensor .
                        ?t bf:uuid ?t_uuid
                    };""" % site,
                }
            }   
        }
    request['Composition'] = ['weather']
    request['Aggregation'] = {'weather': [agg]}
    request['Time'] = {
        'Start': start_day,
        'End': end_day,
        'Window': '24h',
        'Aligned': True
    }
    esp_weather = m.query(request)
    df = esp_weather.df
    mean = df.mean(axis=1)
    sorted_days = mean.sort_values(ascending=False)
    print(offset)
    return sorted_days.index[offset]
示例#2
0
    def get_weather_power_tstat(self,
                                site,
                                start,
                                end,
                                data_type=['weather', 'power']):
        """ Get weather and power data.

        Parameters
        ----------
        site        : str
            Site name.
        start       : str
            Start date.
        end         : str
            End date.
        data_type   : str
            Type of data needed (all, weather, power, temperature, hsp, csp)

        """

        m = dataclient.MDALClient("corbusier.cs.berkeley.edu:8088")

        request = {
            "Variables": {
                "greenbutton": {
                    "Definition":
                    """SELECT ?meter ?meter_uuid FROM %s WHERE {
                        ?meter rdf:type brick:Green_Button_Meter .
                        ?meter bf:uuid ?meter_uuid
                    };""" % site,
                },
                "weather": {
                    "Definition":
                    """SELECT ?t ?t_uuid FROM %s WHERE {
                        ?t rdf:type/rdfs:subClassOf* brick:Weather_Temperature_Sensor .
                        ?t bf:uuid ?t_uuid
                    };""" % site,
                },
                "tstat_state": {
                    "Definition":
                    """SELECT ?t ?t_uuid ?tstat FROM %s WHERE {
                        ?t rdf:type/rdfs:subClassOf* brick:Thermostat_Status .
                        ?t bf:uuid ?t_uuid
                        ?t bf:isPointOf ?tstat .
                        ?tstat rdf:type brick:Thermostat
                    };""" % site,
                },
                "tstat_hsp": {
                    "Definition":
                    """SELECT ?t ?t_uuid ?tstat FROM %s WHERE {
                        ?t rdf:type/rdfs:subClassOf* brick:Supply_Air_Temperature_Heating_Setpoint .
                        ?t bf:uuid ?t_uuid .
                        ?t bf:isPointOf ?tstat .
                        ?tstat rdf:type brick:Thermostat
                    };""" % site,
                },
                "tstat_csp": {
                    "Definition":
                    """SELECT ?t ?t_uuid ?tstat FROM %s WHERE {
                        ?t rdf:type/rdfs:subClassOf* brick:Supply_Air_Temperature_Cooling_Setpoint .
                        ?t bf:uuid ?t_uuid .
                        ?t bf:isPointOf ?tstat .
                        ?tstat rdf:type brick:Thermostat
                    };""" % site,
                },
                "tstat_temp": {
                    "Definition":
                    """SELECT ?t ?t_uuid ?tstat FROM %s WHERE {
                        ?t rdf:type/rdfs:subClassOf* brick:Temperature_Sensor .
                        ?t bf:uuid ?t_uuid .
                        ?t bf:isPointOf ?tstat .
                        ?tstat rdf:type brick:Thermostat
                    };""" % site,
                },
            },
        }

        # outside air temp
        request['Composition'] = ['weather']
        request['Aggregation'] = {'weather': ['MEAN']}
        request['Time'] = {
            'Start': start,
            'End': end,
            'Window': '15m',
            'Aligned': True
        }
        resp_weather = m.query(request)
        self.weather_data = resp_weather.df

        # power
        request['Composition'] = ['greenbutton']
        request['Aggregation'] = {'greenbutton': ['MEAN']}
        resp_power = m.query(request)
        self.power_data = resp_power.df

        # tstat temperature
        request['Composition'] = ['tstat_temp', 'tstat_hsp', 'tstat_csp']
        request['Aggregation'] = {'tstat_temp': ['MEAN']}
        resp_temp = m.query(request)
        self.temp_data = resp_temp

        # tstat heat setpoint
        request['Composition'] = ['tstat_hsp']
        request['Aggregation'] = {'tstat_hsp': ['MAX']}
        resp_hsp = m.query(request)
        self.hsp_data = resp_hsp

        # tstat cool setpoint
        request['Composition'] = ['tstat_csp']
        request['Aggregation'] = {'tstat_csp': ['MAX']}
        resp_csp = m.query(request)
        self.csp_data = resp_csp

        mapping = {
            'weather': resp_weather,
            'power': resp_power,
            'temperature': resp_temp,
            'hsp': resp_hsp,
            'csp': resp_csp
        }

        first = True
        for dat in data_type:
            if first:
                try:
                    self.data = mapping[dat].df
                    first = False
                except:
                    raise SystemError(
                        'Undefined data_type (Make sure all characters are lowercase)'
                    )
            else:
                try:
                    self.data = self.data.join(mapping[dat].df)
                except:
                    raise SystemError(
                        'Undefined data_type (Make sure all characters are lowercase)'
                    )

        return mapping
示例#3
0
    def __init__(self):

        import dataclient
        self.m = dataclient.MDALClient("corbusier.cs.berkeley.edu:8088")
示例#4
0
    def __init__(self):
        """ Constructor. """

        import dataclient
        self.m = dataclient.MDALClient("corbusier.cs.berkeley.edu:8088")