Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add pvdaq reference sites, fetch, config #438

Merged
merged 25 commits into from
May 12, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 19 additions & 1 deletion docs/source/api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -279,8 +279,25 @@ DOE RTC
io.fetch.rtc.request_doe_rtc_data
io.fetch.rtc.fetch_doe_rtc

NREL PVDAQ
----------

.. autosummary::
:toctree: generated/

io.fetch.pvdaq.get_pvdaq_metadata
io.fetch.pvdaq.get_pvdaq_data


Reference observations
----------------------
======================

The following modules contain code for initializing the reference
database, wrappers for fetching data, functions for processing (e.g.
renaming and resampling) data, and wrapper functions for posting data.
The pure fetch functions are found in ``pvlib.iotools`` and in
``solarforecastarbiter.io.fetch``. See the source code for additional
files with site and observation metadata.

.. autosummary::
:toctree: generated/
Expand All @@ -295,6 +312,7 @@ Reference observations
io.reference_observations.srml
io.reference_observations.surfrad
io.reference_observations.arm
io.reference_observations.pvdaq

SFA API
=======
Expand Down
3 changes: 2 additions & 1 deletion docs/source/whatsnew/1.0.0rc1.rst
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@ Enhancements
limit each request to one week of data (:issue:`424`) (:pull:`435`)
* PDF report figures are generated instead of SVG for easy integration into PDF
reports (:issue:`360`) (:pull:`437`)

* Added support for NREL PVDAQ sites to the reference database functions.
(:issue:`397`) (:pull:`438`)

Bug fixes
~~~~~~~~~
Expand Down
2 changes: 1 addition & 1 deletion solarforecastarbiter/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ def referencedata():

network_opt = click.option(
'--network', multiple=True,
help="The Networks to act on. Defaults to all.",
help="The networks to act on. Defaults to all.",
default=reference_data.NETWORK_OPTIONS,
type=click.Choice(reference_data.NETWORK_OPTIONS))

Expand Down
2 changes: 1 addition & 1 deletion solarforecastarbiter/datamodel.py
Original file line number Diff line number Diff line change
Expand Up @@ -478,7 +478,7 @@ class Observation(BaseModel):
Variable name, e.g. power, GHI. Each allowed variable has an
associated pre-defined unit.
interval_value_type : str
The type of the data in the observation. Typically interval mean or
The type of the data in the observation. Typically interval_mean or
instantaneous, but additional types may be defined for events.
interval_length : pandas.Timedelta
The length of time between consecutive data points, e.g. 5 minutes,
Expand Down
106 changes: 106 additions & 0 deletions solarforecastarbiter/io/fetch/pvdaq.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
"""Functions to read NREL PVDAQ data.
"""

# Code originally written by Bennet Meyers (@bmeyers), Stanford, SLAC in
# https://github.com/pvlib/pvlib-python/pull/664
# Adapated by Will Holmgren (@wholmgren), University of Arizona

import json
from io import StringIO

import requests
import pandas as pd


# consider adding an auth=(username, password) kwarg (default None) to
# support private data queries

def get_pvdaq_metadata(system_id, api_key):
"""Query PV system metadata from NREL's PVDAQ data service.

Parameters
----------
system_id: int
The system ID corresponding to the site that data should be
queried from.

api_key: string
Your NREL API key (https://developer.nrel.gov/docs/api-key/)

Returns
-------
list of dict
"""

params = {'system_id': system_id, 'api_key': api_key}
sites_url = 'https://developer.nrel.gov/api/pvdaq/v3/sites.json'
r = requests.get(sites_url, params=params)
r.raise_for_status()
outputs = json.loads(r.content)['outputs']
return outputs


def get_pvdaq_data(system_id, year, api_key='DEMO_KEY'):
"""Query PV system data from NREL's PVDAQ data service:

https://maps.nrel.gov/pvdaq/

This function uses the annual raw data file API, which is the most
efficient way of accessing multi-year, sub-hourly time series data.

Parameters
----------
system_id: int
The system ID corresponding to the site that data should be
queried from.

year: int or list of ints
Either the year to request or the list of years to request.
Multiple years will be concatenated into a single DataFrame.

api_key: string
Your NREL API key (https://developer.nrel.gov/docs/api-key/)

Returns
-------
pandas.DataFrame
A DataFrame containing the time series data from the
PVDAQ service over the years requested. Times are typically
in local time.

Notes
-----
The PVDAQ metadata contains a key "available_years" that is a useful
value for the *year* argument.
"""

