diff --git a/.github/workflows/flake8.yml b/.github/workflows/flake8.yml index eabdbdbf38..82b413236f 100644 --- a/.github/workflows/flake8.yml +++ b/.github/workflows/flake8.yml @@ -20,7 +20,7 @@ jobs: git remote add upstream https://github.com/pvlib/pvlib-python.git git fetch upstream $GITHUB_BASE_REF - name: Run Flake8 linter - run: git diff upstream/$GITHUB_BASE_REF HEAD | flake8 + run: git diff upstream/$GITHUB_BASE_REF HEAD -- "*.py" | flake8 --exclude pvlib/version.py --ignore E201,E241,E226,W503,W504 --max-line-length 79 diff --git a/docs/sphinx/source/reference/iotools.rst b/docs/sphinx/source/reference/iotools.rst index 05100e9d17..cf6fbf4ac4 100644 --- a/docs/sphinx/source/reference/iotools.rst +++ b/docs/sphinx/source/reference/iotools.rst @@ -46,6 +46,8 @@ of sources and file formats relevant to solar energy modeling. iotools.get_acis_station_data iotools.get_acis_available_stations iotools.read_panond + iotools.get_solaranywhere + iotools.read_solaranywhere iotools.get_solcast_tmy iotools.get_solcast_historic iotools.get_solcast_forecast diff --git a/docs/sphinx/source/whatsnew/v0.10.3.rst b/docs/sphinx/source/whatsnew/v0.10.3.rst index 29aa59a543..922d2099df 100644 --- a/docs/sphinx/source/whatsnew/v0.10.3.rst +++ b/docs/sphinx/source/whatsnew/v0.10.3.rst @@ -20,6 +20,9 @@ Enhancements read data from the Solcast API. (:issue:`1313`, :pull:`1875`) * Added :py:func:`~pvlib.iam.convert` and :py:func:`~pvlib.iam.fit` that convert between IAM models, and that fit an IAM model to data. (:issue:`1824`, :pull:`1827`) +* Add :py:func:`pvlib.iotools.read_solaranywhere` and + :py:func:`pvlib.iotools.get_solaranywhere` for reading and retrieving + SolarAnywhere solar irradiance data. (:pull:`1497`, :discuss:`1310`) Bug fixes ~~~~~~~~~ diff --git a/docs/sphinx/source/whatsnew/v0.9.2.rst b/docs/sphinx/source/whatsnew/v0.9.2.rst index d8221e48db..2616734036 100644 --- a/docs/sphinx/source/whatsnew/v0.9.2.rst +++ b/docs/sphinx/source/whatsnew/v0.9.2.rst @@ -82,4 +82,4 @@ Contributors * Mark Campanelli (:ghuser:`campanelli-sunpower`) * Anton Driesse (:ghuser:`adriesse`) * Kristen Wagner (:ghuser:`kwagnercpr`) -* Mark Mikofski (:ghuser:`mikofski`) +* Mark Mikofski (:ghuser:`mikofski`) \ No newline at end of file diff --git a/pvlib/data/Burlington, United States SolarAnywhere Time Series 20210101 to 20210103 Lat_44_4675 Lon_-73_2075 SA format.csv b/pvlib/data/Burlington, United States SolarAnywhere Time Series 20210101 to 20210103 Lat_44_4675 Lon_-73_2075 SA format.csv new file mode 100644 index 0000000000..bcf41e46fd --- /dev/null +++ b/pvlib/data/Burlington, United States SolarAnywhere Time Series 20210101 to 20210103 Lat_44_4675 Lon_-73_2075 SA format.csv @@ -0,0 +1,578 @@ +0,Burlington United States,NA,-5,44.4675,-73.2075,41,"Data Version: 3.6 / Type: Timeseries / LatLon Resolution: 0.005 / Time Resolution: 5 minutes / Averaging Method: End of Period / TD: Yes / Copyright 2010-2022 Clean Power Research®, L.L.C. DownloadID=adb3c86a-b11f-4263-a2db-8d2626da9390" +ObservationTime(LST),Global Horizontal Irradiance (GHI) W/m2,Direct Normal Irradiance (DNI) W/m2,AmbientTemperature (deg C),WindSpeed (m/s),Relative Humidity (%),Liquid Precipitation (kg/m2),Solid Precipitation (kg/m2),Snow Depth (m),Clear Sky GHI,Clear Sky DNI,Clear Sky DHI,IrradianceObservationType,LeadTime,DataVersion,ObservationTime(GMT),Diffuse Horizontal Irradiance (DIF) W/m2,AmbientTemperatureObservationType,WindSpeedObservationType,Albedo,Particulate Matter 10 (µg/m3),Particulate Matter 2.5 (µg/m3) +01/01/2021 00:05,0,0,-2,2,73,0.0007,0,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 05:05,0,O,O,0.6,4.5,5.8 +01/01/2021 00:10,0,0,-2,2,73,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 05:10,0,O,O,0.6,4.5,5.8 +01/01/2021 00:15,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 05:15,0,O,O,0.6,4.5,5.8 +01/01/2021 00:20,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 05:20,0,O,O,0.6,4.5,5.8 +01/01/2021 00:25,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 05:25,0,O,O,0.6,4.5,5.8 +01/01/2021 00:30,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 05:30,0,O,O,0.6,4.5,5.8 +01/01/2021 00:35,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 05:35,0,O,O,0.6,4.5,5.8 +01/01/2021 00:40,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 05:40,0,O,O,0.6,4.5,5.8 +01/01/2021 00:45,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 05:45,0,O,O,0.6,4.5,5.8 +01/01/2021 00:50,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 05:50,0,O,O,0.6,4.5,5.8 +01/01/2021 00:55,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 05:55,0,O,O,0.6,4.5,5.8 +01/01/2021 01:00,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 06:00,0,O,O,0.6,4.5,5.8 +01/01/2021 01:05,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 06:05,0,O,O,0.6,5.1,6.4 +01/01/2021 01:10,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 06:10,0,O,O,0.6,5.1,6.4 +01/01/2021 01:15,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 06:15,0,O,O,0.6,5.1,6.4 +01/01/2021 01:20,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 06:20,0,O,O,0.6,5.1,6.4 +01/01/2021 01:25,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 06:25,0,O,O,0.6,5.1,6.4 +01/01/2021 01:30,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 06:30,0,O,O,0.6,5.1,6.4 +01/01/2021 01:35,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 06:35,0,O,O,0.6,5.1,6.4 +01/01/2021 01:40,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 06:40,0,O,O,0.6,5.1,6.4 +01/01/2021 01:45,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 06:45,0,O,O,0.6,5.1,6.4 +01/01/2021 01:50,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 06:50,0,O,O,0.6,5.1,6.4 +01/01/2021 01:55,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 06:55,0,O,O,0.6,5.1,6.4 +01/01/2021 02:00,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 07:00,0,O,O,0.6,5.1,6.4 +01/01/2021 02:05,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 07:05,0,O,O,0.6,5.1,7 +01/01/2021 02:10,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 07:10,0,O,O,0.6,5.1,7 +01/01/2021 02:15,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 07:15,0,O,O,0.6,5.1,7 +01/01/2021 02:20,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 07:20,0,O,O,0.6,5.1,7 +01/01/2021 02:25,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 07:25,0,O,O,0.6,5.1,7 +01/01/2021 02:30,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 07:30,0,O,O,0.6,5.1,7 +01/01/2021 02:35,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 07:35,0,O,O,0.6,5.1,7 +01/01/2021 02:40,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 07:40,0,O,O,0.6,5.1,7 +01/01/2021 02:45,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 07:45,0,O,O,0.6,5.1,7 +01/01/2021 02:50,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 07:50,0,O,O,0.6,5.1,7 +01/01/2021 02:55,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 07:55,0,O,O,0.6,5.1,7 +01/01/2021 03:00,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 08:00,0,O,O,0.6,5.1,7 +01/01/2021 03:05,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 08:05,0,O,O,0.6,5.1,7.6 +01/01/2021 03:10,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 08:10,0,O,O,0.6,5.1,7.6 +01/01/2021 03:15,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 08:15,0,O,O,0.6,5.1,7.6 +01/01/2021 03:20,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 08:20,0,O,O,0.6,5.1,7.6 +01/01/2021 03:25,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 08:25,0,O,O,0.6,5.1,7.6 +01/01/2021 03:30,0,0,-2,2,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 08:30,0,O,O,0.6,5.1,7.6 +01/01/2021 03:35,0,0,-2,2,73,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 08:35,0,O,O,0.6,5.1,7.6 +01/01/2021 03:40,0,0,-2,1,73,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 08:40,0,O,O,0.6,5.1,7.6 +01/01/2021 03:45,0,0,-2,1,73,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 08:45,0,O,O,0.6,5.1,7.6 +01/01/2021 03:50,0,0,-2,1,73,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 08:50,0,O,O,0.6,5.1,7.6 +01/01/2021 03:55,0,0,-2,1,73,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 08:55,0,O,O,0.6,5.1,7.6 +01/01/2021 04:00,0,0,-2,1,73,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 09:00,0,O,O,0.6,5.1,7.6 +01/01/2021 04:05,0,0,-2,1,74,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 09:05,0,O,O,0.6,6.2,8 +01/01/2021 04:10,0,0,-2,1,74,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 09:10,0,O,O,0.6,6.2,8 +01/01/2021 04:15,0,0,-2,1,74,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 09:15,0,O,O,0.6,6.2,8 +01/01/2021 04:20,0,0,-2,1,74,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 09:20,0,O,O,0.6,6.2,8 +01/01/2021 04:25,0,0,-2,1,74,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 09:25,0,O,O,0.6,6.2,8 +01/01/2021 04:30,0,0,-2,1,74,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 09:30,0,O,O,0.6,6.2,8 +01/01/2021 04:35,0,0,-2,1,74,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 09:35,0,O,O,0.6,6.2,8 +01/01/2021 04:40,0,0,-3,1,74,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 09:40,0,O,O,0.6,6.2,8 +01/01/2021 04:45,0,0,-3,1,74,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 09:45,0,O,O,0.6,6.2,8 +01/01/2021 04:50,0,0,-3,1,74,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 09:50,0,O,O,0.6,6.2,8 +01/01/2021 04:55,0,0,-3,1,74,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 09:55,0,O,O,0.6,6.2,8 +01/01/2021 05:00,0,0,-3,1,74,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 10:00,0,O,O,0.6,6.2,8 +01/01/2021 05:05,0,0,-3,1,74,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 10:05,0,O,O,0.6,6.2,8.5 +01/01/2021 05:10,0,0,-3,1,74,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 10:10,0,O,O,0.6,6.2,8.5 +01/01/2021 05:15,0,0,-3,1,74,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 10:15,0,O,O,0.6,6.2,8.5 +01/01/2021 05:20,0,0,-3,1,74,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 10:20,0,O,O,0.6,6.2,8.5 +01/01/2021 05:25,0,0,-3,1,74,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 10:25,0,O,O,0.6,6.2,8.5 +01/01/2021 05:30,0,0,-3,1,74,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 10:30,0,O,O,0.6,6.2,8.5 +01/01/2021 05:35,0,0,-3,1,74,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 10:35,0,O,O,0.6,6.2,8.5 +01/01/2021 05:40,0,0,-3,1,73,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 10:40,0,O,O,0.6,6.2,8.5 +01/01/2021 05:45,0,0,-3,1,73,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 10:45,0,O,O,0.6,6.2,8.5 +01/01/2021 05:50,0,0,-3,1,73,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 10:50,0,O,O,0.6,6.2,8.5 +01/01/2021 05:55,0,0,-3,1,73,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 10:55,0,O,O,0.6,6.2,8.5 +01/01/2021 06:00,0,0,-3,1,73,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 11:00,0,O,O,0.6,6.2,8.5 +01/01/2021 06:05,0,0,-3,1,73,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 11:05,0,O,O,0.6,6.2,8.8 +01/01/2021 06:10,0,0,-3,1,73,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 11:10,0,O,O,0.6,6.2,8.8 +01/01/2021 06:15,0,0,-3,1,73,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 11:15,0,O,O,0.6,6.2,8.8 +01/01/2021 06:20,0,0,-3,1,73,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 11:20,0,O,O,0.6,6.2,8.8 +01/01/2021 06:25,0,0,-3,1,73,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 11:25,0,O,O,0.6,6.2,8.8 +01/01/2021 06:30,0,0,-3,1,74,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 11:30,0,O,O,0.6,6.2,8.8 +01/01/2021 06:35,0,0,-3,0,74,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 11:35,0,O,O,0.6,6.2,8.8 +01/01/2021 06:40,0,0,-3,0,74,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 11:40,0,O,O,0.6,6.2,8.8 +01/01/2021 06:45,0,0,-3,0,74,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 11:45,0,O,O,0.6,6.2,8.8 +01/01/2021 06:50,0,0,-3,0,75,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 11:50,0,O,O,0.6,6.2,8.8 +01/01/2021 06:55,0,0,-3,0,75,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 11:55,0,O,O,0.6,6.2,8.8 +01/01/2021 07:00,0,0,-3,0,75,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 12:00,0,O,O,0.6,6.2,8.8 +01/01/2021 07:05,0,0,-3,0,75,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 12:05,0,O,O,0.6,6.9,8.9 +01/01/2021 07:10,0,0,-3,0,75,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 12:10,0,O,O,0.6,6.9,8.9 +01/01/2021 07:15,0,0,-3,0,75,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 12:15,0,O,O,0.6,6.9,8.9 +01/01/2021 07:20,0,0,-3,0,75,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 12:20,0,O,O,0.6,6.9,8.9 +01/01/2021 07:25,0,0,-3,0,75,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 12:25,0,O,O,0.6,6.9,8.9 +01/01/2021 07:30,0,0,-3,0,75,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 12:30,0,O,O,0.6,6.9,8.9 +01/01/2021 07:35,0,0,-3,0,74,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 12:35,0,O,O,0.6,6.9,8.9 +01/01/2021 07:40,0,0,-3,1,74,0,0.0017,0,0,112,0,AN,,SolarAnywhere3_6,01/01/2021 12:40,0,O,O,0.6,6.9,8.9 +01/01/2021 07:45,1,0,-3,1,74,0,0.0017,0,5,170,2,AD,,SolarAnywhere3_6,01/01/2021 12:45,1,O,O,0.6,6.9,8.9 +01/01/2021 07:50,5,0,-3,1,74,0,0.0017,0,14,225,6,AD,,SolarAnywhere3_6,01/01/2021 12:50,5,O,O,0.6,6.9,8.9 +01/01/2021 07:55,9,0,-3,1,74,0,0.0017,0,24,274,11,AD,,SolarAnywhere3_6,01/01/2021 12:55,9,O,O,0.6,6.9,8.9 +01/01/2021 08:00,17,0,-3,1,74,0,0.0017,0,36,316,18,AD,,SolarAnywhere3_6,01/01/2021 13:00,17,O,O,0.6,6.9,8.9 +01/01/2021 08:05,15,0,-3,1,74,0,0.0017,0,47,336,23,AD,,SolarAnywhere3_6,01/01/2021 13:05,15,O,O,0.6,6.9,8.8 +01/01/2021 08:10,20,0,-3,1,73,0,0.0017,0,59,372,28,AD,,SolarAnywhere3_6,01/01/2021 13:10,20,O,O,0.6,6.9,8.8 +01/01/2021 08:15,23,0,-2,1,72,0,0.0017,0,71,407,32,AD,,SolarAnywhere3_6,01/01/2021 13:15,23,O,O,0.6,6.9,8.8 +01/01/2021 08:20,26,0,-2,1,71,0,0.0017,0,84,440,37,AD,,SolarAnywhere3_6,01/01/2021 13:20,26,O,O,0.6,6.9,8.8 +01/01/2021 08:25,28,0,-2,1,70,0,0.0017,0,96,471,40,AD,,SolarAnywhere3_6,01/01/2021 13:25,28,O,O,0.6,6.9,8.8 +01/01/2021 08:30,42,0,-2,1,69,0,0.0017,0,109,500,44,AD,,SolarAnywhere3_6,01/01/2021 13:30,42,O,O,0.6,6.9,8.8 +01/01/2021 08:35,31,0,-2,1,68,0,0.0017,0,121,526,47,AD,,SolarAnywhere3_6,01/01/2021 13:35,31,O,O,0.6,6.9,8.8 +01/01/2021 08:40,35,0,-1,1,67,0,0.0017,0,134,551,50,AD,,SolarAnywhere3_6,01/01/2021 13:40,35,O,O,0.6,6.9,8.8 +01/01/2021 08:45,37,0,-1,1,67,0,0.0017,0,146,574,53,AD,,SolarAnywhere3_6,01/01/2021 13:45,37,O,O,0.6,6.9,8.8 +01/01/2021 08:50,37,0,-1,1,66,0,0.0017,0,159,595,56,AD,,SolarAnywhere3_6,01/01/2021 13:50,37,O,O,0.6,6.9,8.8 +01/01/2021 08:55,40,0,0,1,65,0,0.0017,0,171,614,58,AD,,SolarAnywhere3_6,01/01/2021 13:55,40,O,O,0.6,6.9,8.8 +01/01/2021 09:00,39,0,0,1,64,0,0.0017,0,183,632,61,AD,,SolarAnywhere3_6,01/01/2021 14:00,39,O,O,0.6,6.9,8.8 +01/01/2021 09:05,41,0,0,1,63,0,0.0017,0,194,638,64,AD,,SolarAnywhere3_6,01/01/2021 14:05,41,O,O,0.6,6.9,5.6 +01/01/2021 09:10,63,0,0,1,63,0,0.0017,0,206,654,66,AD,,SolarAnywhere3_6,01/01/2021 14:10,63,O,O,0.6,6.9,5.6 +01/01/2021 09:15,64,0,0,1,63,0,0.0017,0,217,668,68,AD,,SolarAnywhere3_6,01/01/2021 14:15,64,O,O,0.6,6.9,5.6 +01/01/2021 09:20,51,0,0,1,63,0,0.0017,0,228,682,70,AD,,SolarAnywhere3_6,01/01/2021 14:20,51,O,O,0.6,6.9,5.6 +01/01/2021 09:25,51,0,0,1,63,0,0.0017,0,240,695,72,AD,,SolarAnywhere3_6,01/01/2021 14:25,51,O,O,0.6,6.9,5.6 +01/01/2021 09:30,76,0,0,1,63,0,0.0017,0,250,706,74,AD,,SolarAnywhere3_6,01/01/2021 14:30,76,O,O,0.6,6.9,5.6 +01/01/2021 09:35,80,0,0,1,63,0,0.0017,0,261,717,76,AD,,SolarAnywhere3_6,01/01/2021 14:35,80,O,O,0.6,6.9,5.6 +01/01/2021 09:40,82,0,0,1,63,0,0.0017,0,271,728,77,AD,,SolarAnywhere3_6,01/01/2021 14:40,82,O,O,0.6,6.9,5.6 +01/01/2021 09:45,65,0,0,1,63,0,0.0017,0,281,737,79,AD,,SolarAnywhere3_6,01/01/2021 14:45,65,O,O,0.6,6.9,5.6 +01/01/2021 09:50,63,0,0,1,63,0,0.0017,0,291,746,80,AD,,SolarAnywhere3_6,01/01/2021 14:50,63,O,O,0.6,6.9,5.6 +01/01/2021 09:55,73,0,0,1,63,0,0.0017,0,300,755,81,AD,,SolarAnywhere3_6,01/01/2021 14:55,73,O,O,0.6,6.9,5.6 +01/01/2021 10:00,95,0,0,1,63,0,0.0017,0,310,762,84,AD,,SolarAnywhere3_6,01/01/2021 15:00,95,O,O,0.6,6.9,5.6 +01/01/2021 10:05,94,0,0,1,63,0,0.0017,0,318,761,87,AD,,SolarAnywhere3_6,01/01/2021 15:05,94,O,O,0.6,9.2,4.6 +01/01/2021 10:10,84,0,0,1,63,0,0.0017,0,326,768,87,AD,,SolarAnywhere3_6,01/01/2021 15:10,84,O,O,0.6,9.2,4.6 +01/01/2021 10:15,127,9,0,1,63,0,0.0017,0,334,774,89,AD,,SolarAnywhere3_6,01/01/2021 15:15,124,O,O,0.6,9.2,4.6 +01/01/2021 10:20,172,69,0,1,63,0,0.0017,0,342,780,90,AD,,SolarAnywhere3_6,01/01/2021 15:20,150,O,O,0.6,9.2,4.6 +01/01/2021 10:25,218,252,0,1,63,0,0.0017,0,350,786,91,AD,,SolarAnywhere3_6,01/01/2021 15:25,135,O,O,0.6,9.2,4.6 +01/01/2021 10:30,237,313,0,1,63,0,0.0017,0,357,791,92,AD,,SolarAnywhere3_6,01/01/2021 15:30,132,O,O,0.6,9.2,4.6 +01/01/2021 10:35,251,356,0,1,63,0,0.0017,0,364,796,94,AD,,SolarAnywhere3_6,01/01/2021 15:35,130,O,O,0.6,9.2,4.6 +01/01/2021 10:40,274,455,0,1,62,0,0.0017,0,370,801,94,AD,,SolarAnywhere3_6,01/01/2021 15:40,117,O,O,0.6,9.2,4.6 +01/01/2021 10:45,290,541,0,1,62,0,0.0017,0,377,805,96,AD,,SolarAnywhere3_6,01/01/2021 15:45,101,O,O,0.6,9.2,4.6 +01/01/2021 10:50,276,424,0,1,62,0,0.0017,0,382,809,96,AD,,SolarAnywhere3_6,01/01/2021 15:50,126,O,O,0.6,9.2,4.6 +01/01/2021 10:55,274,397,0,1,62,0,0.0017,0,388,812,97,AD,,SolarAnywhere3_6,01/01/2021 15:55,132,O,O,0.6,9.2,4.6 +01/01/2021 11:00,220,119,0,1,62,0,0.0017,0,393,816,98,AD,,SolarAnywhere3_6,01/01/2021 16:00,177,O,O,0.6,9.2,4.6 +01/01/2021 11:05,199,75,0,1,62,0,0.0017,0,397,817,99,AD,,SolarAnywhere3_6,01/01/2021 16:05,172,O,O,0.6,9.2,4.3 +01/01/2021 11:10,179,44,0,1,62,0,0.0017,0,402,820,100,AD,,SolarAnywhere3_6,01/01/2021 16:10,163,O,O,0.6,9.2,4.3 +01/01/2021 11:15,163,22,0,1,61,0,0.0017,0,405,822,100,AD,,SolarAnywhere3_6,01/01/2021 16:15,155,O,O,0.6,9.2,4.3 +01/01/2021 11:20,159,18,0,1,61,0,0.0017,0,409,824,101,AD,,SolarAnywhere3_6,01/01/2021 16:20,152,O,O,0.6,9.2,4.3 +01/01/2021 11:25,189,51,0,1,60,0,0.0017,0,412,826,102,AD,,SolarAnywhere3_6,01/01/2021 16:25,170,O,O,0.6,9.2,4.3 +01/01/2021 11:30,154,13,0,1,60,0,0.0017,0,415,828,102,AD,,SolarAnywhere3_6,01/01/2021 16:30,149,O,O,0.6,9.2,4.3 +01/01/2021 11:35,161,17,0,0,59,0,0.0017,0,417,829,102,AD,,SolarAnywhere3_6,01/01/2021 16:35,154,O,O,0.6,9.2,4.3 +01/01/2021 11:40,179,32,0,0,59,0,0.0017,0,419,830,103,AD,,SolarAnywhere3_6,01/01/2021 16:40,167,O,O,0.6,9.2,4.3 +01/01/2021 11:45,151,10,0,0,59,0,0.0017,0,421,831,104,AD,,SolarAnywhere3_6,01/01/2021 16:45,147,O,O,0.6,9.2,4.3 +01/01/2021 11:50,198,57,0,0,58,0,0.0017,0,422,832,104,AD,,SolarAnywhere3_6,01/01/2021 16:50,176,O,O,0.6,9.2,4.3 +01/01/2021 11:55,163,17,0,0,58,0,0.0017,0,422,832,104,AD,,SolarAnywhere3_6,01/01/2021 16:55,156,O,O,0.6,9.2,4.3 +01/01/2021 12:00,176,28,0,0,57,0,0.0017,0,423,832,104,AD,,SolarAnywhere3_6,01/01/2021 17:00,165,O,O,0.6,9.2,4.3 +01/01/2021 12:05,146,7,0,0,57,0,0.0017,0,423,831,105,AD,,SolarAnywhere3_6,01/01/2021 17:05,143,O,O,0.6,9.2,4.2 +01/01/2021 12:10,165,19,0,0,57,0,0.0017,0,422,830,105,AD,,SolarAnywhere3_6,01/01/2021 17:10,158,O,O,0.6,9.2,4.2 +01/01/2021 12:15,222,93,0,0,57,0,0.0017,0,421,830,105,AD,,SolarAnywhere3_6,01/01/2021 17:15,187,O,O,0.6,9.2,4.2 +01/01/2021 12:20,207,70,0,0,57,0,0.0017,0,420,829,105,AD,,SolarAnywhere3_6,01/01/2021 17:20,180,O,O,0.6,9.2,4.2 +01/01/2021 12:25,259,255,0,0,57,0,0.0017,0,418,828,105,AD,,SolarAnywhere3_6,01/01/2021 17:25,162,O,O,0.6,9.2,4.2 +01/01/2021 12:30,276,323,0,0,57,0,0.0017,0,416,827,104,AD,,SolarAnywhere3_6,01/01/2021 17:30,154,O,O,0.6,9.2,4.2 +01/01/2021 12:35,271,309,0,0,57,0,0.0017,0,414,825,105,AD,,SolarAnywhere3_6,01/01/2021 17:35,155,O,O,0.6,9.2,4.2 +01/01/2021 12:40,225,109,1,1,57,0,0.0017,0,411,824,104,AD,,SolarAnywhere3_6,01/01/2021 17:40,184,O,O,0.6,9.2,4.2 +01/01/2021 12:45,229,120,1,1,57,0,0.0017,0,408,822,104,AD,,SolarAnywhere3_6,01/01/2021 17:45,185,O,O,0.6,9.2,4.2 +01/01/2021 12:50,219,104,1,1,57,0,0.0017,0,404,819,104,AD,,SolarAnywhere3_6,01/01/2021 17:50,181,O,O,0.6,9.2,4.2 +01/01/2021 12:55,176,41,1,1,57,0,0.0017,0,400,817,103,AD,,SolarAnywhere3_6,01/01/2021 17:55,161,O,O,0.6,9.2,4.2 +01/01/2021 13:00,170,33,1,1,57,0,0.0017,0,396,814,104,AD,,SolarAnywhere3_6,01/01/2021 18:00,158,O,O,0.6,9.2,4.2 +01/01/2021 13:05,159,24,1,1,57,0,0.0017,0,391,809,104,AD,,SolarAnywhere3_6,01/01/2021 18:05,150,O,O,0.6,7.2,4.1 +01/01/2021 13:10,181,55,1,1,56,0,0.0017,0,385,806,102,AD,,SolarAnywhere3_6,01/01/2021 18:10,162,O,O,0.6,7.2,4.1 +01/01/2021 13:15,168,41,1,1,56,0,0.0017,0,380,802,102,AD,,SolarAnywhere3_6,01/01/2021 18:15,154,O,O,0.6,7.2,4.1 +01/01/2021 13:20,174,53,1,1,56,0,0.0017,0,374,798,101,AD,,SolarAnywhere3_6,01/01/2021 18:20,156,O,O,0.6,7.2,4.1 +01/01/2021 13:25,179,60,1,1,56,0,0.0017,0,368,794,101,AD,,SolarAnywhere3_6,01/01/2021 18:25,159,O,O,0.6,7.2,4.1 +01/01/2021 13:30,159,36,1,1,56,0,0.0017,0,361,789,100,AD,,SolarAnywhere3_6,01/01/2021 18:30,147,O,O,0.6,7.2,4.1 +01/01/2021 13:35,159,40,1,1,56,0,0.0017,0,354,784,99,AD,,SolarAnywhere3_6,01/01/2021 18:35,146,O,O,0.6,7.2,4.1 +01/01/2021 13:40,139,14,1,1,56,0,0.0017,0,347,779,98,AD,,SolarAnywhere3_6,01/01/2021 18:40,134,O,O,0.6,7.2,4.1 +01/01/2021 13:45,138,15,1,1,56,0,0.0017,0,339,773,97,AD,,SolarAnywhere3_6,01/01/2021 18:45,133,O,O,0.6,7.2,4.1 +01/01/2021 13:50,152,44,1,1,56,0,0.0017,0,331,767,96,AD,,SolarAnywhere3_6,01/01/2021 18:50,138,O,O,0.6,7.2,4.1 +01/01/2021 13:55,136,19,1,1,56,0,0.0017,0,323,760,95,AD,,SolarAnywhere3_6,01/01/2021 18:55,130,O,O,0.6,7.2,4.1 +01/01/2021 14:00,135,21,1,1,56,0,0.0017,0,314,753,94,AD,,SolarAnywhere3_6,01/01/2021 19:00,129,O,O,0.6,7.2,4.1 +01/01/2021 14:05,129,18,1,1,56,0,0.0017,0,303,726,96,AD,,SolarAnywhere3_6,01/01/2021 19:05,124,O,O,0.6,7.2,4.1 +01/01/2021 14:10,134,38,1,1,56,0,0.0017,0,294,718,95,AD,,SolarAnywhere3_6,01/01/2021 19:10,123,O,O,0.6,7.2,4.1 +01/01/2021 14:15,121,17,1,1,57,0,0.0017,0,285,709,94,AD,,SolarAnywhere3_6,01/01/2021 19:15,116,O,O,0.6,7.2,4.1 +01/01/2021 14:20,116,16,1,1,57,0,0.0017,0,275,699,92,AD,,SolarAnywhere3_6,01/01/2021 19:20,112,O,O,0.6,7.2,4.1 +01/01/2021 14:25,109,13,1,1,57,0,0.0017,0,265,689,91,AD,,SolarAnywhere3_6,01/01/2021 19:25,106,O,O,0.6,7.2,4.1 +01/01/2021 14:30,93,3,1,1,57,0,0.0017,0,254,678,88,AD,,SolarAnywhere3_6,01/01/2021 19:30,92,O,O,0.6,7.2,4.1 +01/01/2021 14:35,88,1,0,1,57,0,0.0017,0,244,666,87,AD,,SolarAnywhere3_6,01/01/2021 19:35,88,O,O,0.6,7.2,4.1 +01/01/2021 14:40,87,3,0,1,57,0,0.0017,0,233,653,85,AD,,SolarAnywhere3_6,01/01/2021 19:40,86,O,O,0.6,7.2,4.1 +01/01/2021 14:45,75,0,0,1,57,0,0.0017,0,222,639,83,AD,,SolarAnywhere3_6,01/01/2021 19:45,75,O,O,0.6,7.2,4.1 +01/01/2021 14:50,57,0,0,1,58,0,0.0017,0,211,625,81,AD,,SolarAnywhere3_6,01/01/2021 19:50,57,O,O,0.6,7.2,4.1 +01/01/2021 14:55,59,0,0,1,58,0,0.0017,0,199,609,79,AD,,SolarAnywhere3_6,01/01/2021 19:55,59,O,O,0.6,7.2,4.1 +01/01/2021 15:00,50,0,0,1,58,0,0.0017,0,187,592,76,AD,,SolarAnywhere3_6,01/01/2021 20:00,50,O,O,0.6,7.2,4.1 +01/01/2021 15:05,54,0,0,1,58,0,0.0017,0,174,551,76,AD,,SolarAnywhere3_6,01/01/2021 20:05,54,O,O,0.6,7.2,4.3 +01/01/2021 15:10,53,0,0,1,59,0,0.0017,0,162,531,74,AD,,SolarAnywhere3_6,01/01/2021 20:10,53,O,O,0.6,7.2,4.3 +01/01/2021 15:15,40,0,0,1,59,0,0.0017,0,150,509,71,AD,,SolarAnywhere3_6,01/01/2021 20:15,40,O,O,0.6,7.2,4.3 +01/01/2021 15:20,22,0,0,1,59,0,0.0017,0,138,486,68,AD,,SolarAnywhere3_6,01/01/2021 20:20,22,O,O,0.6,7.2,4.3 +01/01/2021 15:25,30,0,0,1,60,0,0.0017,0,126,461,64,AD,,SolarAnywhere3_6,01/01/2021 20:25,30,O,O,0.6,7.2,4.3 +01/01/2021 15:30,19,0,0,1,60,0,0.0017,0,113,434,60,AD,,SolarAnywhere3_6,01/01/2021 20:30,19,O,O,0.6,7.2,4.3 +01/01/2021 15:35,24,0,0,2,61,0,0.0017,0,101,405,56,AD,,SolarAnywhere3_6,01/01/2021 20:35,24,O,O,0.6,7.2,4.3 +01/01/2021 15:40,19,0,0,2,61,0,0.0017,0,89,374,52,AD,,SolarAnywhere3_6,01/01/2021 20:40,19,O,O,0.6,7.2,4.3 +01/01/2021 15:45,19,0,0,2,61,0,0.0017,0,77,341,47,AD,,SolarAnywhere3_6,01/01/2021 20:45,19,O,O,0.6,7.2,4.3 +01/01/2021 15:50,13,0,0,2,62,0,0.0017,0,64,306,41,AD,,SolarAnywhere3_6,01/01/2021 20:50,13,O,O,0.6,7.2,4.3 +01/01/2021 15:55,10,0,0,2,62,0,0.0017,0,53,270,36,AD,,SolarAnywhere3_6,01/01/2021 20:55,10,O,O,0.6,7.2,4.3 +01/01/2021 16:00,8,0,0,2,63,0,0.0017,0,41,232,29,AD,,SolarAnywhere3_6,01/01/2021 21:00,8,O,O,0.6,7.2,4.3 +01/01/2021 16:05,7,0,0,2,63,0,0.0017,0,29,171,22,AD,,SolarAnywhere3_6,01/01/2021 21:05,7,O,O,0.6,7.3,4.5 +01/01/2021 16:10,6,0,0,2,64,0,0.0017,0,19,130,16,AD,,SolarAnywhere3_6,01/01/2021 21:10,6,O,O,0.6,7.3,4.5 +01/01/2021 16:15,2,0,0,2,64,0,0.0017,0,10,89,9,AD,,SolarAnywhere3_6,01/01/2021 21:15,2,O,O,0.6,7.3,4.5 +01/01/2021 16:20,2,0,0,2,65,0,0.0017,0,2,50,2,AD,,SolarAnywhere3_6,01/01/2021 21:20,2,O,O,0.6,7.3,4.5 +01/01/2021 16:25,0,0,0,2,65,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 21:25,0,O,O,0.6,7.3,4.5 +01/01/2021 16:30,0,0,0,2,66,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 21:30,0,O,O,0.6,7.3,4.5 +01/01/2021 16:35,0,0,0,2,66,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 21:35,0,O,O,0.6,7.3,4.5 +01/01/2021 16:40,0,0,-1,2,67,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 21:40,0,O,O,0.6,7.3,4.5 +01/01/2021 16:45,0,0,-1,2,67,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 21:45,0,O,O,0.6,7.3,4.5 +01/01/2021 16:50,0,0,-1,2,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 21:50,0,O,O,0.6,7.3,4.5 +01/01/2021 16:55,0,0,-1,2,69,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 21:55,0,O,O,0.6,7.3,4.5 +01/01/2021 17:00,0,0,-1,2,69,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 22:00,0,O,O,0.6,7.3,4.5 +01/01/2021 17:05,0,0,-1,2,70,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 22:05,0,O,O,0.6,7.3,4.7 +01/01/2021 17:10,0,0,-1,2,70,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 22:10,0,O,O,0.6,7.3,4.7 +01/01/2021 17:15,0,0,-1,2,70,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 22:15,0,O,O,0.6,7.3,4.7 +01/01/2021 17:20,0,0,-1,2,70,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 22:20,0,O,O,0.6,7.3,4.7 +01/01/2021 17:25,0,0,-1,2,70,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 22:25,0,O,O,0.6,7.3,4.7 +01/01/2021 17:30,0,0,-1,2,70,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 22:30,0,O,O,0.6,7.3,4.7 +01/01/2021 17:35,0,0,-1,2,70,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 22:35,0,O,O,0.6,7.3,4.7 +01/01/2021 17:40,0,0,-1,2,70,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 22:40,0,O,O,0.6,7.3,4.7 +01/01/2021 17:45,0,0,-1,2,70,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 22:45,0,O,O,0.6,7.3,4.7 +01/01/2021 17:50,0,0,-1,2,70,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 22:50,0,O,O,0.6,7.3,4.7 +01/01/2021 17:55,0,0,-1,2,70,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 22:55,0,O,O,0.6,7.3,4.7 +01/01/2021 18:00,0,0,-1,2,70,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 23:00,0,O,O,0.6,7.3,4.7 +01/01/2021 18:05,0,0,-1,2,71,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 23:05,0,O,O,0.6,7.3,5 +01/01/2021 18:10,0,0,-1,2,70,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 23:10,0,O,O,0.6,7.3,5 +01/01/2021 18:15,0,0,-1,2,70,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 23:15,0,O,O,0.6,7.3,5 +01/01/2021 18:20,0,0,-1,2,70,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 23:20,0,O,O,0.6,7.3,5 +01/01/2021 18:25,0,0,-1,2,70,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 23:25,0,O,O,0.6,7.3,5 +01/01/2021 18:30,0,0,-1,2,70,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 23:30,0,O,O,0.6,7.3,5 +01/01/2021 18:35,0,0,-1,2,70,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 23:35,0,O,O,0.6,7.3,5 +01/01/2021 18:40,0,0,-1,2,70,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 23:40,0,O,O,0.6,7.3,5 +01/01/2021 18:45,0,0,-1,2,70,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 23:45,0,O,O,0.6,7.3,5 +01/01/2021 18:50,0,0,-1,2,70,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 23:50,0,O,O,0.6,7.3,5 +01/01/2021 18:55,0,0,-1,2,70,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/01/2021 23:55,0,O,O,0.6,7.3,5 +01/01/2021 19:00,0,0,-1,2,70,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 00:00,0,O,O,0.6,7.3,5 +01/01/2021 19:05,0,0,-1,2,70,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 00:05,0,O,O,0.6,8.9,5.3 +01/01/2021 19:10,0,0,-1,2,69,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 00:10,0,O,O,0.6,8.9,5.3 +01/01/2021 19:15,0,0,-1,2,69,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 00:15,0,O,O,0.6,8.9,5.3 +01/01/2021 19:20,0,0,-1,2,69,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 00:20,0,O,O,0.6,8.9,5.3 +01/01/2021 19:25,0,0,-1,2,69,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 00:25,0,O,O,0.6,8.9,5.3 +01/01/2021 19:30,0,0,-1,2,69,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 00:30,0,O,O,0.6,8.9,5.3 +01/01/2021 19:35,0,0,-1,2,69,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 00:35,0,O,O,0.6,8.9,5.3 +01/01/2021 19:40,0,0,-1,2,69,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 00:40,0,O,O,0.6,8.9,5.3 +01/01/2021 19:45,0,0,-1,2,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 00:45,0,O,O,0.6,8.9,5.3 +01/01/2021 19:50,0,0,-1,2,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 00:50,0,O,O,0.6,8.9,5.3 +01/01/2021 19:55,0,0,-1,2,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 00:55,0,O,O,0.6,8.9,5.3 +01/01/2021 20:00,0,0,-1,2,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 01:00,0,O,O,0.6,8.9,5.3 +01/01/2021 20:05,0,0,-1,2,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 01:05,0,O,O,0.6,8.9,5.7 +01/01/2021 20:10,0,0,-1,2,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 01:10,0,O,O,0.6,8.9,5.7 +01/01/2021 20:15,0,0,-1,2,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 01:15,0,O,O,0.6,8.9,5.7 +01/01/2021 20:20,0,0,-1,2,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 01:20,0,O,O,0.6,8.9,5.7 +01/01/2021 20:25,0,0,-1,2,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 01:25,0,O,O,0.6,8.9,5.7 +01/01/2021 20:30,0,0,-1,2,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 01:30,0,O,O,0.6,8.9,5.7 +01/01/2021 20:35,0,0,-1,2,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 01:35,0,O,O,0.6,8.9,5.7 +01/01/2021 20:40,0,0,-1,3,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 01:40,0,O,O,0.6,8.9,5.7 +01/01/2021 20:45,0,0,-1,3,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 01:45,0,O,O,0.6,8.9,5.7 +01/01/2021 20:50,0,0,-1,3,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 01:50,0,O,O,0.6,8.9,5.7 +01/01/2021 20:55,0,0,-1,3,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 01:55,0,O,O,0.6,8.9,5.7 +01/01/2021 21:00,0,0,-1,3,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 02:00,0,O,O,0.6,8.9,5.7 +01/01/2021 21:05,0,0,-1,3,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 02:05,0,O,O,0.6,8.9,6.2 +01/01/2021 21:10,0,0,-1,3,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 02:10,0,O,O,0.6,8.9,6.2 +01/01/2021 21:15,0,0,-1,3,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 02:15,0,O,O,0.6,8.9,6.2 +01/01/2021 21:20,0,0,-1,3,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 02:20,0,O,O,0.6,8.9,6.2 +01/01/2021 21:25,0,0,-1,3,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 02:25,0,O,O,0.6,8.9,6.2 +01/01/2021 21:30,0,0,-1,3,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 02:30,0,O,O,0.6,8.9,6.2 +01/01/2021 21:35,0,0,-1,3,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 02:35,0,O,O,0.6,8.9,6.2 +01/01/2021 21:40,0,0,-1,3,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 02:40,0,O,O,0.6,8.9,6.2 +01/01/2021 21:45,0,0,-1,3,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 02:45,0,O,O,0.6,8.9,6.2 +01/01/2021 21:50,0,0,-1,3,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 02:50,0,O,O,0.6,8.9,6.2 +01/01/2021 21:55,0,0,-1,3,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 02:55,0,O,O,0.6,8.9,6.2 +01/01/2021 22:00,0,0,-1,3,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 03:00,0,O,O,0.6,8.9,6.2 +01/01/2021 22:05,0,0,-1,3,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 03:05,0,O,O,0.6,12,6.6 +01/01/2021 22:10,0,0,-1,3,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 03:10,0,O,O,0.6,12,6.6 +01/01/2021 22:15,0,0,-1,3,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 03:15,0,O,O,0.6,12,6.6 +01/01/2021 22:20,0,0,-1,3,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 03:20,0,O,O,0.6,12,6.6 +01/01/2021 22:25,0,0,-1,3,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 03:25,0,O,O,0.6,12,6.6 +01/01/2021 22:30,0,0,-1,3,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 03:30,0,O,O,0.6,12,6.6 +01/01/2021 22:35,0,0,-1,3,68,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 03:35,0,O,O,0.6,12,6.6 +01/01/2021 22:40,0,0,-1,3,69,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 03:40,0,O,O,0.6,12,6.6 +01/01/2021 22:45,0,0,-1,3,69,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 03:45,0,O,O,0.6,12,6.6 +01/01/2021 22:50,0,0,-1,3,69,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 03:50,0,O,O,0.6,12,6.6 +01/01/2021 22:55,0,0,-1,3,69,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 03:55,0,O,O,0.6,12,6.6 +01/01/2021 23:00,0,0,-1,3,69,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 04:00,0,O,O,0.6,12,6.6 +01/01/2021 23:05,0,0,-1,3,69,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 04:05,0,O,O,0.6,12,7 +01/01/2021 23:10,0,0,-1,3,71,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 04:10,0,O,O,0.6,12,7 +01/01/2021 23:15,0,0,-1,3,72,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 04:15,0,O,O,0.6,12,7 +01/01/2021 23:20,0,0,-1,3,73,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 04:20,0,O,O,0.6,12,7 +01/01/2021 23:25,0,0,-1,3,74,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 04:25,0,O,O,0.6,12,7 +01/01/2021 23:30,0,0,-1,3,75,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 04:30,0,O,O,0.6,12,7 +01/01/2021 23:35,0,0,-1,3,77,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 04:35,0,O,O,0.6,12,7 +01/01/2021 23:40,0,0,-1,3,78,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 04:40,0,O,O,0.6,12,7 +01/01/2021 23:45,0,0,-1,3,79,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 04:45,0,O,O,0.6,12,7 +01/01/2021 23:50,0,0,-1,3,80,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 04:50,0,O,O,0.6,12,7 +01/01/2021 23:55,0,0,-1,3,82,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 04:55,0,O,O,0.6,12,7 +01/02/2021 00:00,0,0,-1,3,83,0,0.0017,0,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 05:00,0,O,O,0.6,12,7 +01/02/2021 00:05,0,0,-1,3,84,0,0.0017,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 05:05,0,O,O,0.6,12,7.4 +01/02/2021 00:10,0,0,-1,3,84,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 05:10,0,O,O,0.6,12,7.4 +01/02/2021 00:15,0,0,-1,3,85,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 05:15,0,O,O,0.6,12,7.4 +01/02/2021 00:20,0,0,-1,3,85,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 05:20,0,O,O,0.6,12,7.4 +01/02/2021 00:25,0,0,-1,3,85,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 05:25,0,O,O,0.6,12,7.4 +01/02/2021 00:30,0,0,-1,3,85,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 05:30,0,O,O,0.6,12,7.4 +01/02/2021 00:35,0,0,-2,3,86,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 05:35,0,O,O,0.6,12,7.4 +01/02/2021 00:40,0,0,-2,3,86,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 05:40,0,O,O,0.6,12,7.4 +01/02/2021 00:45,0,0,-2,3,86,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 05:45,0,O,O,0.6,12,7.4 +01/02/2021 00:50,0,0,-2,3,87,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 05:50,0,O,O,0.6,12,7.4 +01/02/2021 00:55,0,0,-2,3,87,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 05:55,0,O,O,0.6,12,7.4 +01/02/2021 01:00,0,0,-2,3,87,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 06:00,0,O,O,0.6,12,7.4 +01/02/2021 01:05,0,0,-2,3,87,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 06:05,0,O,O,0.6,13.7,7.7 +01/02/2021 01:10,0,0,-2,3,87,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 06:10,0,O,O,0.6,13.7,7.7 +01/02/2021 01:15,0,0,-2,3,87,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 06:15,0,O,O,0.6,13.7,7.7 +01/02/2021 01:20,0,0,-2,3,87,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 06:20,0,O,O,0.6,13.7,7.7 +01/02/2021 01:25,0,0,-2,3,87,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 06:25,0,O,O,0.6,13.7,7.7 +01/02/2021 01:30,0,0,-2,3,87,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 06:30,0,O,O,0.6,13.7,7.7 +01/02/2021 01:35,0,0,-2,3,87,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 06:35,0,O,O,0.6,13.7,7.7 +01/02/2021 01:40,0,0,-2,3,87,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 06:40,0,O,O,0.6,13.7,7.7 +01/02/2021 01:45,0,0,-2,3,87,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 06:45,0,O,O,0.6,13.7,7.7 +01/02/2021 01:50,0,0,-2,3,87,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 06:50,0,O,O,0.6,13.7,7.7 +01/02/2021 01:55,0,0,-2,3,87,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 06:55,0,O,O,0.6,13.7,7.7 +01/02/2021 02:00,0,0,-2,3,87,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 07:00,0,O,O,0.6,13.7,7.7 +01/02/2021 02:05,0,0,-2,3,86,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 07:05,0,O,O,0.6,13.7,7.6 +01/02/2021 02:10,0,0,-2,3,86,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 07:10,0,O,O,0.6,13.7,7.6 +01/02/2021 02:15,0,0,-2,3,87,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 07:15,0,O,O,0.6,13.7,7.6 +01/02/2021 02:20,0,0,-2,3,87,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 07:20,0,O,O,0.6,13.7,7.6 +01/02/2021 02:25,0,0,-2,3,87,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 07:25,0,O,O,0.6,13.7,7.6 +01/02/2021 02:30,0,0,-2,3,87,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 07:30,0,O,O,0.6,13.7,7.6 +01/02/2021 02:35,0,0,-2,4,87,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 07:35,0,O,O,0.6,13.7,7.6 +01/02/2021 02:40,0,0,-1,4,87,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 07:40,0,O,O,0.6,13.7,7.6 +01/02/2021 02:45,0,0,-1,4,87,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 07:45,0,O,O,0.6,13.7,7.6 +01/02/2021 02:50,0,0,-1,4,87,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 07:50,0,O,O,0.6,13.7,7.6 +01/02/2021 02:55,0,0,-1,4,87,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 07:55,0,O,O,0.6,13.7,7.6 +01/02/2021 03:00,0,0,-1,4,87,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 08:00,0,O,O,0.6,13.7,7.6 +01/02/2021 03:05,0,0,-1,4,87,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 08:05,0,O,O,0.6,13.7,7.3 +01/02/2021 03:10,0,0,-1,4,87,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 08:10,0,O,O,0.6,13.7,7.3 +01/02/2021 03:15,0,0,-1,4,87,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 08:15,0,O,O,0.6,13.7,7.3 +01/02/2021 03:20,0,0,-1,4,87,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 08:20,0,O,O,0.6,13.7,7.3 +01/02/2021 03:25,0,0,-1,4,87,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 08:25,0,O,O,0.6,13.7,7.3 +01/02/2021 03:30,0,0,-1,4,87,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 08:30,0,O,O,0.6,13.7,7.3 +01/02/2021 03:35,0,0,-2,4,88,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 08:35,0,O,O,0.6,13.7,7.3 +01/02/2021 03:40,0,0,-2,4,88,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 08:40,0,O,O,0.6,13.7,7.3 +01/02/2021 03:45,0,0,-2,4,88,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 08:45,0,O,O,0.6,13.7,7.3 +01/02/2021 03:50,0,0,-2,4,88,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 08:50,0,O,O,0.6,13.7,7.3 +01/02/2021 03:55,0,0,-2,4,88,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 08:55,0,O,O,0.6,13.7,7.3 +01/02/2021 04:00,0,0,-2,4,88,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 09:00,0,O,O,0.6,13.7,7.3 +01/02/2021 04:05,0,0,-2,4,88,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 09:05,0,O,O,0.6,9.9,7 +01/02/2021 04:10,0,0,-2,4,88,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 09:10,0,O,O,0.6,9.9,7 +01/02/2021 04:15,0,0,-2,4,89,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 09:15,0,O,O,0.6,9.9,7 +01/02/2021 04:20,0,0,-2,4,89,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 09:20,0,O,O,0.6,9.9,7 +01/02/2021 04:25,0,0,-2,4,89,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 09:25,0,O,O,0.6,9.9,7 +01/02/2021 04:30,0,0,-2,4,90,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 09:30,0,O,O,0.6,9.9,7 +01/02/2021 04:35,0,0,-2,4,90,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 09:35,0,O,O,0.6,9.9,7 +01/02/2021 04:40,0,0,-1,3,91,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 09:40,0,O,O,0.6,9.9,7 +01/02/2021 04:45,0,0,-1,3,91,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 09:45,0,O,O,0.6,9.9,7 +01/02/2021 04:50,0,0,-1,3,91,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 09:50,0,O,O,0.6,9.9,7 +01/02/2021 04:55,0,0,-1,3,92,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 09:55,0,O,O,0.6,9.9,7 +01/02/2021 05:00,0,0,-1,3,92,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 10:00,0,O,O,0.6,9.9,7 +01/02/2021 05:05,0,0,-1,3,92,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 10:05,0,O,O,0.6,9.9,6.2 +01/02/2021 05:10,0,0,-1,3,93,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 10:10,0,O,O,0.6,9.9,6.2 +01/02/2021 05:15,0,0,-1,3,93,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 10:15,0,O,O,0.6,9.9,6.2 +01/02/2021 05:20,0,0,-1,3,93,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 10:20,0,O,O,0.6,9.9,6.2 +01/02/2021 05:25,0,0,-1,3,93,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 10:25,0,O,O,0.6,9.9,6.2 +01/02/2021 05:30,0,0,-1,3,93,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 10:30,0,O,O,0.6,9.9,6.2 +01/02/2021 05:35,0,0,-1,2,93,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 10:35,0,O,O,0.6,9.9,6.2 +01/02/2021 05:40,0,0,-1,2,93,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 10:40,0,O,O,0.6,9.9,6.2 +01/02/2021 05:45,0,0,-1,2,94,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 10:45,0,O,O,0.6,9.9,6.2 +01/02/2021 05:50,0,0,-1,2,94,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 10:50,0,O,O,0.6,9.9,6.2 +01/02/2021 05:55,0,0,-1,2,94,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 10:55,0,O,O,0.6,9.9,6.2 +01/02/2021 06:00,0,0,-1,2,94,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 11:00,0,O,O,0.6,9.9,6.2 +01/02/2021 06:05,0,0,-1,2,94,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 11:05,0,O,O,0.6,9.9,5.5 +01/02/2021 06:10,0,0,-1,2,94,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 11:10,0,O,O,0.6,9.9,5.5 +01/02/2021 06:15,0,0,-1,2,94,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 11:15,0,O,O,0.6,9.9,5.5 +01/02/2021 06:20,0,0,-1,2,94,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 11:20,0,O,O,0.6,9.9,5.5 +01/02/2021 06:25,0,0,-1,2,95,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 11:25,0,O,O,0.6,9.9,5.5 +01/02/2021 06:30,0,0,-1,2,95,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 11:30,0,O,O,0.6,9.9,5.5 +01/02/2021 06:35,0,0,-1,2,95,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 11:35,0,O,O,0.6,9.9,5.5 +01/02/2021 06:40,0,0,-1,1,95,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 11:40,0,O,O,0.6,9.9,5.5 +01/02/2021 06:45,0,0,-1,1,95,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 11:45,0,O,O,0.6,9.9,5.5 +01/02/2021 06:50,0,0,-1,1,95,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 11:50,0,O,O,0.6,9.9,5.5 +01/02/2021 06:55,0,0,-1,1,95,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 11:55,0,O,O,0.6,9.9,5.5 +01/02/2021 07:00,0,0,-1,1,96,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 12:00,0,O,O,0.6,9.9,5.5 +01/02/2021 07:05,0,0,-1,1,96,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 12:05,0,O,O,0.6,6.3,5.4 +01/02/2021 07:10,0,0,-1,1,96,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 12:10,0,O,O,0.6,6.3,5.4 +01/02/2021 07:15,0,0,-1,1,96,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 12:15,0,O,O,0.6,6.3,5.4 +01/02/2021 07:20,0,0,-1,1,96,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 12:20,0,O,O,0.6,6.3,5.4 +01/02/2021 07:25,0,0,-1,1,96,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 12:25,0,O,O,0.6,6.3,5.4 +01/02/2021 07:30,0,0,-1,1,96,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 12:30,0,O,O,0.6,6.3,5.4 +01/02/2021 07:35,0,0,-1,1,96,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 12:35,0,O,O,0.6,6.3,5.4 +01/02/2021 07:40,0,0,-1,1,96,0.0014,0.033,0.005,0,51,0,AN,,SolarAnywhere3_6,01/02/2021 12:40,0,O,O,0.6,6.3,5.4 +01/02/2021 07:45,1,0,-1,1,96,0.0014,0.033,0.005,5,94,3,AD,,SolarAnywhere3_6,01/02/2021 12:45,1,O,O,0.6,6.3,5.4 +01/02/2021 07:50,5,0,-1,1,96,0.0014,0.033,0.005,13,141,8,AD,,SolarAnywhere3_6,01/02/2021 12:50,5,O,O,0.6,6.3,5.4 +01/02/2021 07:55,10,0,-1,1,96,0.0014,0.033,0.005,23,188,14,AD,,SolarAnywhere3_6,01/02/2021 12:55,10,O,O,0.6,6.3,5.4 +01/02/2021 08:00,22,32,-1,1,96,0.0014,0.033,0.005,34,230,21,AD,,SolarAnywhere3_6,01/02/2021 13:00,20,O,O,0.6,6.3,5.4 +01/02/2021 08:05,20,0,-1,1,96,0.0014,0.033,0.005,45,256,27,AD,,SolarAnywhere3_6,01/02/2021 13:05,20,O,O,0.6,6.3,5.3 +01/02/2021 08:10,14,0,-1,1,96,0.0014,0.033,0.005,57,294,33,AD,,SolarAnywhere3_6,01/02/2021 13:10,14,O,O,0.6,6.3,5.3 +01/02/2021 08:15,19,0,-1,1,96,0.0014,0.033,0.005,69,330,38,AD,,SolarAnywhere3_6,01/02/2021 13:15,19,O,O,0.6,6.3,5.3 +01/02/2021 08:20,21,0,-1,1,95,0.0014,0.033,0.005,81,364,42,AD,,SolarAnywhere3_6,01/02/2021 13:20,21,O,O,0.6,6.3,5.3 +01/02/2021 08:25,23,0,-1,1,95,0.0014,0.033,0.005,93,397,46,AD,,SolarAnywhere3_6,01/02/2021 13:25,23,O,O,0.6,6.3,5.3 +01/02/2021 08:30,55,38,-1,1,95,0.0014,0.033,0.005,106,427,51,AD,,SolarAnywhere3_6,01/02/2021 13:30,50,O,O,0.6,6.3,5.3 +01/02/2021 08:35,80,165,-1,1,95,0.0014,0.033,0.005,118,455,54,AD,,SolarAnywhere3_6,01/02/2021 13:35,57,O,O,0.6,6.3,5.3 +01/02/2021 08:40,98,286,-1,1,95,0.0014,0.033,0.005,131,481,58,AD,,SolarAnywhere3_6,01/02/2021 13:40,55,O,O,0.6,6.3,5.3 +01/02/2021 08:45,112,345,-1,1,95,0.0014,0.033,0.005,143,506,61,AD,,SolarAnywhere3_6,01/02/2021 13:45,56,O,O,0.6,6.3,5.3 +01/02/2021 08:50,74,35,-1,1,95,0.0014,0.033,0.005,155,528,64,AD,,SolarAnywhere3_6,01/02/2021 13:50,68,O,O,0.6,6.3,5.3 +01/02/2021 08:55,116,244,-1,1,95,0.0014,0.033,0.005,167,549,66,AD,,SolarAnywhere3_6,01/02/2021 13:55,71,O,O,0.6,6.3,5.3 +01/02/2021 09:00,87,39,-1,1,95,0.0014,0.033,0.005,179,568,69,AD,,SolarAnywhere3_6,01/02/2021 14:00,79,O,O,0.6,6.3,5.3 +01/02/2021 09:05,55,0,-1,1,94,0.0014,0.033,0.005,190,577,72,AD,,SolarAnywhere3_6,01/02/2021 14:05,55,O,O,0.6,6.3,5.4 +01/02/2021 09:10,83,9,-1,1,95,0.0014,0.033,0.005,202,594,75,AD,,SolarAnywhere3_6,01/02/2021 14:10,81,O,O,0.6,6.3,5.4 +01/02/2021 09:15,59,0,-1,1,95,0.0014,0.033,0.005,213,609,77,AD,,SolarAnywhere3_6,01/02/2021 14:15,59,O,O,0.6,6.3,5.4 +01/02/2021 09:20,62,0,-1,1,95,0.0014,0.033,0.005,225,624,80,AD,,SolarAnywhere3_6,01/02/2021 14:20,62,O,O,0.6,6.3,5.4 +01/02/2021 09:25,63,0,-1,1,95,0.0014,0.033,0.005,236,638,82,AD,,SolarAnywhere3_6,01/02/2021 14:25,63,O,O,0.6,6.3,5.4 +01/02/2021 09:30,86,0,-1,1,95,0.0014,0.033,0.005,246,651,83,AD,,SolarAnywhere3_6,01/02/2021 14:30,86,O,O,0.6,6.3,5.4 +01/02/2021 09:35,105,11,-1,1,95,0.0014,0.033,0.005,257,663,85,AD,,SolarAnywhere3_6,01/02/2021 14:35,102,O,O,0.6,6.3,5.4 +01/02/2021 09:40,72,0,-1,1,95,0.0014,0.033,0.005,267,674,87,AD,,SolarAnywhere3_6,01/02/2021 14:40,72,O,O,0.6,6.3,5.4 +01/02/2021 09:45,69,0,-1,1,95,0.0014,0.033,0.005,277,684,89,AD,,SolarAnywhere3_6,01/02/2021 14:45,69,O,O,0.6,6.3,5.4 +01/02/2021 09:50,72,0,-1,1,95,0.0014,0.033,0.005,287,694,91,AD,,SolarAnywhere3_6,01/02/2021 14:50,72,O,O,0.6,6.3,5.4 +01/02/2021 09:55,71,0,-1,1,95,0.0014,0.033,0.005,296,703,92,AD,,SolarAnywhere3_6,01/02/2021 14:55,71,O,O,0.6,6.3,5.4 +01/02/2021 10:00,78,0,-1,1,95,0.0014,0.033,0.005,306,712,94,AD,,SolarAnywhere3_6,01/02/2021 15:00,78,O,O,0.6,6.3,5.4 +01/02/2021 10:05,79,0,-1,1,95,0.0014,0.033,0.005,314,712,97,AD,,SolarAnywhere3_6,01/02/2021 15:05,79,O,O,0.6,5.8,6.1 +01/02/2021 10:10,79,0,-1,1,95,0.0014,0.033,0.005,322,719,98,AD,,SolarAnywhere3_6,01/02/2021 15:10,79,O,O,0.6,5.8,6.1 +01/02/2021 10:15,82,0,-1,1,95,0.0014,0.033,0.005,330,726,99,AD,,SolarAnywhere3_6,01/02/2021 15:15,82,O,O,0.6,5.8,6.1 +01/02/2021 10:20,84,0,-1,2,95,0.0014,0.033,0.005,338,733,100,AD,,SolarAnywhere3_6,01/02/2021 15:20,84,O,O,0.6,5.8,6.1 +01/02/2021 10:25,78,0,-1,2,95,0.0014,0.033,0.005,346,739,102,AD,,SolarAnywhere3_6,01/02/2021 15:25,78,O,O,0.6,5.8,6.1 +01/02/2021 10:30,78,0,-1,2,95,0.0014,0.033,0.005,353,745,103,AD,,SolarAnywhere3_6,01/02/2021 15:30,78,O,O,0.6,5.8,6.1 +01/02/2021 10:35,75,0,0,2,95,0.0014,0.033,0.005,360,750,104,AD,,SolarAnywhere3_6,01/02/2021 15:35,75,O,O,0.6,5.8,6.1 +01/02/2021 10:40,78,0,0,2,95,0.0014,0.033,0.005,366,755,105,AD,,SolarAnywhere3_6,01/02/2021 15:40,78,O,O,0.6,5.8,6.1 +01/02/2021 10:45,79,0,0,2,95,0.0014,0.033,0.005,373,760,107,AD,,SolarAnywhere3_6,01/02/2021 15:45,79,O,O,0.6,5.8,6.1 +01/02/2021 10:50,83,0,0,2,95,0.0014,0.033,0.005,378,764,107,AD,,SolarAnywhere3_6,01/02/2021 15:50,83,O,O,0.6,5.8,6.1 +01/02/2021 10:55,97,0,0,3,95,0.0014,0.033,0.005,384,768,108,AD,,SolarAnywhere3_6,01/02/2021 15:55,97,O,O,0.6,5.8,6.1 +01/02/2021 11:00,89,0,0,3,95,0.0014,0.033,0.005,389,771,109,AD,,SolarAnywhere3_6,01/02/2021 16:00,89,O,O,0.6,5.8,6.1 +01/02/2021 11:05,95,0,0,3,95,0.0014,0.033,0.005,392,761,113,AD,,SolarAnywhere3_6,01/02/2021 16:05,95,O,O,0.6,5.8,9.3 +01/02/2021 11:10,101,0,0,3,95,0.0014,0.033,0.005,396,764,114,AD,,SolarAnywhere3_6,01/02/2021 16:10,101,O,O,0.6,5.8,9.3 +01/02/2021 11:15,106,0,0,3,94,0.0014,0.033,0.005,400,767,114,AD,,SolarAnywhere3_6,01/02/2021 16:15,106,O,O,0.6,5.8,9.3 +01/02/2021 11:20,131,0,0,3,93,0.0014,0.033,0.005,404,769,116,AD,,SolarAnywhere3_6,01/02/2021 16:20,131,O,O,0.6,5.8,9.3 +01/02/2021 11:25,114,0,0,3,93,0.0014,0.033,0.005,407,771,116,AD,,SolarAnywhere3_6,01/02/2021 16:25,114,O,O,0.6,5.8,9.3 +01/02/2021 11:30,119,0,0,3,92,0.0014,0.033,0.005,409,773,116,AD,,SolarAnywhere3_6,01/02/2021 16:30,119,O,O,0.6,5.8,9.3 +01/02/2021 11:35,121,0,0,4,92,0.0014,0.033,0.005,412,775,117,AD,,SolarAnywhere3_6,01/02/2021 16:35,121,O,O,0.6,5.8,9.3 +01/02/2021 11:40,123,0,0,4,91,0.0014,0.033,0.005,414,776,118,AD,,SolarAnywhere3_6,01/02/2021 16:40,123,O,O,0.6,5.8,9.3 +01/02/2021 11:45,126,0,0,4,91,0.0014,0.033,0.005,415,777,117,AD,,SolarAnywhere3_6,01/02/2021 16:45,126,O,O,0.6,5.8,9.3 +01/02/2021 11:50,124,0,0,4,90,0.0014,0.033,0.005,417,778,118,AD,,SolarAnywhere3_6,01/02/2021 16:50,124,O,O,0.6,5.8,9.3 +01/02/2021 11:55,134,0,0,4,89,0.0014,0.033,0.005,417,778,118,AD,,SolarAnywhere3_6,01/02/2021 16:55,134,O,O,0.6,5.8,9.3 +01/02/2021 12:00,118,0,0,4,89,0.0014,0.033,0.005,418,779,119,AD,,SolarAnywhere3_6,01/02/2021 17:00,118,O,O,0.6,5.8,9.3 +01/02/2021 12:05,115,0,0,4,88,0.0014,0.033,0.005,416,766,122,AD,,SolarAnywhere3_6,01/02/2021 17:05,115,O,O,0.6,5.8,10.6 +01/02/2021 12:10,107,0,0,4,88,0.0014,0.033,0.005,416,765,123,AD,,SolarAnywhere3_6,01/02/2021 17:10,107,O,O,0.6,5.8,10.6 +01/02/2021 12:15,125,0,0,4,87,0.0014,0.033,0.005,415,765,122,AD,,SolarAnywhere3_6,01/02/2021 17:15,125,O,O,0.6,5.8,10.6 +01/02/2021 12:20,132,0,0,4,87,0.0014,0.033,0.005,413,764,122,AD,,SolarAnywhere3_6,01/02/2021 17:20,132,O,O,0.6,5.8,10.6 +01/02/2021 12:25,162,16,0,4,87,0.0014,0.033,0.005,412,763,122,AD,,SolarAnywhere3_6,01/02/2021 17:25,156,O,O,0.6,5.8,10.6 +01/02/2021 12:30,234,109,0,4,86,0.0014,0.033,0.005,410,761,122,AD,,SolarAnywhere3_6,01/02/2021 17:30,193,O,O,0.6,5.8,10.6 +01/02/2021 12:35,519,759,0,4,86,0.0014,0.033,0.005,407,760,121,AD,,SolarAnywhere3_6,01/02/2021 17:35,234,O,O,0.6,5.8,10.6 +01/02/2021 12:40,254,155,-1,5,85,0.0014,0.033,0.005,405,758,122,AD,,SolarAnywhere3_6,01/02/2021 17:40,196,O,O,0.6,5.8,10.6 +01/02/2021 12:45,239,127,-1,5,85,0.0014,0.033,0.005,401,756,120,AD,,SolarAnywhere3_6,01/02/2021 17:45,192,O,O,0.6,5.8,10.6 +01/02/2021 12:50,263,273,-1,5,85,0.0014,0.033,0.005,398,753,121,AD,,SolarAnywhere3_6,01/02/2021 17:50,162,O,O,0.6,5.8,10.6 +01/02/2021 12:55,170,27,-1,5,84,0.0014,0.033,0.005,394,750,120,AD,,SolarAnywhere3_6,01/02/2021 17:55,160,O,O,0.6,5.8,10.6 +01/02/2021 13:00,180,43,-1,5,84,0.0014,0.033,0.005,390,747,120,AD,,SolarAnywhere3_6,01/02/2021 18:00,164,O,O,0.6,5.8,10.6 +01/02/2021 13:05,225,116,-1,5,83,0.0014,0.033,0.005,383,731,122,AD,,SolarAnywhere3_6,01/02/2021 18:05,184,O,O,0.6,10.9,9.5 +01/02/2021 13:10,219,110,-1,5,83,0.0014,0.033,0.005,378,727,122,AD,,SolarAnywhere3_6,01/02/2021 18:10,180,O,O,0.6,10.9,9.5 +01/02/2021 13:15,157,22,-1,5,83,0.0014,0.033,0.005,373,723,121,AD,,SolarAnywhere3_6,01/02/2021 18:15,149,O,O,0.6,10.9,9.5 +01/02/2021 13:20,141,11,-1,5,83,0.0014,0.033,0.005,367,718,120,AD,,SolarAnywhere3_6,01/02/2021 18:20,137,O,O,0.6,10.9,9.5 +01/02/2021 13:25,135,9,-1,5,83,0.0014,0.033,0.005,361,713,120,AD,,SolarAnywhere3_6,01/02/2021 18:25,132,O,O,0.6,10.9,9.5 +01/02/2021 13:30,107,0,-1,5,83,0.0014,0.033,0.005,354,708,118,AD,,SolarAnywhere3_6,01/02/2021 18:30,107,O,O,0.6,10.9,9.5 +01/02/2021 13:35,80,0,-2,5,83,0.0014,0.033,0.005,347,702,117,AD,,SolarAnywhere3_6,01/02/2021 18:35,80,O,O,0.6,10.9,9.5 +01/02/2021 13:40,84,0,-2,5,83,0.0014,0.033,0.005,340,696,116,AD,,SolarAnywhere3_6,01/02/2021 18:40,84,O,O,0.6,10.9,9.5 +01/02/2021 13:45,82,0,-2,5,83,0.0014,0.033,0.005,332,689,115,AD,,SolarAnywhere3_6,01/02/2021 18:45,82,O,O,0.6,10.9,9.5 +01/02/2021 13:50,98,0,-2,5,83,0.0014,0.033,0.005,324,682,114,AD,,SolarAnywhere3_6,01/02/2021 18:50,98,O,O,0.6,10.9,9.5 +01/02/2021 13:55,90,0,-2,5,83,0.0014,0.033,0.005,316,675,112,AD,,SolarAnywhere3_6,01/02/2021 18:55,90,O,O,0.6,10.9,9.5 +01/02/2021 14:00,108,1,-2,5,83,0.0014,0.033,0.005,308,666,112,AD,,SolarAnywhere3_6,01/02/2021 19:00,108,O,O,0.6,10.9,9.5 +01/02/2021 14:05,135,30,-2,5,83,0.0014,0.033,0.005,300,672,107,AD,,SolarAnywhere3_6,01/02/2021 19:05,126,O,O,0.6,10.9,11.1 +01/02/2021 14:10,98,0,-2,5,83,0.0014,0.033,0.005,291,663,106,AD,,SolarAnywhere3_6,01/02/2021 19:10,98,O,O,0.6,10.9,11.1 +01/02/2021 14:15,109,6,-2,5,83,0.0014,0.033,0.005,282,653,105,AD,,SolarAnywhere3_6,01/02/2021 19:15,107,O,O,0.6,10.9,11.1 +01/02/2021 14:20,107,7,-2,5,83,0.0014,0.033,0.005,272,643,102,AD,,SolarAnywhere3_6,01/02/2021 19:20,105,O,O,0.6,10.9,11.1 +01/02/2021 14:25,70,0,-2,5,83,0.0014,0.033,0.005,262,632,101,AD,,SolarAnywhere3_6,01/02/2021 19:25,70,O,O,0.6,10.9,11.1 +01/02/2021 14:30,67,0,-2,5,83,0.0014,0.033,0.005,252,620,99,AD,,SolarAnywhere3_6,01/02/2021 19:30,67,O,O,0.6,10.9,11.1 +01/02/2021 14:35,64,0,-2,5,82,0.0014,0.033,0.005,241,607,97,AD,,SolarAnywhere3_6,01/02/2021 19:35,64,O,O,0.6,10.9,11.1 +01/02/2021 14:40,160,256,-2,5,82,0.0014,0.033,0.005,230,593,94,AD,,SolarAnywhere3_6,01/02/2021 19:40,102,O,O,0.6,10.9,11.1 +01/02/2021 14:45,131,94,-2,5,82,0.0014,0.033,0.005,219,579,92,AD,,SolarAnywhere3_6,01/02/2021 19:45,110,O,O,0.6,10.9,11.1 +01/02/2021 14:50,137,202,-2,5,82,0.0014,0.033,0.005,208,563,90,AD,,SolarAnywhere3_6,01/02/2021 19:50,95,O,O,0.6,10.9,11.1 +01/02/2021 14:55,236,547,-2,5,82,0.0014,0.033,0.005,197,547,88,AD,,SolarAnywhere3_6,01/02/2021 19:55,127,O,O,0.6,10.9,11.1 +01/02/2021 15:00,157,430,-2,5,82,0.0014,0.033,0.005,185,529,85,AD,,SolarAnywhere3_6,01/02/2021 20:00,76,O,O,0.6,10.9,11.1 +01/02/2021 15:05,110,162,-2,5,82,0.0014,0.033,0.005,175,527,81,AD,,SolarAnywhere3_6,01/02/2021 20:05,81,O,O,0.6,10.9,12.5 +01/02/2021 15:10,125,319,-2,5,81,0.0014,0.033,0.005,163,506,78,AD,,SolarAnywhere3_6,01/02/2021 20:10,71,O,O,0.6,10.9,12.5 +01/02/2021 15:15,109,219,-2,5,81,0.0014,0.033,0.005,151,485,74,AD,,SolarAnywhere3_6,01/02/2021 20:15,74,O,O,0.6,10.9,12.5 +01/02/2021 15:20,144,461,-2,5,81,0.0014,0.033,0.005,139,461,71,AD,,SolarAnywhere3_6,01/02/2021 20:20,76,O,O,0.6,10.9,12.5 +01/02/2021 15:25,87,161,-2,5,81,0.0014,0.033,0.005,127,436,68,AD,,SolarAnywhere3_6,01/02/2021 20:25,65,O,O,0.6,10.9,12.5 +01/02/2021 15:30,88,237,-2,5,81,0.0014,0.033,0.005,114,409,63,AD,,SolarAnywhere3_6,01/02/2021 20:30,58,O,O,0.6,10.9,12.5 +01/02/2021 15:35,66,107,-2,4,80,0.0014,0.033,0.005,102,380,59,AD,,SolarAnywhere3_6,01/02/2021 20:35,54,O,O,0.6,10.9,12.5 +01/02/2021 15:40,68,187,-1,4,80,0.0014,0.033,0.005,90,349,55,AD,,SolarAnywhere3_6,01/02/2021 20:40,49,O,O,0.6,10.9,12.5 +01/02/2021 15:45,46,44,-1,4,80,0.0014,0.033,0.005,78,317,50,AD,,SolarAnywhere3_6,01/02/2021 20:45,42,O,O,0.6,10.9,12.5 +01/02/2021 15:50,27,0,-1,4,80,0.0014,0.033,0.005,66,282,44,AD,,SolarAnywhere3_6,01/02/2021 20:50,27,O,O,0.6,10.9,12.5 +01/02/2021 15:55,28,8,-1,4,80,0.0014,0.033,0.005,54,246,38,AD,,SolarAnywhere3_6,01/02/2021 20:55,28,O,O,0.6,10.9,12.5 +01/02/2021 16:00,17,0,-1,4,79,0.0014,0.033,0.005,42,209,31,AD,,SolarAnywhere3_6,01/02/2021 21:00,17,O,O,0.6,10.9,12.5 +01/02/2021 16:05,19,0,-1,4,79,0.0014,0.033,0.005,32,189,24,AD,,SolarAnywhere3_6,01/02/2021 21:05,19,O,O,0.6,14.3,12.3 +01/02/2021 16:10,14,0,-1,4,79,0.0014,0.033,0.005,21,148,17,AD,,SolarAnywhere3_6,01/02/2021 21:10,14,O,O,0.6,14.3,12.3 +01/02/2021 16:15,3,0,-1,4,80,0.0014,0.033,0.005,12,105,10,AD,,SolarAnywhere3_6,01/02/2021 21:15,3,O,O,0.6,14.3,12.3 +01/02/2021 16:20,1,0,-1,4,80,0.0014,0.033,0.005,4,64,4,AD,,SolarAnywhere3_6,01/02/2021 21:20,1,O,O,0.6,14.3,12.3 +01/02/2021 16:25,0,0,-1,4,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 21:25,0,O,O,0.6,14.3,12.3 +01/02/2021 16:30,0,0,-1,4,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 21:30,0,O,O,0.6,14.3,12.3 +01/02/2021 16:35,0,0,-1,4,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 21:35,0,O,O,0.6,14.3,12.3 +01/02/2021 16:40,0,0,-1,3,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 21:40,0,O,O,0.6,14.3,12.3 +01/02/2021 16:45,0,0,-1,3,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 21:45,0,O,O,0.6,14.3,12.3 +01/02/2021 16:50,0,0,-1,3,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 21:50,0,O,O,0.6,14.3,12.3 +01/02/2021 16:55,0,0,-1,3,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 21:55,0,O,O,0.6,14.3,12.3 +01/02/2021 17:00,0,0,-1,3,81,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 22:00,0,O,O,0.6,14.3,12.3 +01/02/2021 17:05,0,0,-1,3,81,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 22:05,0,O,O,0.6,14.3,11.4 +01/02/2021 17:10,0,0,-1,3,81,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 22:10,0,O,O,0.6,14.3,11.4 +01/02/2021 17:15,0,0,-1,3,81,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 22:15,0,O,O,0.6,14.3,11.4 +01/02/2021 17:20,0,0,-1,3,81,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 22:20,0,O,O,0.6,14.3,11.4 +01/02/2021 17:25,0,0,-1,3,81,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 22:25,0,O,O,0.6,14.3,11.4 +01/02/2021 17:30,0,0,-1,3,81,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 22:30,0,O,O,0.6,14.3,11.4 +01/02/2021 17:35,0,0,0,3,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 22:35,0,O,O,0.6,14.3,11.4 +01/02/2021 17:40,0,0,0,3,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 22:40,0,O,O,0.6,14.3,11.4 +01/02/2021 17:45,0,0,0,3,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 22:45,0,O,O,0.6,14.3,11.4 +01/02/2021 17:50,0,0,0,3,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 22:50,0,O,O,0.6,14.3,11.4 +01/02/2021 17:55,0,0,0,3,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 22:55,0,O,O,0.6,14.3,11.4 +01/02/2021 18:00,0,0,0,3,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 23:00,0,O,O,0.6,14.3,11.4 +01/02/2021 18:05,0,0,0,3,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 23:05,0,O,O,0.6,14.3,9.7 +01/02/2021 18:10,0,0,0,3,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 23:10,0,O,O,0.6,14.3,9.7 +01/02/2021 18:15,0,0,0,3,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 23:15,0,O,O,0.6,14.3,9.7 +01/02/2021 18:20,0,0,0,3,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 23:20,0,O,O,0.6,14.3,9.7 +01/02/2021 18:25,0,0,0,3,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 23:25,0,O,O,0.6,14.3,9.7 +01/02/2021 18:30,0,0,0,3,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 23:30,0,O,O,0.6,14.3,9.7 +01/02/2021 18:35,0,0,0,3,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 23:35,0,O,O,0.6,14.3,9.7 +01/02/2021 18:40,0,0,0,3,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 23:40,0,O,O,0.6,14.3,9.7 +01/02/2021 18:45,0,0,0,3,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 23:45,0,O,O,0.6,14.3,9.7 +01/02/2021 18:50,0,0,0,3,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 23:50,0,O,O,0.6,14.3,9.7 +01/02/2021 18:55,0,0,0,3,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/02/2021 23:55,0,O,O,0.6,14.3,9.7 +01/02/2021 19:00,0,0,0,3,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 00:00,0,O,O,0.6,14.3,9.7 +01/02/2021 19:05,0,0,0,3,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 00:05,0,O,O,0.6,10.2,8.4 +01/02/2021 19:10,0,0,0,3,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 00:10,0,O,O,0.6,10.2,8.4 +01/02/2021 19:15,0,0,0,3,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 00:15,0,O,O,0.6,10.2,8.4 +01/02/2021 19:20,0,0,0,3,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 00:20,0,O,O,0.6,10.2,8.4 +01/02/2021 19:25,0,0,0,3,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 00:25,0,O,O,0.6,10.2,8.4 +01/02/2021 19:30,0,0,0,3,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 00:30,0,O,O,0.6,10.2,8.4 +01/02/2021 19:35,0,0,0,2,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 00:35,0,O,O,0.6,10.2,8.4 +01/02/2021 19:40,0,0,0,2,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 00:40,0,O,O,0.6,10.2,8.4 +01/02/2021 19:45,0,0,0,2,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 00:45,0,O,O,0.6,10.2,8.4 +01/02/2021 19:50,0,0,0,2,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 00:50,0,O,O,0.6,10.2,8.4 +01/02/2021 19:55,0,0,0,2,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 00:55,0,O,O,0.6,10.2,8.4 +01/02/2021 20:00,0,0,0,2,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 01:00,0,O,O,0.6,10.2,8.4 +01/02/2021 20:05,0,0,0,2,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 01:05,0,O,O,0.6,10.2,7.8 +01/02/2021 20:10,0,0,0,2,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 01:10,0,O,O,0.6,10.2,7.8 +01/02/2021 20:15,0,0,0,2,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 01:15,0,O,O,0.6,10.2,7.8 +01/02/2021 20:20,0,0,0,2,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 01:20,0,O,O,0.6,10.2,7.8 +01/02/2021 20:25,0,0,0,2,80,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 01:25,0,O,O,0.6,10.2,7.8 +01/02/2021 20:30,0,0,0,2,81,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 01:30,0,O,O,0.6,10.2,7.8 +01/02/2021 20:35,0,0,0,2,81,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 01:35,0,O,O,0.6,10.2,7.8 +01/02/2021 20:40,0,0,0,2,81,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 01:40,0,O,O,0.6,10.2,7.8 +01/02/2021 20:45,0,0,0,2,81,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 01:45,0,O,O,0.6,10.2,7.8 +01/02/2021 20:50,0,0,0,2,81,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 01:50,0,O,O,0.6,10.2,7.8 +01/02/2021 20:55,0,0,0,2,81,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 01:55,0,O,O,0.6,10.2,7.8 +01/02/2021 21:00,0,0,0,2,81,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 02:00,0,O,O,0.6,10.2,7.8 +01/02/2021 21:05,0,0,0,2,81,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 02:05,0,O,O,0.6,10.2,7.8 +01/02/2021 21:10,0,0,0,2,81,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 02:10,0,O,O,0.6,10.2,7.8 +01/02/2021 21:15,0,0,0,2,82,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 02:15,0,O,O,0.6,10.2,7.8 +01/02/2021 21:20,0,0,0,2,82,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 02:20,0,O,O,0.6,10.2,7.8 +01/02/2021 21:25,0,0,-1,2,82,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 02:25,0,O,O,0.6,10.2,7.8 +01/02/2021 21:30,0,0,-1,2,82,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 02:30,0,O,O,0.6,10.2,7.8 +01/02/2021 21:35,0,0,-1,2,82,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 02:35,0,O,O,0.6,10.2,7.8 +01/02/2021 21:40,0,0,-1,2,83,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 02:40,0,O,O,0.6,10.2,7.8 +01/02/2021 21:45,0,0,-1,2,83,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 02:45,0,O,O,0.6,10.2,7.8 +01/02/2021 21:50,0,0,-2,2,83,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 02:50,0,O,O,0.6,10.2,7.8 +01/02/2021 21:55,0,0,-2,2,83,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 02:55,0,O,O,0.6,10.2,7.8 +01/02/2021 22:00,0,0,-2,2,84,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 03:00,0,O,O,0.6,10.2,7.8 +01/02/2021 22:05,0,0,-2,2,84,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 03:05,0,O,O,0.6,8.3,8.4 +01/02/2021 22:10,0,0,-2,2,84,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 03:10,0,O,O,0.6,8.3,8.4 +01/02/2021 22:15,0,0,-2,2,84,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 03:15,0,O,O,0.6,8.3,8.4 +01/02/2021 22:20,0,0,-2,2,84,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 03:20,0,O,O,0.6,8.3,8.4 +01/02/2021 22:25,0,0,-2,2,84,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 03:25,0,O,O,0.6,8.3,8.4 +01/02/2021 22:30,0,0,-2,2,84,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 03:30,0,O,O,0.6,8.3,8.4 +01/02/2021 22:35,0,0,-2,2,84,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 03:35,0,O,O,0.6,8.3,8.4 +01/02/2021 22:40,0,0,-2,2,84,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 03:40,0,O,O,0.6,8.3,8.4 +01/02/2021 22:45,0,0,-2,2,84,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 03:45,0,O,O,0.6,8.3,8.4 +01/02/2021 22:50,0,0,-2,2,84,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 03:50,0,O,O,0.6,8.3,8.4 +01/02/2021 22:55,0,0,-2,2,85,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 03:55,0,O,O,0.6,8.3,8.4 +01/02/2021 23:00,0,0,-2,2,85,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 04:00,0,O,O,0.6,8.3,8.4 +01/02/2021 23:05,0,0,-2,2,85,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 04:05,0,O,O,0.6,8.3,8.6 +01/02/2021 23:10,0,0,-2,2,85,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 04:10,0,O,O,0.6,8.3,8.6 +01/02/2021 23:15,0,0,-2,2,85,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 04:15,0,O,O,0.6,8.3,8.6 +01/02/2021 23:20,0,0,-2,2,85,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 04:20,0,O,O,0.6,8.3,8.6 +01/02/2021 23:25,0,0,-2,2,85,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 04:25,0,O,O,0.6,8.3,8.6 +01/02/2021 23:30,0,0,-2,2,85,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 04:30,0,O,O,0.6,8.3,8.6 +01/02/2021 23:35,0,0,-2,2,85,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 04:35,0,O,O,0.6,8.3,8.6 +01/02/2021 23:40,0,0,-2,2,86,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 04:40,0,O,O,0.6,8.3,8.6 +01/02/2021 23:45,0,0,-2,2,86,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 04:45,0,O,O,0.6,8.3,8.6 +01/02/2021 23:50,0,0,-2,2,86,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 04:50,0,O,O,0.6,8.3,8.6 +01/02/2021 23:55,0,0,-2,2,86,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 04:55,0,O,O,0.6,8.3,8.6 +01/03/2021 00:00,0,0,-2,2,86,0.0014,0.033,0.005,0,0,0,AN,,SolarAnywhere3_6,01/03/2021 05:00,0,O,O,0.6,8.3,8.6 diff --git a/pvlib/data/Burlington, United States SolarAnywhere Typical GHI Year Lat_44_465 Lon_-73_205 SA format.csv b/pvlib/data/Burlington, United States SolarAnywhere Typical GHI Year Lat_44_465 Lon_-73_205 SA format.csv new file mode 100644 index 0000000000..6e4f1bed4b --- /dev/null +++ b/pvlib/data/Burlington, United States SolarAnywhere Typical GHI Year Lat_44_465 Lon_-73_205 SA format.csv @@ -0,0 +1,74 @@ +0,Burlington United States,NA,-5,44.465,-73.205,41,"Data Version: 3.6 / Type: Typical Year / LatLon Resolution: 0.010 / Time Resolution: 60 minutes / Averaging Method: End of Period / TD: No / Copyright 2010-2022 Clean Power Research®, L.L.C. DownloadID=9a0a90e9-cb05-44f6-892c-a1506e8a1185" +ObservationTime(LST),Global Horizontal Irradiance (GHI) W/m2,Direct Normal Irradiance (DNI) W/m2,AmbientTemperature (deg C),WindSpeed (m/s),Relative Humidity (%),Liquid Precipitation (kg/m2),Solid Precipitation (kg/m2),Snow Depth (m),Clear Sky GHI,Clear Sky DNI,Clear Sky DHI,IrradianceObservationType,LeadTime,DataVersion,ObservationTime(GMT),Diffuse Horizontal Irradiance (DIF) W/m2,AmbientTemperatureObservationType,WindSpeedObservationType,Albedo,Particulate Matter 10 (µg/m3),Particulate Matter 2.5 (µg/m3) +01/01/2000 01:00,0,0,-6,,,,,,,,,AN,,SolarAnywhereTGY2021,01/01/2000 06:00,0,O,O,,, +01/01/2000 02:00,0,0,-5,,,,,,,,,AN,,SolarAnywhereTGY2021,01/01/2000 07:00,0,O,O,,, +01/01/2000 03:00,0,0,-5,,,,,,,,,AN,,SolarAnywhereTGY2021,01/01/2000 08:00,0,O,O,,, +01/01/2000 04:00,0,0,-5,,,,,,,,,AN,,SolarAnywhereTGY2021,01/01/2000 09:00,0,O,O,,, +01/01/2000 05:00,0,0,-5,,,,,,,,,AN,,SolarAnywhereTGY2021,01/01/2000 10:00,0,O,O,,, +01/01/2000 06:00,0,0,-4,,,,,,,,,AN,,SolarAnywhereTGY2021,01/01/2000 11:00,0,O,O,,, +01/01/2000 07:00,0,0,-4,,,,,,,,,AN,,SolarAnywhereTGY2021,01/01/2000 12:00,0,O,O,,, +01/01/2000 08:00,3,1,-3,,,,,,,,,AD,,SolarAnywhereTGY2021,01/01/2000 13:00,3,O,O,,, +01/01/2000 09:00,50,24,-3,,,,,,,,,AD,,SolarAnywhereTGY2021,01/01/2000 14:00,47,O,O,,, +01/01/2000 10:00,171,245,-2,,,,,,,,,AD,,SolarAnywhereTGY2021,01/01/2000 15:00,109,O,O,,, +01/01/2000 11:00,234,237,-2,,,,,,,,,AD,,SolarAnywhereTGY2021,01/01/2000 16:00,154,O,O,,, +01/01/2000 12:00,220,168,-2,,,,,,,,,AD,,SolarAnywhereTGY2021,01/01/2000 17:00,156,O,O,,, +01/01/2000 13:00,202,107,1,,,,,,,,,AD,,SolarAnywhereTGY2021,01/01/2000 18:00,162,O,O,,, +01/01/2000 14:00,122,41,1,,,,,,,,,AD,,SolarAnywhereTGY2021,01/01/2000 19:00,108,O,O,,, +01/01/2000 15:00,141,165,1,,,,,,,,,AD,,SolarAnywhereTGY2021,01/01/2000 20:00,101,O,O,,, +01/01/2000 16:00,65,101,3,,,,,,,,,AD,,SolarAnywhereTGY2021,01/01/2000 21:00,53,O,O,,, +01/01/2000 17:00,2,1,4,,,,,,,,,AD,,SolarAnywhereTGY2021,01/01/2000 22:00,2,O,O,,, +01/01/2000 18:00,0,0,2,,,,,,,,,AN,,SolarAnywhereTGY2021,01/01/2000 23:00,0,O,O,,, +01/01/2000 19:00,0,0,2,,,,,,,,,AN,,SolarAnywhereTGY2021,01/02/2000 00:00,0,O,O,,, +01/01/2000 20:00,0,0,2,,,,,,,,,AN,,SolarAnywhereTGY2021,01/02/2000 01:00,0,O,O,,, +01/01/2000 21:00,0,0,2,,,,,,,,,AN,,SolarAnywhereTGY2021,01/02/2000 02:00,0,O,O,,, +01/01/2000 22:00,0,0,0,,,,,,,,,AN,,SolarAnywhereTGY2021,01/02/2000 03:00,0,O,O,,, +01/01/2000 23:00,0,0,0,,,,,,,,,AN,,SolarAnywhereTGY2021,01/02/2000 04:00,0,O,O,,, +01/02/2000 00:00,0,0,0,,,,,,,,,AN,,SolarAnywhereTGY2021,01/02/2000 05:00,0,O,O,,, +01/02/2000 01:00,0,0,0,,,,,,,,,AN,,SolarAnywhereTGY2021,01/02/2000 06:00,0,O,O,,, +01/02/2000 02:00,0,0,0,,,,,,,,,AN,,SolarAnywhereTGY2021,01/02/2000 07:00,0,O,O,,, +01/02/2000 03:00,0,0,0,,,,,,,,,AN,,SolarAnywhereTGY2021,01/02/2000 08:00,0,O,O,,, +01/02/2000 04:00,0,0,-1,,,,,,,,,AN,,SolarAnywhereTGY2021,01/02/2000 09:00,0,O,O,,, +01/02/2000 05:00,0,0,0,,,,,,,,,AN,,SolarAnywhereTGY2021,01/02/2000 10:00,0,O,O,,, +01/02/2000 06:00,0,0,0,,,,,,,,,AN,,SolarAnywhereTGY2021,01/02/2000 11:00,0,O,O,,, +01/02/2000 07:00,0,0,0,,,,,,,,,AN,,SolarAnywhereTGY2021,01/02/2000 12:00,0,O,O,,, +01/02/2000 08:00,2,0,0,,,,,,,,,AD,,SolarAnywhereTGY2021,01/02/2000 13:00,2,O,O,,, +01/02/2000 09:00,48,23,0,,,,,,,,,AD,,SolarAnywhereTGY2021,01/02/2000 14:00,45,O,O,,, +01/02/2000 10:00,105,29,1,,,,,,,,,AD,,SolarAnywhereTGY2021,01/02/2000 15:00,98,O,O,,, +01/02/2000 11:00,161,53,2,,,,,,,,,AD,,SolarAnywhereTGY2021,01/02/2000 16:00,143,O,O,,, +01/02/2000 12:00,135,5,2,,,,,,,,,AD,,SolarAnywhereTGY2021,01/02/2000 17:00,133,O,O,,, +01/02/2000 13:00,108,0,4,,,,,,,,,AD,,SolarAnywhereTGY2021,01/02/2000 18:00,108,O,O,,, +01/02/2000 14:00,72,0,3,,,,,,,,,AD,,SolarAnywhereTGY2021,01/02/2000 19:00,72,O,O,,, +01/02/2000 15:00,58,0,3,,,,,,,,,AD,,SolarAnywhereTGY2021,01/02/2000 20:00,58,O,O,,, +01/02/2000 16:00,33,3,3,,,,,,,,,AD,,SolarAnywhereTGY2021,01/02/2000 21:00,33,O,O,,, +01/02/2000 17:00,2,0,3,,,,,,,,,AD,,SolarAnywhereTGY2021,01/02/2000 22:00,2,O,O,,, +01/02/2000 18:00,0,0,4,,,,,,,,,AN,,SolarAnywhereTGY2021,01/02/2000 23:00,0,O,O,,, +01/02/2000 19:00,0,0,4,,,,,,,,,AN,,SolarAnywhereTGY2021,01/03/2000 00:00,0,O,O,,, +01/02/2000 20:00,0,0,4,,,,,,,,,AN,,SolarAnywhereTGY2021,01/03/2000 01:00,0,O,O,,, +01/02/2000 21:00,0,0,4,,,,,,,,,AN,,SolarAnywhereTGY2021,01/03/2000 02:00,0,O,O,,, +01/02/2000 22:00,0,0,5,,,,,,,,,AN,,SolarAnywhereTGY2021,01/03/2000 03:00,0,O,O,,, +01/02/2000 23:00,0,0,5,,,,,,,,,AN,,SolarAnywhereTGY2021,01/03/2000 04:00,0,O,O,,, +01/03/2000 00:00,0,0,5,,,,,,,,,AN,,SolarAnywhereTGY2021,01/03/2000 05:00,0,O,O,,, +01/03/2000 01:00,0,0,7,,,,,,,,,AN,,SolarAnywhereTGY2021,01/03/2000 06:00,0,O,O,,, +01/03/2000 02:00,0,0,7,,,,,,,,,AN,,SolarAnywhereTGY2021,01/03/2000 07:00,0,O,O,,, +01/03/2000 03:00,0,0,6,,,,,,,,,AN,,SolarAnywhereTGY2021,01/03/2000 08:00,0,O,O,,, +01/03/2000 04:00,0,0,7,,,,,,,,,AN,,SolarAnywhereTGY2021,01/03/2000 09:00,0,O,O,,, +01/03/2000 05:00,0,0,7,,,,,,,,,AN,,SolarAnywhereTGY2021,01/03/2000 10:00,0,O,O,,, +01/03/2000 06:00,0,0,6,,,,,,,,,AN,,SolarAnywhereTGY2021,01/03/2000 11:00,0,O,O,,, +01/03/2000 07:00,0,0,7,,,,,,,,,AN,,SolarAnywhereTGY2021,01/03/2000 12:00,0,O,O,,, +01/03/2000 08:00,4,0,7,,,,,,,,,AD,,SolarAnywhereTGY2021,01/03/2000 13:00,4,O,O,,, +01/03/2000 09:00,47,7,8,,,,,,,,,AD,,SolarAnywhereTGY2021,01/03/2000 14:00,46,O,O,,, +01/03/2000 10:00,124,86,5,,,,,,,,,AD,,SolarAnywhereTGY2021,01/03/2000 15:00,102,O,O,,, +01/03/2000 11:00,99,6,4,,,,,,,,,AD,,SolarAnywhereTGY2021,01/03/2000 16:00,97,O,O,,, +01/03/2000 12:00,116,0,3,,,,,,,,,AD,,SolarAnywhereTGY2021,01/03/2000 17:00,116,O,O,,, +01/03/2000 13:00,130,1,2,,,,,,,,,AD,,SolarAnywhereTGY2021,01/03/2000 18:00,130,O,O,,, +01/03/2000 14:00,165,96,2,,,,,,,,,AD,,SolarAnywhereTGY2021,01/03/2000 19:00,133,O,O,,, +01/03/2000 15:00,110,47,2,,,,,,,,,AD,,SolarAnywhereTGY2021,01/03/2000 20:00,98,O,O,,, +01/03/2000 16:00,36,5,1,,,,,,,,,AD,,SolarAnywhereTGY2021,01/03/2000 21:00,35,O,O,,, +01/03/2000 17:00,1,0,1,,,,,,,,,AD,,SolarAnywhereTGY2021,01/03/2000 22:00,1,O,O,,, +01/03/2000 18:00,0,0,-1,,,,,,,,,AN,,SolarAnywhereTGY2021,01/03/2000 23:00,0,O,O,,, +01/03/2000 19:00,0,0,-1,,,,,,,,,AN,,SolarAnywhereTGY2021,01/04/2000 00:00,0,O,O,,, +01/03/2000 20:00,0,0,-1,,,,,,,,,AN,,SolarAnywhereTGY2021,01/04/2000 01:00,0,O,O,,, +01/03/2000 21:00,0,0,-1,,,,,,,,,AN,,SolarAnywhereTGY2021,01/04/2000 02:00,0,O,O,,, +01/03/2000 22:00,0,0,-1,,,,,,,,,AN,,SolarAnywhereTGY2021,01/04/2000 03:00,0,O,O,,, +01/03/2000 23:00,0,0,-1,,,,,,,,,AN,,SolarAnywhereTGY2021,01/04/2000 04:00,0,O,O,,, +01/04/2000 00:00,0,0,-1,,,,,,,,,AN,,SolarAnywhereTGY2021,01/04/2000 05:00,0,O,O,,, diff --git a/pvlib/data/variables_style_rules.csv b/pvlib/data/variables_style_rules.csv index 9e3f351839..48a1bcaf8f 100644 --- a/pvlib/data/variables_style_rules.csv +++ b/pvlib/data/variables_style_rules.csv @@ -4,6 +4,7 @@ latitude;latitude longitude;longitude dni;direct normal irradiance dni_extra;direct normal irradiance at top of atmosphere (extraterrestrial) +dni_clear;clear sky direct normal irradiance dhi;diffuse horizontal irradiance bhi;beam/direct horizontal irradiance ghi;global horizontal irradiance diff --git a/pvlib/iotools/__init__.py b/pvlib/iotools/__init__.py index 6a4991ee7b..2ec1753eb9 100644 --- a/pvlib/iotools/__init__.py +++ b/pvlib/iotools/__init__.py @@ -27,6 +27,8 @@ from pvlib.iotools.acis import get_acis_mpe # noqa: F401 from pvlib.iotools.acis import get_acis_station_data # noqa: F401 from pvlib.iotools.acis import get_acis_available_stations # noqa: F401 +from pvlib.iotools.solaranywhere import get_solaranywhere # noqa: F401 +from pvlib.iotools.solaranywhere import read_solaranywhere # noqa: F401 from pvlib.iotools.solcast import get_solcast_forecast # noqa: F401 from pvlib.iotools.solcast import get_solcast_live # noqa: F401 from pvlib.iotools.solcast import get_solcast_historic # noqa: F401 diff --git a/pvlib/iotools/solaranywhere.py b/pvlib/iotools/solaranywhere.py new file mode 100644 index 0000000000..dfa7420ccc --- /dev/null +++ b/pvlib/iotools/solaranywhere.py @@ -0,0 +1,297 @@ +"""Functions to read and retrieve SolarAnywhere data.""" + +import requests +import pandas as pd +import numpy as np +import time +import json + +URL = 'https://service.solaranywhere.com/api/v2' + +# Dictionary mapping SolarAnywhere names to standard pvlib names +# Names with spaces are used in SolarAnywhere files, and names without spaces +# are used by the SolarAnywhere API +VARIABLE_MAP = { + 'Global Horizontal Irradiance (GHI) W/m2': 'ghi', + 'GlobalHorizontalIrradiance_WattsPerMeterSquared': 'ghi', + 'DirectNormalIrradiance_WattsPerMeterSquared': 'dni', + 'Direct Normal Irradiance (DNI) W/m2': 'dni', + 'Diffuse Horizontal Irradiance (DIF) W/m2': 'dhi', + 'DiffuseHorizontalIrradiance_WattsPerMeterSquared': 'dhi', + 'AmbientTemperature (deg C)': 'temp_air', + 'AmbientTemperature_DegreesC': 'temp_air', + 'WindSpeed (m/s)': 'wind_speed', + 'WindSpeed_MetersPerSecond': 'wind_speed', + 'Relative Humidity (%)': 'relative_humidity', + 'RelativeHumidity_Percent': 'relative_humidity', + 'Clear Sky GHI': 'ghi_clear', + 'ClearSkyGHI_WattsPerMeterSquared': 'ghi_clear', + 'Clear Sky DNI': 'dni_clear', + 'ClearSkyDNI_WattsPerMeterSquared': 'dni_clear', + 'Clear Sky DHI': 'dhi_clear', + 'ClearSkyDHI_WattsPerMeterSquared': 'dhi_clear', + 'Albedo': 'albedo', + 'Albedo_Unitless': 'albedo', +} + +DEFAULT_VARIABLES = [ + 'StartTime', 'ObservationTime', 'EndTime', + 'GlobalHorizontalIrradiance_WattsPerMeterSquared', + 'DirectNormalIrradiance_WattsPerMeterSquared', + 'DiffuseHorizontalIrradiance_WattsPerMeterSquared', + 'AmbientTemperature_DegreesC', 'WindSpeed_MetersPerSecond', + 'Albedo_Unitless', 'DataVersion' +] + + +def get_solaranywhere(latitude, longitude, api_key, start=None, end=None, + source='SolarAnywhereLatest', time_resolution=60, + spatial_resolution=0.01, true_dynamics=False, + probability_of_exceedance=None, + variables=DEFAULT_VARIABLES, missing_data='FillAverage', + url=URL, map_variables=True, timeout=300): + """Retrieve historical irradiance time series data from SolarAnywhere. + + The SolarAnywhere API is described in [1]_ and [2]_. A detailed list of + API options can be found in [3]_. + + Parameters + ---------- + latitude: float + In decimal degrees, north is positive (ISO 19115). + longitude: float + In decimal degrees, east is positive (ISO 19115). + api_key: str + SolarAnywhere API key. + start: datetime like, optional + First timestamp of the requested period. If a timezone is not + specified, UTC is assumed. Not applicable for TMY data. + end: datetime like, optional + Last timestamp of the requested period. If a timezone is not + specified, UTC is assumed. Not applicable for TMY data. + source: str, default: 'SolarAnywhereLatest' + Data source. Options include: 'SolarAnywhereLatest' (historical data), + 'SolarAnywhereTGYLatest' (TMY for GHI), 'SolarAnywhereTDYLatest' (TMY + for DNI), or 'SolarAnywherePOELatest' for probability of exceedance. + Specific dataset versions can also be specified, e.g., + 'SolarAnywhere3_2' (see [3]_ for a full list of options). + time_resolution: {60, 30, 15, 5}, default: 60 + Time resolution in minutes. For TMY data, time resolution has to be 60 + minutes (hourly). + spatial_resolution: {0.1, 0.01, 0.005}, default: 0.01 + Spatial resolution in degrees. + true_dynamics: bool, default: False + Whether to apply SolarAnywhere TrueDynamics statistical processing. + Only available for the 5-minute time resolution. + probability_of_exceedance: int, optional + Probability of exceedance in the range of 1 to 99. Only relevant when + requesting probability of exceedance (POE) time series. [%] + variables: list-like, default: :const:`DEFAULT_VARIABLES` + Variables to retrieve (described in [4]_), must include + 'ObservationTime'. Available variables depend on whether historical or + TMY data is requested. + missing_data: {'Omit', 'FillAverage'}, default: 'FillAverage' + Method for treating missing data. + url: str, default: :const:`pvlib.iotools.solaranywhere.URL` + Base url of SolarAnywhere API. + map_variables: bool, default: True + When true, renames columns of the DataFrame to pvlib variable names + where applicable. See :const:`VARIABLE_MAP`. + timeout: float, default: 300 + Time in seconds to wait for requested data to become available. + + Returns + ------- + data: pandas.DataFrame + Timeseries data from SolarAnywhere. The index is the observation time + (middle of period). + metadata: dict + Metadata available (includes site latitude, longitude, and altitude). + + See Also + -------- + pvlib.iotools.read_solaranywhere + + Note + ---- + SolarAnywhere data requests are asynchronous, and it might take several + minutes for the requested data to become available. + + Examples + -------- + >>> # Retrieve one month of SolarAnywhere data for Atlanta, GA + >>> data, meta = pvlib.iotools.get_solaranywhere( + ... latitude=33.765, longitude=-84.395, api_key='redacted', + ... start=pd.Timestamp(2020,1,1), end=pd.Timestamp(2020,2,1)) # doctest: +SKIP + + References + ---------- + .. [1] `SolarAnywhere API + `_ + .. [2] `SolarAnywhere irradiance and weather API requests + `_ + .. [3] `SolarAnywhere API options + `_ + .. [4] `SolarAnywhere variable definitions + `_ + """ # noqa: E501 + headers = {'content-type': "application/json; charset=utf-8", + 'X-Api-Key': api_key, + 'Accept': "application/json"} + + payload = { + "Sites": [{ + "Latitude": latitude, + "Longitude": longitude + }], + "Options": { + "OutputFields": variables, + "SummaryOutputFields": [], # Do not request summary/monthly data + "SpatialResolution_Degrees": spatial_resolution, + "TimeResolution_Minutes": time_resolution, + "WeatherDataSource": source, + "MissingDataHandling": missing_data, + } + } + + if true_dynamics: + payload['Options']['ApplyTrueDynamics'] = True + + if probability_of_exceedance is not None: + if not isinstance(probability_of_exceedance, int): + raise ValueError('`probability_of_exceedance` must be an integer') + payload['Options']['ProbabilityOfExceedance'] = \ + probability_of_exceedance + + # Add start/end time if requesting non-TMY data + if (start is not None) or (end is not None): + # Convert start/end to datetime in case they are specified as strings + start = pd.to_datetime(start) + end = pd.to_datetime(end) + # start/end are required to have an associated time zone + if start.tz is None: + start = start.tz_localize('UTC') + if end.tz is None: + end = end.tz_localize('UTC') + payload['Options']["StartTime"] = start.isoformat() + payload['Options']["EndTime"] = end.isoformat() + + # Convert the payload dictionary to a JSON string (uses double quotes) + payload = json.dumps(payload) + # Make data request + request = requests.post(url+'/WeatherData', data=payload, headers=headers) + # Raise error if request is not OK + if request.ok is False: + raise ValueError(request.json()['Message']) + # Retrieve weather request ID + weather_request_id = request.json()["WeatherRequestId"] + + # The SolarAnywhere API is asynchronous, hence a second request is + # necessary to retrieve the data (WeatherDataResult). + start_time = time.time() # Current time in seconds since the Epoch + # Attempt to retrieve results until the max response time has been exceeded + while True: + results = requests.get(url+'/WeatherDataResult/'+weather_request_id, headers=headers) # noqa: E501 + results_json = results.json() + if results_json.get('Status') == 'Done': + if results_json['WeatherDataResults'][0]['Status'] == 'Failure': + raise RuntimeError(results_json['WeatherDataResults'][0]['ErrorMessages'][0]['Message']) # noqa: E501 + break + elif (time.time()-start_time) > timeout: + raise TimeoutError('Time exceeded the `timeout`.') + time.sleep(5) # Sleep for 5 seconds before each data retrieval attempt + + # Extract time series data + data = pd.DataFrame(results_json['WeatherDataResults'][0]['WeatherDataPeriods']['WeatherDataPeriods']) # noqa: E501 + # Set datetime index + data.index = pd.to_datetime(data['ObservationTime']) + if map_variables: + data = data.rename(columns=VARIABLE_MAP) + + # Parse metadata + meta = results_json['WeatherDataResults'][0]['WeatherSourceInformation'] + meta['time_resolution'] = results_json['WeatherDataResults'][0]['WeatherDataPeriods']['TimeResolution_Minutes'] # noqa: E501 + meta['spatial_resolution'] = spatial_resolution + # Rename and convert applicable metadata parameters to floats + meta['latitude'] = float(meta.pop('Latitude')) + meta['longitude'] = float(meta.pop('Longitude')) + meta['altitude'] = float(meta.pop('Elevation_Meters')) + return data, meta + + +def read_solaranywhere(filename, map_variables=True, encoding='iso-8859-1'): + """ + Read a SolarAnywhere formatted file into a pandas DataFrame. + + The SolarAnywhere file format and variables are described in [1]_. Note, + the SolarAnywhere file format resembles the TMY3 file format but contains + additional variables and metadata. + + Parameters + ---------- + filename: str + Filename + map_variables: bool, default: True + When true, renames columns of the DataFrame to pvlib variable names + where applicable. See :const:`VARIABLE_MAP`. + encoding : str, default : 'iso-8859-1' + Encoding of the file. For SolarAnywhere TMY3 files the 'iso-8859-1' + encoding is recommended due to the usage of special characters. + + Returns + ------- + data: pandas.DataFrame + Timeseries data from SolarAnywhere. + metadata: dict + Metadata available in the file. + + See Also + -------- + pvlib.iotools.get_solaranywhere + + References + ---------- + .. [1] `SolarAnywhere historical data file formats + `_ + """ + with open(str(filename), 'r', encoding=encoding) as fbuf: + # Extract first line of file which contains the metadata + firstline = fbuf.readline().strip().split(',') + # Read remaining part of file which contains the time series data + data = pd.read_csv(fbuf) + + # Parse metadata + meta = {} + meta['USAF'] = int(firstline.pop(0)) + meta['name'] = firstline.pop(0) + meta['state'] = firstline.pop(0) + meta['TZ'] = float(firstline.pop(0)) + meta['latitude'] = float(firstline.pop(0)) + meta['longitude'] = float(firstline.pop(0)) + meta['altitude'] = float(firstline.pop(0)) + + # SolarAnywhere files contain additional metadata than the TMY3 format. + # The additional metadata is specified as key-value pairs, where each entry + # is separated by a slash, and the key-value pairs are separated by a + # colon. E.g., 'Data Version: 3.4 / Type: Typical Year / ...' + for i in ','.join(firstline).replace('"', '').split('/'): + if ':' in i: + k, v = i.split(':') + meta[k.strip()] = v.strip() + + meta['LatLon Resolution'] = float(meta['LatLon Resolution']) + + # Set index + data.index = pd.to_datetime(data['ObservationTime(LST)'], + format='%m/%d/%Y %H:%M') + # Set timezone + data = data.tz_localize(int(meta['TZ'] * 3600)) + # Remove notion of LST in case the index is later converted to another tz + data.index.name = data.index.name.replace('(LST)', '') + # Missing values can be represented as: blanks, 'NaN', or -999 + data = data.replace(-999, np.nan) + + if map_variables: + data = data.rename(columns=VARIABLE_MAP) + + return data, meta diff --git a/pvlib/tests/conftest.py b/pvlib/tests/conftest.py index f579ef45f2..d74dfb35b4 100644 --- a/pvlib/tests/conftest.py +++ b/pvlib/tests/conftest.py @@ -95,6 +95,19 @@ def assert_frame_equal(left, right, **kwargs): not has_bsrn_credentials, reason='requires bsrn credentials') +try: + # Attempt to load SolarAnywhere API key used for testing + # pvlib.iotools.get_solaranywhere + solaranywhere_api_key = os.environ["SOLARANYWHERE_API_KEY"] + has_solaranywhere_credentials = True +except KeyError: + has_solaranywhere_credentials = False + +requires_solaranywhere_credentials = pytest.mark.skipif( + not has_solaranywhere_credentials, + reason='requires solaranywhere credentials') + + try: import statsmodels # noqa: F401 has_statsmodels = True diff --git a/pvlib/tests/iotools/test_solaranywhere.py b/pvlib/tests/iotools/test_solaranywhere.py new file mode 100644 index 0000000000..018c583be8 --- /dev/null +++ b/pvlib/tests/iotools/test_solaranywhere.py @@ -0,0 +1,287 @@ +import pandas as pd +import pytest +import pvlib +import os +from ..conftest import (DATA_DIR, RERUNS, RERUNS_DELAY, + requires_solaranywhere_credentials) + +# High spatial resolution and 5-min data, true dynamics enabled +TESTFILE_HIGH_RESOLUTION = DATA_DIR / 'Burlington, United States SolarAnywhere Time Series 20210101 to 20210103 Lat_44_4675 Lon_-73_2075 SA format.csv' # noqa: E501 +# TGY test file (v3.6) containing GHI/DHI and temperature. +# Note, the test file only contains the first three days. +TESTFILE_TMY = DATA_DIR / 'Burlington, United States SolarAnywhere Typical GHI Year Lat_44_465 Lon_-73_205 SA format.csv' # noqa: E501 + + +@pytest.fixture(scope="module") +def solaranywhere_api_key(): + """Supplies the pvlib's SolarAnywhere API key for testing purposes. + Users can freely register for an API key.""" + solaranywhere_api_key = os.environ["SOLARANYWHERE_API_KEY"] + return solaranywhere_api_key + + +@pytest.fixture +def high_resolution_index(): + index = pd.date_range(start='2021-01-01 00:05-0500', + end='2021-01-03 00:00-0500', freq='5min') + index.name = 'ObservationTime' + return index + + +@pytest.fixture +def tmy_index(): + index = pd.date_range( + start='2000-01-01 01:00-0500', periods=3*24, freq='1h') + index.name = 'ObservationTime' + index.freq = None + return index + + +@pytest.fixture +def tmy_ghi_series(tmy_index): + ghi = [ + 0, 0, 0, 0, 0, 0, 0, 3, 50, 171, 234, 220, 202, 122, 141, 65, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 48, 105, 161, 135, 108, 72, 58, + 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 47, 124, 99, 116, + 130, 165, 110, 36, 1, 0, 0, 0, 0, 0, 0, 0 + ] + return pd.Series(data=ghi, index=tmy_index, name='ghi') + + +def test_read_solaranywhere_high_resolution(high_resolution_index): + data, meta = pvlib.iotools.read_solaranywhere(TESTFILE_HIGH_RESOLUTION, + map_variables=False) + # Check that metadata is parsed correctly + assert meta['latitude'] == 44.4675 + assert meta['longitude'] == -73.2075 + assert meta['altitude'] == 41.0 + assert meta['name'] == 'Burlington United States' + assert meta['TZ'] == -5.0 + assert meta['Data Version'] == '3.6' + assert meta['LatLon Resolution'] == 0.005 + # Check that columns are parsed correctly + assert 'Albedo' in data.columns + assert 'Global Horizontal Irradiance (GHI) W/m2' in data.columns + assert 'Direct Normal Irradiance (DNI) W/m2' in data.columns + assert 'WindSpeed (m/s)' in data.columns + assert 'WindSpeedObservationType' in data.columns + assert 'Particulate Matter 10 (µg/m3)' in data.columns + # Check that data is parsed correctly + assert data.loc['2021-01-01 07:00:00-05:00', 'Albedo'] == 0.6 + assert data.loc['2021-01-01 07:00:00-05:00', 'WindSpeed (m/s)'] == 0 + # Assert that the index is parsed correctly + pd.testing.assert_index_equal(data.index, high_resolution_index) + + +def test_read_solaranywhere_map_variables(): + # Check that variables are mapped by default to pvlib names + data, meta = pvlib.iotools.read_solaranywhere(TESTFILE_HIGH_RESOLUTION) + mapped_column_names = ['ghi', 'dni', 'dhi', 'temp_air', 'wind_speed', + 'relative_humidity', 'ghi_clear', 'dni_clear', + 'dhi_clear', 'albedo'] + for c in mapped_column_names: + assert c in data.columns + assert meta['latitude'] == 44.4675 + assert meta['longitude'] == -73.2075 + assert meta['altitude'] == 41.0 + + +def test_read_solaranywhere_tmy(tmy_index, tmy_ghi_series): + # Check that TMY files are correctly parsed + data, meta = pvlib.iotools.read_solaranywhere(TESTFILE_TMY) + # Check that columns names are correct and mapped to pvlib names + assert 'ghi' in data.columns + assert 'dni' in data.columns + assert 'dhi' in data.columns + assert 'temp_air' in data.columns + # Check that metadata is parsed correctly + assert meta['latitude'] == 44.465 + assert meta['longitude'] == -73.205 + assert meta['altitude'] == 41.0 + assert meta['name'] == 'Burlington United States' + assert meta['TZ'] == -5.0 + assert meta['Data Version'] == '3.6' + assert meta['LatLon Resolution'] == 0.010 + assert meta['Time Resolution'] == '60 minutes' + # Assert that the index is parsed correctly + pd.testing.assert_index_equal(data.index, tmy_index) + # Test one column + pd.testing.assert_series_equal(data['ghi'], tmy_ghi_series) + + +@pytest.mark.remote_data +@pytest.mark.flaky(reruns=RERUNS, reruns_delay=RERUNS_DELAY) +def test_get_solaranywhere_bad_probability_of_exceedance(): + # Test if ValueError is raised if probability_of_exceedance is not integer + with pytest.raises(ValueError, match="must be an integer"): + pvlib.iotools.get_solaranywhere( + latitude=44, longitude=-73, api_key='empty', + source='SolarAnywherePOELatest', probability_of_exceedance=0.5) + + +@pytest.mark.remote_data +@requires_solaranywhere_credentials +@pytest.mark.flaky(reruns=RERUNS, reruns_delay=RERUNS_DELAY) +def test_get_solaranywhere_missing_start_end(solaranywhere_api_key): + # Test if ValueError is raised if start/end is missing for non-TMY request + with pytest.raises(ValueError, match="simulation start and end time"): + pvlib.iotools.get_solaranywhere( + latitude=44, longitude=-73, api_key=solaranywhere_api_key, + source='SolarAnywhereLatest') + + +@pytest.fixture +def time_series_index(): + index = pd.date_range(start='2019-12-31 19:02:30-05:00', periods=288, + freq='5min') + index.name = 'ObservationTime' + index.freq = None + return index + + +@pytest.fixture +def timeseries_temp_air(time_series_index): + temp_air = [ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 + ] + return pd.Series(data=temp_air, index=time_series_index, name='temp_air') + + +@requires_solaranywhere_credentials +@pytest.mark.remote_data +@pytest.mark.flaky(reruns=RERUNS, reruns_delay=RERUNS_DELAY) +def test_get_solaranywhere_no_timezone( + solaranywhere_api_key, time_series_index, timeseries_temp_air): + # Test if data can be retrieved. This test only retrieves one day of data + # to minimize the request time. + data, meta = pvlib.iotools.get_solaranywhere( + latitude=44.4675, longitude=-73.2075, api_key=solaranywhere_api_key, + # specify start/end without timezone information + start=pd.Timestamp(2020, 1, 1), end=pd.Timestamp(2020, 1, 2), + # test specific version of SolarAnywhere + source='SolarAnywhere3_6', + spatial_resolution=0.005, time_resolution=5, true_dynamics=True) + + # Check metadata, including that true-dynamics is set + assert meta['WeatherSiteName'] == 'SolarAnywhere3_6' + assert meta['ApplyTrueDynamics'] is True + assert meta['time_resolution'] == 5 + assert meta['spatial_resolution'] == 0.005 + assert meta['latitude'] == 44.4675 + assert meta['longitude'] == -73.2075 + assert meta['altitude'] == 41.0 + + # Check that variables have been mapped (default convention) + assert 'StartTime' in data.columns + assert 'ObservationTime' in data.columns + assert 'EndTime' in data.columns + assert 'ghi' in data.columns + assert 'dni' in data.columns + assert 'dhi' in data.columns + assert 'temp_air' in data.columns + assert 'wind_speed' in data.columns + assert 'albedo' in data.columns + assert 'DataVersion' in data.columns + + # Assert index (checks that time resolution is 5 min) + pd.testing.assert_index_equal(data.index, time_series_index) + # Test one column + pd.testing.assert_series_equal(data['temp_air'], timeseries_temp_air) + + +@requires_solaranywhere_credentials +@pytest.mark.remote_data +@pytest.mark.flaky(reruns=RERUNS, reruns_delay=RERUNS_DELAY) +def test_get_solaranywhere_other_options( + solaranywhere_api_key, time_series_index, timeseries_temp_air): + # Test if data can be retrieved. This test only retrieves one day of data + # to minimize the request time. + data, meta = pvlib.iotools.get_solaranywhere( + latitude=44.4675, longitude=-73.2075, api_key=solaranywhere_api_key, + # specify start/end as str with timezone information + start='2020-01-01 00:00:00+0000', + end='2020-01-02 00:00:00+0000', + # test specific version of SolarAnywhere + source='SolarAnywhere3_7', + # test fewer variables + variables=[ + 'ObservationTime', + 'GlobalHorizontalIrradiance_WattsPerMeterSquared', + ], + map_variables=False) + + # Check metadata + assert meta['WeatherSiteName'] == 'SolarAnywhere3_7' + assert meta['ApplyTrueDynamics'] is False # default setting + assert meta['time_resolution'] == 60 # default resolution + assert meta['spatial_resolution'] == 0.01 # default resolution + assert meta['latitude'] == 44.4675 + assert meta['longitude'] == -73.2075 + assert meta['altitude'] == 41.0 + + # Check that variables have been mapped (default convention) + assert 'StartTime' not in data.columns + assert 'ObservationTime' in data.columns + assert 'EndTime' not in data.columns + # Check that ghi is not mapped + assert 'ghi' not in data.columns + assert 'GlobalHorizontalIrradiance_WattsPerMeterSquared' in data.columns + assert 'dni' not in data.columns + assert 'dhi' not in data.columns + assert 'temp_air' not in data.columns + assert 'wind_speed' not in data.columns + assert 'albedo' not in data.columns + assert 'DataVersion' not in data.columns + + +@requires_solaranywhere_credentials +@pytest.mark.remote_data +@pytest.mark.flaky(reruns=RERUNS, reruns_delay=RERUNS_DELAY) +def test_get_solaranywhere_probability_exceedance_error(solaranywhere_api_key): + # Test if ValueError is raised when passing start/end to typical year + with pytest.raises(ValueError, match="start and end time must be null"): + data, meta = pvlib.iotools.get_solaranywhere( + latitude=44.4675, longitude=-73.2075, + api_key=solaranywhere_api_key, + # Probabiliy of exceedance year should not have start/end specified + start=pd.Timestamp('2020-01-01 00:00:00+0000'), + end=pd.Timestamp('2020-01-05 12:00:00+0000'), + source='SolarAnywherePOELatest', + probability_of_exceedance=20) + + +@requires_solaranywhere_credentials +@pytest.mark.remote_data +@pytest.mark.flaky(reruns=RERUNS, reruns_delay=RERUNS_DELAY) +def test_get_solaranywhere_timeout_tgy(solaranywhere_api_key): + # Test if the service times out when the timeout parameter is close to zero + with pytest.raises(TimeoutError, match="Time exceeded"): + pvlib.iotools.get_solaranywhere( + latitude=44.4675, longitude=-73.2075, + api_key=solaranywhere_api_key, + source='SolarAnywhereTGYLatest', + timeout=0.00001) + + +@requires_solaranywhere_credentials +@pytest.mark.remote_data +@pytest.mark.flaky(reruns=RERUNS, reruns_delay=RERUNS_DELAY) +def test_get_solaranywhere_not_available(solaranywhere_api_key): + # Test if RuntimeError is raised if location in the ocean is requested + with pytest.raises(RuntimeError, match="Tile is outside of our coverage"): + pvlib.iotools.get_solaranywhere( + latitude=40, longitude=-70, + api_key=solaranywhere_api_key, + start=pd.Timestamp('2020-01-01 00:00:00+0000'), + end=pd.Timestamp('2020-01-05 12:00:00+0000'))