try:
year = int(year)
except TypeError:
year = [int(yr) for yr in year]
else:
year = [year]

# Each year must queries separately, so iterate over the years and
# generate a list of dataframes.
# Consider putting this loop in its own private function with
# try / except / try again pattern for network issues and NREL API
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

will we see any issues from this?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The pvlib CI struggled with a different NREL API but I haven't run into any with the pvdaq API. They have a 1000 requests per hour limit but we are no where close to that. Let's see if it's a problem in the rc cycle.

# throttling
df_list = []
for yr in year:
params = {
'api_key': api_key,
'system_id': system_id,
'year': yr
}
base_url = 'https://developer.nrel.gov/api/pvdaq/v3/data_file'
response = requests.get(base_url, params=params)
response.raise_for_status()
df = pd.read_csv(StringIO(response.text))
df_list.append(df)

# concatenate the list of yearly DataFrames
df = pd.concat(df_list, axis=0, sort=True)
df['Date-Time'] = pd.to_datetime(df['Date-Time'])
df.set_index('Date-Time', inplace=True)
return df
193 changes: 193 additions & 0 deletions solarforecastarbiter/io/fetch/tests/data/pvdaq_2019_data.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,193 @@
SiteID,Date-Time,ac_current,ac_power,ac_voltage,ambient_temp,dc_current,dc_power,dc_voltage,inverter_error_code,inverter_temp,module_temp,poa_irradiance,power_factor,relative_humidity,wind_direction,wind_speed
1276,2019-01-01 00:00:00,0,-200,285,,0,0,0,0,24,,,0,,,
1276,2019-01-01 00:15:00,0,-200,285,,0,0,0,0,24,,,0,,,
1276,2019-01-01 00:30:00,0,-100,284,,0,0,0,0,24,,,0,,,
1276,2019-01-01 00:45:00,0,-200,284,,0,0,0,0,24,,,0,,,
1276,2019-01-01 01:00:00,0,-100,284,,0,0,0,0,24,,,0,,,
1276,2019-01-01 01:15:00,0,-200,284,,0,0,0,0,24,,,0,,,
1276,2019-01-01 01:30:00,0,-200,284,,0,0,0,0,24,,,0,,,
1276,2019-01-01 01:45:00,0,-100,284,,0,0,0,0,24,,,0,,,
1276,2019-01-01 02:00:00,0,-100,284,,0,0,0,0,24,,,0,,,
1276,2019-01-01 02:15:00,0,-200,284,,0,0,0,0,24,,,0,,,
1276,2019-01-01 02:30:00,0,-200,284,,0,0,0,0,24,,,0,,,
1276,2019-01-01 02:45:00,0,-100,284,,0,0,0,0,24,,,0,,,
1276,2019-01-01 03:00:00,0,-100,284,,0,0,0,0,24,,,0,,,
1276,2019-01-01 03:15:00,0,-100,283,,0,0,0,0,24,,,0,,,
1276,2019-01-01 03:30:00,0,-200,283,,0,0,0,0,24,,,0,,,
1276,2019-01-01 03:45:00,0,-200,283,,0,0,0,0,24,,,0,,,
1276,2019-01-01 04:00:00,0,-100,283,,0,0,0,0,24,,,0,,,
1276,2019-01-01 04:15:00,0,-100,283,,0,0,0,0,24,,,0,,,
1276,2019-01-01 04:30:00,0,-100,283,,0,0,0,0,24,,,0,,,
1276,2019-01-01 04:45:00,0,-100,283,,0,0,0,0,24,,,0,,,
1276,2019-01-01 05:00:00,0,-100,283,,0,0,0,0,24,,,0,,,
1276,2019-01-01 05:15:00,0,-200,282,,0,0,0,0,24,,,0,,,
1276,2019-01-01 05:30:00,0,-100,282,,0,0,0,0,24,,,0,,,
1276,2019-01-01 05:45:00,0,-100,282,,0,0,0,0,24,,,0,,,
1276,2019-01-01 06:00:00,0,-200,282,,0,0,0,0,24,,,0,,,
1276,2019-01-01 06:15:00,0,-200,283,,0,0,20,0,24,,,0,,,
1276,2019-01-01 06:30:00,0,-200,283,,0,0,255,0,24,,,0,,,
1276,2019-01-01 06:45:00,0,-200,283,,0,0,401,0,24,,,0,,,
1276,2019-01-01 07:00:00,0,-100,283,,0,0,433,0,24,,,0,,,
1276,2019-01-01 07:15:00,0,-100,283,,0,0,449,0,24,,,0,,,
1276,2019-01-01 07:30:00,0,-200,284,,0,0,462,0,24,,,0,,,
1276,2019-01-01 07:45:00,0,-100,284,,0,0,473,0,24,,,0,,,
1276,2019-01-01 08:00:00,0,-100,284,,0,0,480,0,24,,,0,,,
1276,2019-01-01 08:15:00,0,-200,283,,0,0,484,0,24,,,0,,,
1276,2019-01-01 08:30:00,0,-100,284,,0,0,484,0,24,,,0,,,
1276,2019-01-01 08:45:00,0,-200,284,,0,0,485,0,24,,,0,,,
1276,2019-01-01 09:00:00,0,-100,284,,0,0,484,0,24,,,0,,,
1276,2019-01-01 09:15:00,0,-200,284,,0,0,484,0,24,,,0,,,
1276,2019-01-01 09:30:00,0,-100,284,,0,0,481,0,24,,,0,,,
1276,2019-01-01 09:45:00,0,-100,284,,0,0,481,0,24,,,0,,,
1276,2019-01-01 10:00:00,0,-100,284,,0,0,477,0,24,,,0,,,
1276,2019-01-01 10:15:00,0,-200,284,,0,0,476,0,24,,,0,,,
1276,2019-01-01 10:30:00,0,-200,284,,0,0,476,0,24,,,0,,,
1276,2019-01-01 10:45:00,0,-200,284,,0,0,475,0,24,,,0,,,
1276,2019-01-01 11:00:00,0,-200,284,,0,0,473,0,24,,,0,,,
1276,2019-01-01 11:15:00,0,-200,285,,0,0,475,0,24,,,0,,,
1276,2019-01-01 11:30:00,0,-200,284,,0,0,473,0,24,,,0,,,
1276,2019-01-01 11:45:00,0,-100,285,,0,0,472,0,24,,,0,,,
1276,2019-01-01 12:00:00,0,-200,285,,0,0,472,0,24,,,0,,,
1276,2019-01-01 12:15:00,0,-100,285,,0,0,471,0,24,,,0,,,
1276,2019-01-01 12:30:00,0,-200,285,,0,0,469,0,24,,,0,,,
1276,2019-01-01 12:45:00,0,-100,285,,0,0,467,0,24,,,0,,,
1276,2019-01-01 13:00:00,0,-100,284,,0,0,467,0,24,,,0,,,
1276,2019-01-01 13:15:00,0,-200,285,,0,0,468,0,24,,,0,,,
1276,2019-01-01 13:30:00,0,-100,284,,0,0,469,0,24,,,0,,,
1276,2019-01-01 13:45:00,0,-200,285,,0,0,471,0,24,,,0,,,
1276,2019-01-01 14:00:00,0,-100,284,,0,0,469,0,24,,,0,,,
1276,2019-01-01 14:15:00,0,-200,284,,0,0,471,0,24,,,0,,,
1276,2019-01-01 14:30:00,0,-100,285,,0,0,472,0,24,,,0,,,
1276,2019-01-01 14:45:00,0,-100,285,,0,0,472,0,24,,,0,,,
1276,2019-01-01 15:00:00,0,-100,285,,0,0,472,0,24,,,0,,,
1276,2019-01-01 15:15:00,0,-200,285,,0,0,469,0,24,,,0,,,
1276,2019-01-01 15:30:00,0,-100,284,,0,0,466,0,24,,,0,,,
1276,2019-01-01 15:45:00,0,-100,284,,0,0,459,0,24,,,0,,,
1276,2019-01-01 16:00:00,0,-200,283,,0,0,451,0,24,,,0,,,
1276,2019-01-01 16:15:00,0,-100,282,,0,0,438,0,24,,,0,,,
1276,2019-01-01 16:30:00,0,-200,283,,0,0,419,0,24,,,0,,,
1276,2019-01-01 16:45:00,0,-100,282,,0,0,390,0,24,,,0,,,
1276,2019-01-01 17:00:00,0,-100,282,,0,0,237,0,24,,,0,,,
1276,2019-01-01 17:15:00,0,-100,282,,0,0,19,0,24,,,0,,,
1276,2019-01-01 17:30:00,0,-100,282,,0,0,0,0,24,,,0,,,
1276,2019-01-01 17:45:00,0,-200,282,,0,0,0,0,24,,,0,,,
1276,2019-01-01 18:00:00,0,-100,282,,0,0,0,0,24,,,0,,,
1276,2019-01-01 18:15:00,0,-100,282,,0,0,0,0,24,,,0,,,
1276,2019-01-01 18:30:00,0,-100,282,,0,0,0,0,24,,,0,,,
1276,2019-01-01 18:45:00,0,-200,283,,0,0,0,0,24,,,0,,,
1276,2019-01-01 19:00:00,0,-200,283,,0,0,0,0,24,,,0,,,
1276,2019-01-01 19:15:00,0,-100,282,,0,0,0,0,24,,,0,,,
1276,2019-01-01 19:30:00,0,-100,282,,0,0,0,0,24,,,0,,,
1276,2019-01-01 19:45:00,0,-100,282,,0,0,0,0,24,,,0,,,
1276,2019-01-01 20:00:00,0,-100,283,,0,0,0,0,24,,,0,,,
1276,2019-01-01 20:15:00,0,-100,283,,0,0,0,0,24,,,0,,,
1276,2019-01-01 20:30:00,0,-200,284,,0,0,0,0,24,,,0,,,
1276,2019-01-01 20:45:00,0,-200,284,,0,0,0,0,24,,,0,,,
1276,2019-01-01 21:00:00,0,-200,284,,0,0,0,0,24,,,0,,,
1276,2019-01-01 21:15:00,0,-200,284,,0,0,0,0,24,,,0,,,
1276,2019-01-01 21:30:00,0,-100,284,,0,0,0,0,24,,,0,,,
1276,2019-01-01 21:45:00,0,-100,284,,0,0,0,0,24,,,0,,,
1276,2019-01-01 22:00:00,0,-100,284,,0,0,0,0,24,,,0,,,
1276,2019-01-01 22:15:00,0,-200,285,,0,0,0,0,24,,,0,,,
1276,2019-01-01 22:30:00,0,-100,284,,0,0,0,0,24,,,0,,,
1276,2019-01-01 22:45:00,0,-200,285,,0,0,0,0,24,,,0,,,
1276,2019-01-01 23:00:00,0,-100,285,,0,0,0,0,24,,,0,,,
1276,2019-01-01 23:15:00,0,-200,284,,0,0,0,0,24,,,0,,,
1276,2019-01-01 23:30:00,0,-100,285,,0,0,0,0,24,,,0,,,
1276,2019-01-01 23:45:00,0,-200,285,,0,0,0,0,24,,,0,,,
1276,2019-01-02 00:00:00,0,-100,286,,0,0,0,0,24,,,0,,,
1276,2019-01-02 00:15:00,0,-200,285,,0,0,0,0,24,,,0,,,
1276,2019-01-02 00:30:00,0,-100,285,,0,0,0,0,24,,,0,,,
1276,2019-01-02 00:45:00,0,-200,285,,0,0,0,0,24,,,0,,,
1276,2019-01-02 01:00:00,0,-200,285,,0,0,0,0,24,,,0,,,
1276,2019-01-02 01:15:00,0,-100,285,,0,0,0,0,24,,,0,,,
1276,2019-01-02 01:30:00,0,-200,285,,0,0,0,0,24,,,0,,,
1276,2019-01-02 01:45:00,0,-100,285,,0,0,0,0,24,,,0,,,
1276,2019-01-02 02:00:00,0,-100,285,,0,0,0,0,24,,,0,,,
1276,2019-01-02 02:15:00,0,-100,285,,0,0,0,0,24,,,0,,,
1276,2019-01-02 02:30:00,0,-100,285,,0,0,0,0,24,,,0,,,
1276,2019-01-02 02:45:00,0,-100,285,,0,0,0,0,24,,,0,,,
1276,2019-01-02 03:00:00,0,-100,284,,0,0,0,0,24,,,0,,,
1276,2019-01-02 03:15:00,0,-100,284,,0,0,0,0,24,,,0,,,
1276,2019-01-02 03:30:00,0,-100,284,,0,0,0,0,24,,,0,,,
1276,2019-01-02 03:45:00,0,-200,284,,0,0,0,0,24,,,0,,,
1276,2019-01-02 04:00:00,0,-200,284,,0,0,0,0,24,,,0,,,
1276,2019-01-02 04:15:00,0,-200,283,,0,0,0,0,24,,,0,,,
1276,2019-01-02 04:30:00,0,-100,283,,0,0,0,0,24,,,0,,,
1276,2019-01-02 04:45:00,0,-100,283,,0,0,0,0,24,,,0,,,
1276,2019-01-02 05:00:00,0,-100,282,,0,0,0,0,24,,,0,,,
1276,2019-01-02 05:15:00,0,-200,282,,0,0,0,0,24,,,0,,,
1276,2019-01-02 05:30:00,0,-200,282,,0,0,0,0,24,,,0,,,
1276,2019-01-02 05:45:00,0,-200,281,,0,0,0,0,24,,,0,,,
1276,2019-01-02 06:00:00,0,-200,283,,0,0,0,0,24,,,0,,,
1276,2019-01-02 06:15:00,0,-100,282,,0,0,19,0,24,,,0,,,
1276,2019-01-02 06:30:00,0,-200,282,,0,0,268,0,24,,,0,,,
1276,2019-01-02 06:45:00,0,-100,281,,0,0,414,0,24,,,0,,,
1276,2019-01-02 07:00:00,0,-100,281,,0,0,444,0,24,,,0,,,
1276,2019-01-02 07:15:00,0,-200,281,,0,0,462,0,24,,,0,,,
1276,2019-01-02 07:30:00,0,-100,283,,0,0,474,0,24,,,0,,,
1276,2019-01-02 07:45:00,0,-100,283,,0,0,483,0,24,,,0,,,
1276,2019-01-02 08:00:00,0,-200,283,,0,0,486,0,24,,,0,,,
1276,2019-01-02 08:15:00,0,-200,283,,0,0,485,0,24,,,0,,,
1276,2019-01-02 08:30:00,0,-200,283,,0,0,482,0,24,,,0,,,
1276,2019-01-02 08:45:00,0,-200,283,,0,0,479,0,24,,,0,,,
1276,2019-01-02 09:00:00,0,-100,283,,0,0,476,0,24,,,0,,,
1276,2019-01-02 09:15:00,0,-100,283,,0,0,473,0,24,,,0,,,
1276,2019-01-02 09:30:00,0,-100,284,,0,0,469,0,24,,,0,,,
1276,2019-01-02 09:45:00,0,-100,284,,0,0,468,0,24,,,0,,,
1276,2019-01-02 10:00:00,0,-100,284,,0,0,465,0,24,,,0,,,
1276,2019-01-02 10:15:00,0,-100,284,,0,0,463,0,24,,,0,,,
1276,2019-01-02 10:30:00,0,-100,284,,0,0,463,0,24,,,0,,,
1276,2019-01-02 10:45:00,0,-200,284,,0,0,464,0,24,,,0,,,
1276,2019-01-02 11:00:00,0,-200,285,,0,0,463,0,24,,,0,,,
1276,2019-01-02 11:15:00,0,-100,285,,0,0,460,0,24,,,0,,,
1276,2019-01-02 11:30:00,0,-100,285,,0,0,458,0,24,,,0,,,
1276,2019-01-02 11:45:00,0,-200,285,,0,0,458,0,24,,,0,,,
1276,2019-01-02 12:00:00,0,-200,285,,0,0,457,0,24,,,0,,,
1276,2019-01-02 12:15:00,0,-100,284,,0,0,455,0,24,,,0,,,
1276,2019-01-02 12:30:00,0,-100,284,,0,0,456,0,24,,,0,,,
1276,2019-01-02 12:45:00,0,-100,285,,0,0,455,0,24,,,0,,,
1276,2019-01-02 13:00:00,0,-100,284,,0,0,456,0,24,,,0,,,
1276,2019-01-02 13:15:00,0,-100,284,,0,0,455,0,24,,,0,,,
1276,2019-01-02 13:30:00,0,-100,285,,0,0,455,0,24,,,0,,,
1276,2019-01-02 13:45:00,0,-200,285,,0,0,458,0,24,,,0,,,
1276,2019-01-02 14:00:00,0,-100,285,,0,0,458,0,24,,,0,,,
1276,2019-01-02 14:15:00,0,-100,285,,0,0,459,0,24,,,0,,,
1276,2019-01-02 14:30:00,0,-200,285,,0,0,461,0,24,,,0,,,
1276,2019-01-02 14:45:00,0,-100,285,,0,0,462,0,24,,,0,,,
1276,2019-01-02 15:00:00,0,-100,284,,0,0,461,0,24,,,0,,,
1276,2019-01-02 15:15:00,0,-100,284,,0,0,461,0,24,,,0,,,
1276,2019-01-02 15:30:00,0,-200,284,,0,0,458,0,24,,,0,,,
1276,2019-01-02 15:45:00,0,-200,283,,0,0,455,0,24,,,0,,,
1276,2019-01-02 16:00:00,0,-100,283,,0,0,447,0,24,,,0,,,
1276,2019-01-02 16:15:00,0,-100,283,,0,0,434,0,24,,,0,,,
1276,2019-01-02 16:30:00,0,-200,281,,0,0,417,0,24,,,0,,,
1276,2019-01-02 16:45:00,0,-100,283,,0,0,392,0,24,,,0,,,
1276,2019-01-02 17:00:00,0,-200,283,,0,0,280,0,24,,,0,,,
1276,2019-01-02 17:15:00,0,-100,284,,0,0,23,0,24,,,0,,,
1276,2019-01-02 17:30:00,0,-200,284,,0,0,1,0,24,,,0,,,
1276,2019-01-02 17:45:00,0,-100,284,,0,0,0,0,24,,,0,,,
1276,2019-01-02 18:00:00,0,-200,284,,0,0,0,0,24,,,0,,,
1276,2019-01-02 18:15:00,0,-100,284,,0,0,0,0,24,,,0,,,
1276,2019-01-02 18:30:00,0,-100,283,,0,0,0,0,24,,,0,,,
1276,2019-01-02 18:45:00,0,-100,283,,0,0,0,0,24,,,0,,,
1276,2019-01-02 19:00:00,0,-100,283,,0,0,0,0,24,,,0,,,
1276,2019-01-02 19:15:00,0,-200,284,,0,0,0,0,24,,,0,,,
1276,2019-01-02 19:30:00,0,-200,283,,0,0,0,0,24,,,0,,,
1276,2019-01-02 19:45:00,0,-100,283,,0,0,0,0,24,,,0,,,
1276,2019-01-02 20:00:00,0,-200,283,,0,0,0,0,24,,,0,,,
1276,2019-01-02 20:15:00,0,-100,283,,0,0,0,0,24,,,0,,,
1276,2019-01-02 20:30:00,0,-200,283,,0,0,0,0,24,,,0,,,
1276,2019-01-02 20:45:00,0,-100,283,,0,0,0,0,24,,,0,,,
1276,2019-01-02 21:00:00,0,-100,283,,0,0,0,0,24,,,0,,,
1276,2019-01-02 21:15:00,0,-100,284,,0,0,0,0,24,,,0,,,
1276,2019-01-02 21:30:00,0,-100,284,,0,0,0,0,24,,,0,,,
1276,2019-01-02 21:45:00,0,-200,284,,0,0,0,0,24,,,0,,,
1276,2019-01-02 22:00:00,0,-200,284,,0,0,0,0,24,,,0,,,
1276,2019-01-02 22:15:00,0,-200,284,,0,0,0,0,24,,,0,,,
1276,2019-01-02 22:30:00,0,-200,284,,0,0,0,0,24,,,0,,,
1276,2019-01-02 22:45:00,0,-100,285,,0,0,0,0,24,,,0,,,
1276,2019-01-02 23:00:00,0,-200,284,,0,0,0,0,24,,,0,,,
1276,2019-01-02 23:15:00,0,-200,284,,0,0,0,0,24,,,0,,,
1276,2019-01-02 23:30:00,0,-100,284,,0,0,0,0,24,,,0,,,
1276,2019-01-02 23:45:00,0,-200,285,,0,0,0,0,24,,,0,,,
Loading