Time series endpoint

Prev Next

In this document

This article provides detailed guidance on using the Time series endpoint (part of the WS API), including how to structure XML requests and responses, use HTTP headers, and test the API. It also covers client code snippets for Python, enabling developers to efficiently integrate Solargis data into their applications.

This is the primary endpoint for retrieving time series datasets for Solargis Monitor and Solargis Forecast API solutions.

How to use the Time series API endpoint

To use the API effectively, follow this Python code example. This is the example of Python program for using the Solargis WS API - its Time Series endpoint. First import required dependencies:

import pandas as pd  # tested for pandas 2.2.2, numpy 2.0.2
import requests
from xml.etree import ElementTree
import datetime

Let's create a simple XML request with basic parametrization - we will request Solargis time series data (PVOUT, GHI, TEMP, WS and the Cloud identification flag CI_FLAG) for today's date. In practice, you would schedule this program to run at regular intervals, such as every 15 minutes.

lat, lon = 48.61259, 20.827079  # Demo site
today = datetime.datetime.now().date().isoformat()

request_xml = f'''<ws:dataDeliveryRequest dateFrom="{today}" dateTo="{today}"
  xmlns="http://geomodel.eu/schema/data/request"
  xmlns:ws="http://geomodel.eu/schema/ws/data"
  xmlns:geo="http://geomodel.eu/schema/common/geo"
  xmlns:pv="http://geomodel.eu/schema/common/pv"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<site id="demo_site" name="demo" lat="{lat}" lng="{lon}">
<pv:geometry xsi:type="pv:GeometryFixedOneAngle" tilt="25" azimuth="180"/>
<pv:system installedPower="300" installationType="FREE_STANDING" selfShading="true">
    <pv:module type="CSI"></pv:module>
    <pv:inverter></pv:inverter>
    <pv:losses></pv:losses>
    <pv:topology xsi:type="pv:TopologyRow" relativeSpacing="2.5" type="UNPROPORTIONAL2"/>
</pv:system>
</site>
<processing key="PVOUT GHI TEMP WS CI_FLAG" summarization="MIN_15" terrainShading="true">
  <timeZone>GMT+00</timeZone>
  <timestampType>CENTER</timestampType>
</processing>
</ws:dataDeliveryRequest>'''

Authenticate towards the API endpoint and attach request headers. This time we will use token as query string inside the URL. Other option is to use the Basic auth method with username and password (same as token) provided with your subscription.

api_token = 'demo'
url = 'https://solargis.info/ws/rest/datadelivery/request?key=%s' % api_token
headers = {'Content-Type': 'application/xml'}

Send HTTP POST request and collect time series dataset - as pandas dataframe:

with requests.post(url, data=request_xml.encode('utf8'), headers=headers) as response:
    # print(response.text)
    assert response.status_code == 200
    root = ElementTree.fromstring(response.text)
    # extract metadata from the response:
    metadata_element = root.find('.//{http://geomodel.eu/schema/ws/data}metadata')
    metadata_text = metadata_element.text
    # extract list of columns:
    columns_element = root.find('.//{http://geomodel.eu/schema/ws/data}columns')
    columns = columns_element.text.split()
    # extract data as dictionary:
    data_dict = {}
    for row_element in root.iter('{http://geomodel.eu/schema/ws/data}row'):
        attribs = row_element.attrib
        timestamp_str = attribs['dateTime']
        values_list = attribs['values'].split(' ')
        data_dict[timestamp_str] = [float(v) for v in values_list]
    # create pandas dataframe and index it by timestamps:
    df = pd.DataFrame.from_dict(data_dict, orient='index', columns=columns)
    df.index = pd.DatetimeIndex(df.index)
    df.index.name = 'time'

Explore dataset metadata:

print(metadata_text)
#15 MINUTE VALUES OF SOLAR RADIATION AND METEOROLOGICAL PARAMETERS AND PV OUTPUT
#
#File type: Solargis_TS15
#Issued: 2025-04-24 14:38
#
#Site name: demo
#Latitude: 48.612590
#Longitude: 20.827079
#Elevation: 246.0 m a.s.l.
#https://apps.solargis.com/prospect/map?s=48.612590,20.827079&c=48.612590,20.827079,14&m=mapbox-satellite
#
#
#Solargis database version: v2.2.62
#
#Solar radiation data
#Description: calculated from Meteosat MSG satellite data ((c) 2025 EUMETSAT) ICON forecast model ((c) 2025 DWD) GFS forecast model ((c) 2025 NOAA) IFS forecast model ((c) 2025 ECMWF) and from atmospheric data ((c) 2025 ECMWF, NOAA and NASA) by Solargis method
#Summarization type: harmonized to 15 min
#Summarization period: 24/04/2025 - 24/04/2025
#Spatial resolution: 250 m
#
#Meteorological data
#Description: spatially disaggregated from IFS model data ((c) 2025 ECMWF) by Solargis method
#Summarization type: harmonized to 15 min
#Summarization period: 24/04/2025 - 24/04/2025
#Spatial resolution: temperature 1 km, other meteorological parameters 12 km to 25 km
#
#Service provider: Solargis s.r.o., Bottova 2A, Bratislava, Slovakia
#Company ID: 45 354 766, VAT Number: SK2022962766
#Registration: Business register, City Court Bratislava III, Section Sro, File 62765/B
#https://solargis.com, contact@solargis.com
#
#Disclaimer:
#Considering the nature of climate fluctuations, interannual and long-term changes, as well as the uncertainty of measurements and calculations, Solargis s.r.o. cannot take full guarantee of the accuracy of estimates. The maximum possible has been done for the assessment of climate conditions based on the best available data, software and knowledge. Solargis s.r.o. shall not be liable for any direct, incidental, consequential, indirect or punitive damages arising or alleged to have arisen out of use of the provided data. Solargis is a trade mark of Solargis s.r.o.
#
#Copyright (c) 2025 Solargis s.r.o.
#
#
#Columns:
#Date - Date of measurement, format DD.MM.YYYY
#Time - Time of measurement, time reference UTC+0, time step 15 min, time format HH:MM, center of interval
#PVOUT - PV output [kW]
#GHI - Global horizontal irradiance [W/m2], no data value -9, with terrain shading
#TEMP - Air temperature at 2 m [deg_C]
#WS - Wind speed at 10 m [m/s]
#flagR - Cloud identification quality flag: 0: sun below horizon, 1: model value, 2: interpolated <=1hour, 3: extrapolated <=1hour, 4: interpolated/extrapolated >1hour,  5: long term monthly median or persistence,  6: synthetic data, 10: nowcast, 11:NWP forecast
#
#Data:
Date;Time;PVOUT;GHI;TEMP;WS;flagR

Explore dataset as table (flagR is the corresponding reponse column for the CI_FLAG in the request):

print(f"API response generated at: {datetime.datetime.now().isoformat(timespec='minutes')}")
print(df)
API response generated at: 2025-04-24T12:38
                           PVOUT  GHI  TEMP   WS  flagR
time                                                   
2025-04-24 00:07:30+00:00    0.0  0.0  10.3  2.3    0.0
2025-04-24 00:22:30+00:00    0.0  0.0  10.3  2.3    0.0
2025-04-24 00:37:30+00:00    0.0  0.0  10.2  2.3    0.0
2025-04-24 00:52:30+00:00    0.0  0.0  10.2  2.2    0.0
2025-04-24 01:07:30+00:00    0.0  0.0  10.1  2.2    0.0
...                          ...  ...   ...  ...    ...
2025-04-24 22:52:30+00:00    0.0  0.0  11.2  0.8    0.0
2025-04-24 23:07:30+00:00    0.0  0.0  11.1  0.8    0.0
2025-04-24 23:22:30+00:00    0.0  0.0  10.9  1.2    0.0
2025-04-24 23:37:30+00:00    0.0  0.0  10.7  1.6    0.0
2025-04-24 23:52:30+00:00    0.0  0.0  10.5  1.9    0.0

Visualize the dataset as line chart:

from matplotlib import pyplot as plt
df.plot(y=["PVOUT", "GHI", "TEMP", "WS", "flagR"])
plt.show()

Export the dataset as CSV file:

df.to_csv('solargis_data_for_today.csv')

You can also test the API in command-line tools such as curl:

TODAY=$(date +%Y-%m-%d)
curl -i -X POST "https://solargis.info/ws/rest/datadelivery/request?key=demo" -H "Content-Type: application/xml" -d "
<ws:dataDeliveryRequest dateFrom='$TODAY' dateTo='$TODAY'
  xmlns='http://geomodel.eu/schema/data/request'
  xmlns:ws='http://geomodel.eu/schema/ws/data'
  xmlns:geo='http://geomodel.eu/schema/common/geo'
  xmlns:pv='http://geomodel.eu/schema/common/pv'
  xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
<site id='demo_site' name='demo' lat='48.61259' lng='20.827079'>
<pv:geometry xsi:type='pv:GeometryFixedOneAngle' tilt='25' azimuth='180'/>
<pv:system installedPower='300' installationType='FREE_STANDING' selfShading='true'>
    <pv:module type='CSI'></pv:module>
    <pv:inverter></pv:inverter>
    <pv:losses></pv:losses>
    <pv:topology xsi:type='pv:TopologyRow' relativeSpacing='2.5' type='UNPROPORTIONAL2'/>
</pv:system>
</site>
<processing key='PVOUT GHI TEMP WS CI_FLAG' summarization='HOURLY' terrainShading='true'>
  <timeZone>GMT+00</timeZone>
  <timestampType>CENTER</timestampType>
</processing>
</ws:dataDeliveryRequest>"

For greater interactivity you can test the API in featured applications like Postman.

After sending the request, review the HTTP response to understand the data structure and content returned by the API.

Returned HTTP response headers

Alongside standard HTTP response headers, such as the content-type or date, the WS API provides custom Solargis headers that help customers with usage monitoring and troubleshooting.

  • solargis-request-id: every API transaction gets a unique ID for later reference, e.g. b785345a-430d-44bb-aa09-7e63acfeb9bb.

The users can check their API consumption after each call. We are adding these custom response headers in each call (specific headers are present in the response only if your subscription applies for the specific limit):

  • solargis-usage-total and solargis-limit-total: counter and limit for total number of calls, the counter is valid for the entire subscription validity range.

  • solargis-usage-month and solargis-limit-month: counter and limit for monthly number of calls, the counter refreshes every calendar month at UTC.

  • solargis-usage-day and solargis-limit-day: counter and limit for daily number of calls, the counter refreshes at UTC midnight.

  • solargis-usage-unique-locations and solargis-limit-unique-locations: counter and limit for number of unique locations visited by the subscription, the counter is valid for the entire subscription validity range.

Error codes

Error responses do not affect usage counters.

HTTP Status

Error

Description

400

Bad Request

Raised for various XML validation and parsing errors. It is a client error.

401

Unauthorized

Raised for authentication-related errors, wrong or non-existing tokens or usernames.

403

Forbidden

Raised when the request is forbidden due to subscription allowances - time steps, data parameters, dataset period.

404

Not Found

Raised when the requested data is out of coverage.

405

Method Not Allowed

Raised when the HTTP method is not allowed e.g., getting the resource which supports only POST method.

429

Too Many Requests

Raised when the call rate or other limit is exceeded.

500

Internal Server Error

Raised for unexpected internal errors caused by Solargis.

How usage is limited in the API

API usage is subject to various limits across different areas and it is determined by your subscription.

Some limits are product-based :

  • Available Dataset Period: Either a relative window (e.g., from DAY 0 to DAY 7) or an absolute period between two dates.

  • Available Data Parameters: Basic set of parameters or extended in the Pro tier.

  • Available Time Steps: Basic tier for coarser resolution, with high-frequency data available for the Pro tier.

Other limits relate to call rates:

  • Total Call Rate Limit: The total number of calls allowed for the entire subscription period.

  • Monthly Call Rate Limit: The number of calls allowed each calendar month, refreshing monthly (applicable only to the 'datadelivery' endpoint).

  • Daily Call Rate Limit: The number of calls allowed each day, refreshing at midnight UTC (applicable only to the 'datadelivery' endpoint).

  • Call Rate Limit per Minute (Fair Use Policy): Ensures fair usage by limiting the number of calls per minute.

Although an API subscription grants users global access, it may be limited to a specific number of unique locations. This typically applies for Free trials or Education subscriptions.

  • Number of Unique Locations: Limits the number of unique locations a subscription can access. Evaluating unique locations is based on concatenating the latitude and longitude tuple into its text representation. Therefore, even a tiny change in the decimal place is considered a new location, with no rounding or buffering around the site location.

We also offer a demonstration API subscription that anyone can use to test all API capabilities on a single, unmetered location. You can see the use of the demo account in the Python program example above.

XML request


dataDeliveryRequest - the root element of the request

Element: <dataDeliveryRequest>

  • Namespace: http://solargis.info/schema/ws-data.xsd

  • Description: The root element of the XML request, : <dataDeliveryRequest>, defines the requested data period using two required attributes:

    • @dateFrom: Start date of the data period in the format YYYY-MM-DD (e.g., "2017-09-30").

    • @dateTo : End date of the data period in the same format.

Both dates are assumed to be in UTC (GMT+00) unless changed by the <timeZone> element within <processing>.

  • Content:

    • Required elements:

      • One <site> element.

      • One  <processing> element.

Attributes

Attribute

Required

Description

Format

@dateFrom

Yes

Start date of the requested data period.

YYYY-MM-DD

@dateTo

Yes

End date of the requested data period.

YYYY-MM-DD

The maximum allowed date range (dateFrom to dateTo) for a single request is limited to a certain number of calendar days, regardless of the summarization defined in <processing>. This allowance is defined by your subscription.


Processing

Element: <processing>

Attributes

Attribute

Required

Description

Format/Example

@summarization

Yes

Time frequency for the response data.

MONTHLY, DAILY, HOURLY, MIN_30, MIN_15, MIN_10, MIN_5

@key

Yes

List of output data parameters separated by whitespace (e.g., "GHI GTI TEMP WS PVOUT").

See "Data Parameters" table below for supported values.

@terrainShading

No

Boolean indicating whether distant horizon shading (based on SRTM data) is considered. Default is false. If set to true, custom horizon data can also be applied using the <horizon> element within <site>.

true, false


Data parameters

The following table lists available parameters for use in the @key attribute of <processing>. These parameters define which data will be included in the response.

Table of available parameters:

Parameter

Description

Tier

GHI

Global Horizontal Irradiation [kWh/m2, Wh/m2, W/m2]. Regarding units see below note.

Basic

GHI_C

Clear-sky Global Horizontal Irradiation [kWh/m2, Wh/m2, W/m2]

Professional

GHI_UNC_HIGH

GHI high estimate (10 % probability of exceedance) [kWh/m2, Wh/m2, W/m2]

Professional

GHI_UNC_LOW

GHI low estimate (90 % probability of exceedance) [kWh/m2, Wh/m2, W/m2]

Professional

DNI

Direct Normal Irradiation [kWh/m2, Wh/m2, W/m2]

Basic

DNI_C

Clear-sky Direct Normal Irradiation [kWh/m2, Wh/m2, W/m2]

Professional

DIF

Diffuse Horizontal Irradiation [kWh/m2, Wh/m2, W/m2]

Basic

GTI

Global Tilted Irradiation [kWh/m2, Wh/m2, W/m2]

Basic

GTI_UNC_HIGH

GTI high estimate (10 % probability of exceedance) [kWh/m2, Wh/m2, W/m2]

Professional

GTI_UNC_LOW

GTI low estimate (90 % probability of exceedance) [kWh/m2, Wh/m2, W/m2]

Professional

GTI_C

Global tilted clear-sky irradiance [W/m2]

Professional

CI_FLAG

Cloud identification quality flag [categories], this parameter is represented as 'flagR' in the response

Basic

FLAG_R

deprecated alias for CI_FLAG

KTM

Deprecated alias of KC. Can be discontinued in future versions.

Professional

KC

Clear-sky index [unitless]

Professional

KT

clearness index, values range (0, 1.1), during the night -9

Professional

PAR

Photo-synthetically Active Irradiation [kWh/m2, Wh/m2, W/m2]

Professional

SE

Sun Altitude (Elevation) Angle [deg.]

Basic

SA

Sun Azimuth Angle [deg.]

Basic

TEMP

Air Temperature at 2m [deg. C]

Basic

TD

Dew Point Temperature [deg. C]

Professional

WBT

Wet Bulb Temperature [deg. C]

Professional

AP

Atmospheric Pressure [hPa]

Professional

RH

Relative Humidity [%]

Professional

WS

Wind Speed [m/s]

Basic

WD

Wind Direction [deg.]

Basic

PREC

Precipitation Rate [kg/m2]

Professional

PWAT

Precipitable Water [kg/m2]

Professional

PVOUT

Photovoltaic Output [kW, kWh]. Regarding units see below note.

Basic

PVOUT_UNC_HIGH

PVOUT high estimate (10 % probability of exceedance) [kW, kWh]

Professional

PVOUT_UNC_LOW

PVOUT low estimate (90 % probability of exceedance) [kW, kWh]

Professional

SDWE

Water equivalent of accumulated snow depth [kg/m2]

Professional

SWE

Deprecated alias of SDWE. Can be discontinued in future versions. SDWE will be returned in a response.

Professional

TMOD

Module temperature [deg. C]. This parameter needs a PV system defined in the request, at least in a mimimal setup like: <pv:system installedPower="1"><pv:module type="CSI"/><pv:inverter/><pv:losses/></pv:system>

Professional

WG

Wind Gust [m/s]

Professional

WS100

Wind speed at 100 m [m/s]

Professional

WD100

Wind direction at 100 m [deg.]

Professional

SFWE

Water equivalent of fresh snowfall rate [kg/m2/hour] - source ERA5 , the latest data available is approx. one month backward (no data for very recent or forecast period)

Professional

INC

Incidence angle of direct irradiance [deg.], this parameter needs GTI or PVOUT in the request

Professional

TILT

Tilt of inclined surface [deg.], this parameter needs GTI or PVOUT in the request

Basic

ASPECT

Aspect of inclined surface [deg.], this parameter needs GTI or PVOUT in the request

Basic

Units of solar and PV data parameters

  • Sub-hourly data: For time intervals shorter than an hour, solar irradiance and PV output values represent instantaneous measurements at the specified timestamp. For example:

    • Solar irradiance is expressed in W/m2 (watts per square meter).

    • PV output is expressed in kW (kilowatts).

  • Hourly or longer aggregation intervals: For hourly or aggregated data, the values represent the accumulated or averaged energy over the specified time period. For example:

    • Solar irradiation is expressed in Wh/m2 or kWh/m2 (watt-hours or kilowatt-hours per square meter).

    • PV output is expressed in kWh (kilowatt-hours).

Sub-hourly data provides higher granularity, capturing short-term fluctuations, while hourly data offers a broader energy overview suitable for most solar project assessments.

For detailed parameter descriptions refer to the Solargis glossary.

Timezone

Element: <timeZone>

  • Namespace: http://solargis.info/schema/data-request.xsd

  • Description:  The <timeZone> element specifies the time zone for the timestamps in the response, allowing users to shift timestamps from UTC. Both hourly and half-hourly precision are supported.

  • Content:

    • Required elements:

      • A string value following the pattern "GMT[+-][zero-padded hours][:30]".

      • Default value: GMT+00 (UTC).

Example of valid values

Time Zone

Description

GMT-04

4 hours behind UTC

GMT+05:30

5 hours and 30 minutes ahead of UTC

GMT-02:30

2 hours and 30 minutes behind UTC

Example request with timezone

The following example demonstrates a request for the GHI parameter in the India Standard Time (IST) zone (GMT+05:30):

<ws:dataDeliveryRequest dateFrom='2024-04-19' dateTo='2024-04-19' 
xmlns='http://geomodel.eu/schema/data/request' 
xmlns:ws='http://geomodel.eu/schema/ws/data' 
xmlns:geo='http://geomodel.eu/schema/common/geo' 
xmlns:pv='http://geomodel.eu/schema/common/pv' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
    <site id='Delhi' lat='28.758009' lng='77.296243' name='Delhi' />
    <processing summarization='HOURLY' key='GHI' terrainShading='true'>
        <timeZone>GMT+05:30</timeZone>
    </processing>
</ws:dataDeliveryRequest>

TimestampType

Element: <timestampType>

  • Namespace: http://solargis.info/schema/data-request.xsd

  • Description: The <timestampType> element defines how aggregated time intervals in the response should be labeled. This is applicable for [sub]hourly summarization intervals and allows users to specify whether the interval is labeled at its start, center, or end.

  • Content:

    • Required: One of the following values:

      • START: Labels time intervals at their starting point.

      • CENTER: Labels time intervals at their midpoint (default).

      • END: Labels time intervals at their endpoint.

Example of valid values

Time Zone

Description

START

Timestamps are aligned with the start of each interval.

CENTER

Timestamps are aligned with the center of each interval (default).

END

Timestamps are aligned with the end of each interval.

Site

Element: <site>

  • Namespace: http://solargis.info/schema/data-request.xsd

  • Description: The <site> element specifies the geographical location and environmental condition of a site and may include additional details about PV technology and PV array geometry.

  • Content:

    • One <geometry> element.

    • One <system> element.

    • One <terrain> element.

    • One <horizon> element.

Attributes

Attribute

Required

Description

Format/Example

@id

Yes

Unique site identifier. Cannot start with a number or contain whitespace. It is recommended to use a unique ID for each combination of latitude and longitude to facilitate troubleshooting. Reusing IDs for different locations is discouraged.

Example: Site_001

@lat

Yes

Latitude of the site in decimal degrees.

Example: 48.61259

@lng

Yes

Longitude of the site in decimal degrees.

Example: 20.827079

@name

No

Descriptive name of the site (e.g., address). Default is an empty string if not provided.

Example: My Solar Site

Example

<site id="Site_001" lat="48.61259" lng="20.827079" name="My Solar Site" />

Terrain

Element: <terrain>

  • Namespace: http://solargis.info/schema/common-geo.xsd

  • Description: The <terrain> element defines ground terrain characteristics, such as elevation, slope tilt, and azimuth orientation.

    Terrain properties affect the self shading of a fixed angle PV array (note, that 'tilt' and 'row spacing' attributes of PV modules on the pictures below are identical - what is changing is the terrain slope and how it affects the self shading).

  • Content: None (attributes only).

Attributes

Attribute

Required

Description

Default/Example

@elevation

No

Elevation above mean sea level in meters. If omitted, the value is retrieved from the SRTM terrain database.

Example: 246

@azimuth

No

Orientation of tilted terrain in degrees (0° = North, 180° = South, measured clockwise). Has no effect on flat terrain (tilt=0). Default is 180°.

Default: 180, Example: 176

@tilt

No

Slope tilt of the terrain in degrees (0° = flat ground, 90° = vertical surface). Default is 0°.

Default: 0, Example: 3.1

Example

<terrain elevation="246" azimuth="176" tilt="3.1" />

Horizon

Element: <horizon>

  • Namespace: http://solargis.info/schema/common-geo.xsd

  • Description: The <horizon> element allows users to define a custom skyline to account for distant or nearby obstructions, such as hills, trees, buildings, or poles.

  • Content:

    • A string containing a space-delimited list of azimuth and horizon height pairs in the format [azimuth in degrees: 0-360]:[horizon height in degrees: 0-90].

Example

<geo:horizon>0:3.6 123:5.6 359:6</geo:horizon>

PV array geometry

Element: <geometry>

  • Namespace: http://solargis.info/schema/common-pv.xsd

  • Description: The <geometry> element specifies the mounting type of the PV system, which is used for calculating GTI (Global Tilted Irradiation) and PVOUT (Photovoltaic Output). If this element is omitted and GTI/PVOUT is requested, flat-lying PV panels are assumed (GTI = GHI).

  • Content: None (attributes only).

Attributes

Attribute

Required

Description

Default/Example

@type

Yes

Specifies the mounting geometry type. Accepted values are: GeometryFixedOneAngle, GeometryOneAxisHorizontalNS, GeometryOneAxisInclinedNS, GeometryOneAxisVertical, GeometryTwoAxisAstronomical.

Example: pv:GeometryFixedOneAngle

@azimuth

No

True geographical azimuth in degrees (0° = North, 90° = East, 180° = South, 270° = West). Required for GeometryFixedOneAngle. Defaults to 180° for trackers.

Example: 180

@tilt

No

Tilt of the panel surface in degrees (0° = horizontal, 90° = vertical). Required for GeometryFixedOneAngle and GeometryOneAxisVertical.

Example: 25

@axisTilt

No

Tilt of the inclined rotating axis in degrees (0° = horizontal, 90° = vertical). Applicable only to GeometryOneAxisInclinedNS. Defaults to 30°.

Example: 30

@rotationLimitEast

No

Rotation limit for trackers on the east side. Defaults vary by tracker type. Must be less than or equal to @rotationLimitWest.

Example: -90

@rotationLimitWest

No

Rotation limit for trackers on the west side. Defaults vary by tracker type. Must be greater than or equal to @rotationLimitEast.

Example: 90

@tiltLimitMin

No

Minimum tilt limit for trackers with a horizontal axis (GeometryTwoAxisAstronomical). Default is 0°. Must be less than or equal to @tiltLimitMax.

Example: 0

@tiltLimitMax

No

Maximum tilt limit for trackers with a horizontal axis (GeometryTwoAxisAstronomical). Default is 90°. Must be greater than or equal to @tiltLimitMin.

Example: 60

@backTracking

No

Boolean value indicating whether the tracker avoids shading from neighboring structures (true) or moves freely (false). Default is false.

Example: "true"

Examples

Fixed-angle geometry:

<pv:geometry xsi:type="pv:GeometryFixedOneAngle" azimuth="180" tilt="25"/>

Horizontal single-axis tracker:

<pv:geometry xsi:type="pv:GeometryOneAxisHorizontalNS" rotationLimitEast="-90" rotationLimitWest="90" backTracking="true" azimuth="180"/>

Inclined single-axis tracker:

<pv:geometry xsi:type="pv:GeometryOneAxisInclinedNS" axisTilt="30" rotationLimitEast="-90" rotationLimitWest="90" backTracking="true"  azimuth="180"/>

Vertical single-axis tracker:

<pv:geometry xsi:type="pv:GeometryOneAxisVertical" tilt="25" rotationLimitEast="-180" rotationLimitWest="180" backTracking="true"/>

Two-axis astronomical tracker:

 <pv:geometry xsi:type="pv:GeometryTwoAxisAstronomical" rotationLimitEast="-180" rotationLimitWest="180"  tiltLimitMin="10" tiltLimitMax="60" backTracking="true"/>

Supported geometry types

GeometryFixedOneAngle

GeometryOneAxisVertical

GeometryOneAxisInclinedNS

GeometryOneAxisHorizontalNS

GeometryTwoAxisAstronomical

  • fixed surface described by azimuth and tilt

  • self-shading simulation supported

  • single vertical tracker axis

  • tilted fixed surface

  • rotation limits

  • back-tracking

  • relative column spacing

  • self-shading simulation not implemented

  • single inclined tracker axis

  • tilted surface

  • rotation limits

  • azimuth of the axis

  • back-tracking

  • relative column spacing

  • self-shading simulation supported

  • single horizontal tracker axis

  • rotation limits

  • azimuth of the axis

  • back-tracking

  • relative column spacing

  • self-shading simulation supported

  • two tracker axes

  • rotation limits for both axes

  • back-tracking

  • relative column spacing

  • self-shading simulation not implemented

PV System

Element: <system>

  • Namespace: http://solargis.info/schema/common-pv.xsd

  • Description: The <system> element defines the parametrization of the PV system and is required for simulating the PVOUT parameter.

  • Content:

    • Required elements:

      • <module>: Specifies the characteristics of the PV modules.

      • <inverter>: Defines the inverter properties.

      • <losses>: Details losses in the PV system.

    • Optional elements:

      • <topology>: Describes the electrical topology of the PV system.

Attributes

Attribute

Required

Description

Default/Example

@installedPower

Yes

Total installed DC power of the PV system in kilowatts-peak (kWp). Must be greater than zero. The value represents the sum of panel ratings measured under STC.

Example: 10.5

@installationType

No

Installation type of the PV system. Accepted values are FREE_STANDING (default), ROOF_MOUNTED, and BUILDING_INTEGRATED. This attribute helps estimate module cooling.

Default: FREE_STANDING, Example: ROOF_MOUNTED

@dateStartup

No

Start-up date of the PV system in the format "yyyy-mm-dd". Used to calculate degradation due to aging. If omitted, degradation is not considered.

Example: 2015-01-01

@selfShading

No

Boolean value indicating whether self-shading is considered for certain geometries (GeometryFixedOneAngle, and for trackers such as the GeometryOneAxisInclinedNS, GeometryOneAxisHorizontalNS where backTracking is false). Default is 'false'. When enabled, simulated PV power is typically lower due to shading effects. With trackers, always switch off 'backTracking' attribute, because the back tracking avoids self-shading.

Default: 'false', Example: 'true'

PV Module

Element: <module>

  • Namespace: http://solargis.info/schema/common-pv.xsd

  • Description: Parametrization of the PV system modules. Required for simulating PVOUT-related parameters. All modules in one PV system are considered of the same type.

  • Content:

    • Optional elements:

      • <degradationFirstYear>

      • <degradation>

      • <surfaceReflectance>

      • <nominalOperatingCellTemp>

      • <PmaxCoeff>

Attributes

Attribute

Required

Description

Default/Example

@type

Yes

Enumerated codes for materials used in PV modules. Use 'CSI' for crystalline silicon, 'ASI' for amorphous silicon, 'CDTE' for cadmium telluride, 'CIS' for copper indium selenide. For the estimate of module's surface reflectance we use an approach described here.

Example: CSI

PV module degradation rate in the first year

Element: <degradationFirstYear>

  • Namespace: http://solargis.info/schema/common-pv.xsd

  • Description: The <degradationFirstYear> element specifies the estimated annual degradation rate of rated output power for PV modules during the first year of operation. If omitted, the degradation defaults to 0.8% per year.

  • Content:

    • A float number in the range (0, 100) representing degradation in percentage.

Example

<degradationFirstYear>0.8</degradationFirstYear>

PV module degradation rate

Element: <degradation>

  • Namespace: http://solargis.info/schema/common-pv.xsd

  • Description: The <degradation> element specifies the estimated annual degradation rate of rated output power for PV modules. If omitted, the degradation defaults to 0.5% per year.

  • Content:

    • A float number in the range (0, 100) representing degradation in percentage.

Example

<degradation>0.5</degradation>

PV module surface reflectance

Element: <surfaceReflectance>

  • Namespace: http://solargis.info/schema/common-pv.xsd

  • Description: The <surfaceReflectance> element defines an empirical dimensionless ratio used in PV system calculations. Typical value is 0.12.

  • Content:

    • A float number representing the surface reflectance ratio.

Example

<surfaceReflectance>0.12</surfaceReflectance>

Nominal operating cell temperature (NOCT)

Element: <nominalOperatingCellTemp>

  • Namespace: http://solargis.info/schema/common-pv.xsd

  • Description: The <nominalOperatingCellTemp> element specifies the nominal operating cell temperature (NOCT) of a free-standing PV module under standard conditions (irradiance of 800 W/m², ambient air temperature of 20°C, and wind speed of 1 m/s). This value is provided by the manufacturer and applies only to ventilated free-standing systems. If omitted, default NOCT values are used based on PV module technology:

    • CSI = 46°C

    • ASI = 44°C

    • CDTE = 45°C

    • CIS = 47°C

  • Content:

    • A float number representing NOCT in degrees Celsius.

Example

<nominalOperatingCellTemp>46</nominalOperatingCellTemp>

PmaxCoeff - temperature coefficient of power

Element: <PmaxCoeff>

  • Namespace: http://solargis.info/schema/common-pv.xsd

  • Description: The <PmaxCoeff> element specifies the negative percentage change in PV panel output power per degree Celsius deviation from the standard temperature of 25°C. This value is provided by the manufacturer at STC (Standard Test Conditions). If omitted, default values are used based on PV module technology:

    • CSI = -0.438%/°C

    • ASI = -0.18%/°C

    • CDTE = -0.297%/°C

    • CIS = -0.36%/°C

  • Content:

    • A float number representing the percentage change per degree Celsius (%/°C).

Example

<PmaxCoeff>-0.438</PmaxCoeff>

Inverter

Element: <inverter>

  • Namespace: http://solargis.info/schema/common-pv.xsd

  • Description: The <inverter> element defines the properties of the PV system inverter and is required for simulating the PVOUT parameter. All inverters in a single system are assumed to be identical.

  • Content:

    • <efficiency>: Specifies inverter efficiency modeling.

    • <limitationACPower>: Defines the maximum AC output power limit.

Inverter efficiency

Element: <efficiency>

  • Namespace: http://solargis.info/schema/common-pv.xsd

  • Description: The <efficiency> element specifies how inverter efficiency is modeled. If omitted, efficiency defaults to a constant 97.5%.

  • Content: None (attributes only).

Attributes

Attribute

Required

Description

Example

@xsi:type

Yes

Efficiency modeling type. Accepted values: pv:EfficiencyConstant or pv:EfficiencyCurve.

pv:EfficiencyConstant

@value

No

Required for pv:EfficiencyConstant. Specifies a constant efficiency percentage (e.g., Euro or CEC efficiency). Valid range: 70–100%.

value="97.5"

@dataPairs

No

Required for pv:EfficiencyCurve. Defines a non-linear efficiency curve as space-delimited kW:% pairs.

dataPairs="0:85.6 0.5:96.2 1:98 1.5:97 2:97 2.5:96 3.0:96"

Examples

Constant efficiency:

<efficiency xsi:type="pv:EfficiencyConstant" value="97.5"/>

Efficiency curve:

<efficiency xsi:type="pv:EfficiencyCurve" dataPairs="0:85.6 0.5:96.2 1:98 1.5:97 2:97 2.5:96 3.0:96"/>

Limitation of AC power

Element: <limitationACPower>

  • Namespace: http://solargis.info/schema/common-pv.xsd

  • Description: The <limitationACPower> element specifies the maximum AC output power (in kW) that the inverter can deliver. Higher power values are 'clipped'. Clipping refers to the situation where the AC power output of an inverter is limited due to the peak rating of the inverter (the parameter value in kW), even though the additional power may still be available from the solar modules. If you have power factor (PF) and AC limit in kVA available, use this formula: PF * AC_limit_kVA = kW, to obtain the value of this parameter. No default.

  • Content:

    • A float number representing the AC power limit in kilowatts.

Examples

<limitationACPower>5.0</limitationACPower>

Full <inverter> example:

<inverter>
    <efficiency xsi:type="pv:EfficiencyCurve" dataPairs="0:85.6 0.5:96.2 1:98 1.5:97 2:97 2.5:96 3.0:96"/>
    <limitationACPower>5.0</limitationACPower>
</inverter>

PV losses

Element: <losses>

  • Namespace: http://solargis.info/schema/common-pv.xsd

  • Description: The <losses> element estimates power losses in the PV system. If omitted, default loss values are applied.

  • Content:

    • <dcLosses>: Estimates DC-side power losses.

    • <acLosses>: Estimates AC-side power losses.

Example

Full <losses> example:

<losses>
    <dcLosses cables="0.2" mismatch="0.3" monthlySnowPollution="5 5.2 3 1 1 1 1 1 1 1 2 4"/>
    <acLosses transformer="0.8" cables="0.3"/>
</losses>

DC losses

Element: <dcLosses>

  • Namespace: http://solargis.info/schema/common-pv.xsd

  • Description: The <dcLosses> element specifies DC-side power losses. If omitted, defaults are applied:

    • snowPollution: 2.5%

    • cables: 2.0%

    • mismatch: 1.0%

  • Content: None (attributes only).

Attributes

Attribute

Description

Default

Example

@snowPollution

Annual dirt and snow losses (%). Overridden if @monthlySnowPollution is provided.

2.5

snowPollution="3.0"

@monthlySnowPollution

12 monthly loss values (%), separated by spaces. Takes precedence over @snowPollution.

None

monthlySnowPollution="5 5.2 3 1 1 1 1 1 1 1 2 4"

@cables

Annual DC cabling losses (%).

2.0

cables="1.5"

@mismatch

Annual DC mismatch losses (%).

1.0

mismatch="0.8"

Example

<dcLosses cables="0.2" mismatch="0.3" monthlySnowPollution="5 5.2 3 1 1 1 1 1 1 1 2 4"/>

AC losses

Element: <acLosses>

  • Namespace: http://solargis.info/schema/common-pv.xsd

  • Description: The <acLosses> element specifies AC-side power losses. If omitted, defaults are applied:

    • transformer: 1.0%

    • cables: 0.5%

  • Content: None (attributes only).

Attributes

Attribute

Description

Default

Example

@transformer

Annual transformer losses (%).

1.0

transformer="0.8"

@cables

Annual AC cabling losses (%).

0.5

cables="0.3"

Examples

<acLosses transformer="0.8" cables="0.3"/>

Topology

Element: <topology>

  • Namespace: http://solargis.info/schema/common-pv.xsd

  • Description: The <topology> element defines the physical layout of a PV plant to calculate self-shading effects (e.g., spacing between PV constructions).

  • Content: None (attributes only).

Attributes

Attribute

Required

Description

Accepted Values/Examples

@xsi:type*

Yes

Defines the layout type. Use TopologyRow for fixed-angle systems or TopologyColumn for trackers. Trackers are assumed to be spaced equally in rows and columns.

TopologyRow, TopologyColumn

@relativeSpacing

No

Unitless ratio of the distance between neighboring PV tables to their width. Direction depends on the layout type (row or column).

Example: 2.5 (distance is 2.5× the width of the PV table). Defaults to 2.5.

@type

No

Estimates power loss magnitude due to shading. Defaults to 5% if omitted.

PROPORTIONAL (20%), UNPROPORTIONAL1 (40%), UNPROPORTIONAL2 (60%), UNPROPORTIONAL3 (80%)

Calculation of the relative row spacing value (= x3/x2):

XML request examples

Examine the following request examples for reference.

Example of all options (full request)

<ws:dataDeliveryRequest dateFrom="2017-09-22" dateTo="2017-09-30"
    xmlns="http://geomodel.eu/schema/data/request"
    xmlns:ws="http://geomodel.eu/schema/ws/data"
    xmlns:geo="http://geomodel.eu/schema/common/geo"
    xmlns:pv="http://geomodel.eu/schema/common/pv"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      
    <site id="demo" lat="48.61259" lng="20.827079">
       <geo:terrain elevation="120" azimuth="180" tilt="5"/>
       <geo:horizon>0:3.6 123:5.6 359:6</geo:horizon>
       <pv:geometry xsi:type="pv:GeometryFixedOneAngle" azimuth="180" tilt="25"/>
       <!-- <pv:geometry xsi:type="pv:GeometryOneAxisHorizontalNS" rotationLimitEast="-90" rotationLimitWest="90" backTracking="true" azimuth="180"/>  -->
       <!-- <pv:geometry xsi:type="pv:GeometryOneAxisInclinedNS" axisTilt="30" rotationLimitEast="-90" rotationLimitWest="90" backTracking="true" azimuth="180"/> -->
       <!-- <pv:geometry xsi:type="pv:GeometryOneAxisVertical" tilt="25" rotationLimitEast="-180" rotationLimitWest="180" backTracking="true"/> -->
       <!-- <pv:geometry xsi:type="pv:GeometryTwoAxisAstronomical" rotationLimitEast="-180" rotationLimitWest="180" 
   				tiltLimitMin="10" tiltLimitMax="60" backTracking="true"/> -->
        <pv:system installedPower="1000" installationType="FREE_STANDING" dateStartup="2014-01-03" selfShading="true">
            <pv:module type="CSI">
                <pv:degradation>0.3</pv:degradation>
                <pv:degradationFirstYear>0.8</pv:degradationFirstYear>
                <pv:nominalOperatingCellTemp>45</pv:nominalOperatingCellTemp>
                <pv:PmaxCoeff>-0.38</pv:PmaxCoeff>
            </pv:module>
            <pv:inverter>
                <pv:efficiency xsi:type="pv:EfficiencyConstant" percent="97.5"/>
                <!--<pv:efficiency xsi:type="pv:EfficiencyCurve" dataPairs="0:20 50:60 100:80 150:90 233:97.5 350:97 466:96.5 583:96 700:95.5 750:93.33 800:87.5 850:82.35 900:77.8 950:73.7"/>-->
                <pv:limitationACPower>900</pv:limitationACPower>
            </pv:inverter>
            <pv:losses>
                <pv:acLosses cables="0.1" transformer="0.9"/>
                <pv:dcLosses cables="0.2" mismatch="0.3" snowPollution="3.0"/>
                <!-- <pv:dcLosses cables="0.2" mismatch="0.3" monthlySnowPollution="5 5.2 3 1 1 1 1 1 1 1 2 4"/> -->
            </pv:losses>
            <pv:topology xsi:type="pv:TopologyRow" relativeSpacing="2.4" type="UNPROPORTIONAL2"/>
            <!-- <pv:topology xsi:type="pv:TopologyColumn" relativeSpacing="2.5" type="UNPROPORTIONAL2"/> -->
        </pv:system>
    </site>   
    <processing key="GHI GTI TEMP WS PVOUT" summarization="HOURLY" terrainShading="true">
      <timeZone>GMT+01</timeZone>
      <timestampType>END</timestampType>
    </processing>  
</ws:dataDeliveryRequest>

Example of fixed mounted PV system

<ws:dataDeliveryRequest dateFrom="2018-02-11" dateTo="2018-02-11"
    xmlns="http://geomodel.eu/schema/data/request"
    xmlns:ws="http://geomodel.eu/schema/ws/data"
    xmlns:geo="http://geomodel.eu/schema/common/geo"
    xmlns:pv="http://geomodel.eu/schema/common/pv"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      
    <site id="demo" lat="48.61259" lng="20.827079">
       <geo:terrain elevation="246" azimuth="180" tilt="2"/>
       <!--azimuth and tilt of terrain affects PVOUT values only if selfShading attribute of the system is true-->
        <pv:geometry xsi:type="pv:GeometryFixedOneAngle" tilt="25" azimuth="180"/> <!--azimuth and tilt attributes are required-->
        <pv:system installedPower="1" installationType="FREE_STANDING" selfShading="true">
		<!--by setting selfShading=true we can switch on the impact of inter-row shading on PVOUT-->
            <pv:module type="CSI"></pv:module>
            <pv:inverter></pv:inverter>
            <pv:losses></pv:losses>
        	  <pv:topology xsi:type="pv:TopologyRow" relativeSpacing="2.5" type="UNPROPORTIONAL2"/>
        </pv:system>
    </site>   
    <processing key="GTI TEMP PVOUT TMOD" summarization="HOURLY" terrainShading="true">
           <timeZone>GMT+01</timeZone>
        <timestampType>CENTER</timestampType>
    </processing>  
</ws:dataDeliveryRequest>

Example of tracking PV system with one horizontal axis in the north-south direction

<ws:dataDeliveryRequest dateFrom="2018-02-11" dateTo="2018-02-11"
    xmlns="http://geomodel.eu/schema/data/request"
    xmlns:ws="http://geomodel.eu/schema/ws/data"
    xmlns:geo="http://geomodel.eu/schema/common/geo"
    xmlns:pv="http://geomodel.eu/schema/common/pv"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <site id="demo" lat="48.61259" lng="20.827079">
        <pv:geometry xsi:type="pv:GeometryOneAxisHorizontalNS" rotationLimitEast="-90" rotationLimitWest="90" backTracking="true" azimuth="180"/>
		<!-- rotation limits are defined as tilt of tracker table relative to its central position (horizontal=0 deg.), limits are usually symmetrical-->
        <pv:system installedPower="1" installationType="FREE_STANDING" selfShading="false">
        <!--by setting selfShading=true and backTtracking=false we can switch on the impact of inter-row shading on PVOUT-->
            <pv:module type="CSI"></pv:module>
            <pv:inverter></pv:inverter>
            <pv:losses></pv:losses>
            <pv:topology xsi:type="pv:TopologyColumn" relativeSpacing="2.5" type="UNPROPORTIONAL2"/>
        </pv:system>
    </site>   
    <processing key="GTI PVOUT TEMP" summarization="HOURLY" terrainShading="true">
           <timeZone>GMT+01</timeZone>
        <timestampType>CENTER</timestampType>
    </processing>  
</ws:dataDeliveryRequest>

Example of tracking PV system with one inclined axis in the north-south direction

<ws:dataDeliveryRequest dateFrom="2018-02-11" dateTo="2018-02-11"
    xmlns="http://geomodel.eu/schema/data/request"
    xmlns:ws="http://geomodel.eu/schema/ws/data"
    xmlns:geo="http://geomodel.eu/schema/common/geo"
    xmlns:pv="http://geomodel.eu/schema/common/pv"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      
    <site id="demo" lat="48.61259" lng="20.827079">
        <pv:geometry xsi:type="pv:GeometryOneAxisInclinedNS" axisTilt="30" rotationLimitEast="-90" rotationLimitWest="90" backTracking="true" azimuth="180"/>
		<!-- tilt of tracker axis defaults to 30 degrees if the attribute axisTilt is omitted -->
		<!-- tracker axis is tilted towards equator on each Earth hemisphere, e.g. towards 180 deg. azimuth on the Northern hemisphere, 0 deg. azimuth for the Southern hemisphere-->
		<!-- rotation limits are defined as tilt of tracker table relative to its central position (in this case inclined plane), limits are usually symmetrical-->
        <pv:system installedPower="1" installationType="FREE_STANDING" selfShading="false">
        <!--by setting selfShading=true and backTtracking=false we can switch on the impact of inter-row shading on PVOUT -->
            <pv:module type="CSI"></pv:module>
            <pv:inverter></pv:inverter>
            <pv:losses></pv:losses>
            <pv:topology xsi:type="pv:TopologyColumn" relativeSpacing="2.4" type="UNPROPORTIONAL2"/>
        </pv:system>
    </site>   
    <processing key="GTI PVOUT TEMP" summarization="HOURLY" terrainShading="true">
           <timeZone>GMT+01</timeZone>
        <timestampType>CENTER</timestampType>
    </processing>  
</ws:dataDeliveryRequest>

Example of tracking PV system with one vertical axis

<ws:dataDeliveryRequest dateFrom="2018-02-11" dateTo="2018-02-11"
    xmlns="http://geomodel.eu/schema/data/request"
    xmlns:ws="http://geomodel.eu/schema/ws/data"
    xmlns:geo="http://geomodel.eu/schema/common/geo"
    xmlns:pv="http://geomodel.eu/schema/common/pv"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <site id="demo" lat="48.61259" lng="20.827079">
        <pv:geometry xsi:type="pv:GeometryOneAxisVertical" tilt="25" rotationLimitEast="-180" rotationLimitWest="180" backTracking="true"/>
		<!-- tilt of module defaults to 30 degrees if the attribute tilt is omitted -->
        <!--rotation limits of the vertical axis are defined relative to 0 deg. (initial tracker position) from -180 to 180 deg with -90 deg.(east) and +90 deg. (west), regardless of the hemisphere-->
        <pv:system installedPower="1" installationType="FREE_STANDING">
            <pv:module type="CSI"></pv:module>
            <pv:inverter></pv:inverter>
            <pv:losses></pv:losses>
             <pv:topology xsi:type="pv:TopologyColumn" relativeSpacing="2.5" type="UNPROPORTIONAL2"/>
			 <!--with this tracker, constructions are equally distributed in both directions, i.e. column spacing = row spacing -->
        </pv:system>
    </site>   
    <processing key="GTI PVOUT TEMP" summarization="HOURLY" terrainShading="true">
           <timeZone>GMT+01</timeZone>
        <timestampType>CENTER</timestampType>
    </processing>  
</ws:dataDeliveryRequest>

Example of tracking PV system with two axes

<ws:dataDeliveryRequest dateFrom="2018-02-11" dateTo="2018-02-11"
    xmlns="http://geomodel.eu/schema/data/request"
    xmlns:ws="http://geomodel.eu/schema/ws/data"
    xmlns:geo="http://geomodel.eu/schema/common/geo"
    xmlns:pv="http://geomodel.eu/schema/common/pv"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <site id="demo" lat="48.61259" lng="20.827079">
        <pv:geometry xsi:type="pv:GeometryTwoAxisAstronomical" rotationLimitEast="-180" rotationLimitWest="180"  tiltLimitMin="10" tiltLimitMax="60" backTracking="true"/>
    	   <!--rotation limits of vertical axis are defined relative to 0 deg. (initial tracker position) from -180 to 180 deg with -90 deg.=east and +90 deg.=west, regardless of hemisphere-->
		   <!--rotation limits of horizontal axis defined in the range of degrees (-90, +90), relative to horizontal position of the surface (0 deg.)-->
        <pv:system installedPower="1" installationType="FREE_STANDING">
            <pv:module type="CSI"></pv:module>
            <pv:inverter></pv:inverter>
            <pv:losses></pv:losses>
             <pv:topology xsi:type="pv:TopologyColumn" relativeSpacing="1.5" type="UNPROPORTIONAL2"/>
			 <!--with this tracker, constructions are equally distributed in both directions, i.e. column spacing = row spacing -->
        </pv:system>
    </site>   
    <processing key="GTI PVOUT" summarization="DAILY" terrainShading="true">
           <timeZone>GMT+01</timeZone>
        <timestampType>CENTER</timestampType>
    </processing>  
</ws:dataDeliveryRequest>

XML response


The root element of the XML response is <dataDeliveryResponse>, which contains a single <site> element. The <site> element includes the following key components:

  • attributeid: The id attribute of the <site> element references the site identifier provided in the original request.

  • sub elements: The <site> element is organized into three main sections:

    • <metadata>: Contains descriptive information about the site or response.

    • <columns>: Defines the labels for the data values.

    • collections of <row> elements: Each <row> represents a single timestamped data entry.

Each <row> element includes:

  • attributedateTime: Specifies the ISO timestamp for the data entry in case of sub-hourly or hourly time step.

  • attribute date: Specifies the ISO datestamp for the data entry in case of daily time step.

  • attribute yearMonth: Specifies the month identification for the data entry in case of monthly time step. Example: yearMonth="2025-03"

  • Attributevalues: Contains collection of numeric values as a space-separated string. These values are sorted in the same order as their corresponding labels in the <columns> element.

Timestamp format and Time Zone handling

Timestamps in the XML response adhere to the ISO 8601 standard for date and time representation. They also include time zone information, ensuring clarity and consistency across different time zones.

  1. UTC Representation:

    • If the timestamp is in Coordinated Universal Time (UTC), a Z (zone designator for zero UTC offset) is appended directly after the time without any space.

    • Example: 2017-09-22T01:00:00.000Z

  2. Offsets from UTC:

    • If there is an offset from UTC, it is indicated by appending +HH:MM or -HH:MM after the time string.

    • Example (UTC-5): 2017-09-22T01:00:00.000-05:00.

XML response example

<?xml version="1.0"?>
<dataDeliveryResponse xmlns="http://geomodel.eu/schema/ws/data" xmlns:ns2="http://geomodel.eu/schema/common/geo">
  <site id="demo" lat="48.61259" lng="20.827079">
    <metadata>#15 MINUTE VALUES OF SOLAR RADIATION AND METEOROLOGICAL PARAMETERS AND PV OUTPUT
#
#Issued: 2017-09-03 12:40
#
#Latitude: 48.612590
#Longitude: 20.827079
#Elevation: 7.0 m a.s.l.
#http://solargis.info/imaps/#tl=Google:satellite&amp;loc=48.612590,20.827079&amp;z=14 
#
#
#Output from the climate database Solargis v2.1.13
#
#Solar radiation data
#Description: data calculated from Meteosat MSG satellite data ((c) 2017 EUMETSAT) and from atmospheric data ((c) 2017 ECMWF and NOAA) by Solargis method 
#Summarization type: instantaneous
#Summarization period: 28/04/2014 - 28/04/2014
#Spatial resolution: 250 m
#
#Meteorological data
#Description: spatially disaggregated from CFSR, CFSv2 and GFS ((c) 2017 NOAA) by Solargis method 
#Summarization type: interpolated to 15 min
#Summarization period: 28/04/2014 - 28/04/2014
#Spatial resolution: temperature 1 km, other meteorological parameters 33 km to 55 km
#
#Service provider: Solargis s.r.o., M. Marecka 3, Bratislava, Slovakia
#Company ID: 45 354 766, VAT Number: SK2022962766
#Registration: Business register, District Court Bratislava I, Section Sro, File 62765/B
#http://solargis.com, contact@solargis.com
#
#Disclaimer:
#Considering the nature of climate fluctuations, interannual and long-term changes, as well as the uncertainty of measurements and calculations, Solargis s.r.o. cannot take full guarantee of the accuracy of estimates. The maximum possible has been done for the assessment of climate conditions based on the best available data, software and knowledge. Solargis s.r.o. shall not be liable for any direct, incidental, consequential, indirect or punitive damages arising or alleged to have arisen out of use of the provided data. Solargis is a trade mark of Solargis s.r.o.
#
#Copyright (c) 2017 Solargis s.r.o.
#
#
#Columns:
#Date - Date of measurement, format DD.MM.YYYY
#Time - Time of measurement, time reference UTC+2, time step 15 min, time format HH:MM
#GHI - Global horizontal irradiance [W/m2], no data value -9
#GTI - Global tilted irradiance [W/m2] (fixed inclination: 25 deg. azimuth: 180 deg.), no data value -9
#TEMP - Air temperature at 2 m [deg. C]
#WS - Wind speed at 10 m [m/s]
#WD - Wind direction [deg.]
#AP - Atmospheric pressure [hPa]_
#RH - Relative humidity [%]
#PVOUT - PV output [kW]
#
#Data:
Date;Time;GHI;GTI;TEMP;WS;WD;AP;RH;PVOUT</metadata>
    <columns>GHI GTI TEMP WS WD AP RH PVOUT</columns>
  ....
    <row dateTime="2014-04-28T05:11:00.000+02:00" values="0.0 0.0 10.2 1.9 10.0 1005.4 81.2 0.0"/>
    <row dateTime="2014-04-28T05:26:00.000+02:00" values="5.0 5.0 10.4 1.9 10.0 1005.4 80.3 0.0"/>
    <row dateTime="2014-04-28T05:41:00.000+02:00" values="12.0 11.0 10.6 1.9 10.0 1005.3 79.5 2.85"/>
    <row dateTime="2014-04-28T05:56:00.000+02:00" values="25.0 25.0 10.9 2.2 10.0 1005.3 78.7 11.936"/>
    <row dateTime="2014-04-28T06:11:00.000+02:00" values="38.0 37.0 11.2 2.2 10.0 1005.2 77.9 21.25"/>
    <row dateTime="2014-04-28T06:26:00.000+02:00" values="102.0 70.0 11.9 2.2 10.0 1005.1 76.5 38.582"/>
    <row dateTime="2014-04-28T06:41:00.000+02:00" values="144.0 112.0 12.7 2.2 10.0 1005.0 75.0 68.925"/>
    <row dateTime="2014-04-28T06:56:00.000+02:00" values="183.0 156.0 13.4 2.1 9.0 1004.9 73.5 106.197"/>
    <row dateTime="2014-04-28T07:11:00.000+02:00" values="223.0 202.0 14.2 2.1 9.0 1004.8 72.1 150.239"/>
    <row dateTime="2014-04-28T07:26:00.000+02:00" values="265.0 252.0 14.8 2.1 9.0 1004.7 71.2 197.703"/>
    <row dateTime="2014-04-28T07:41:00.000+02:00" values="308.0 304.0 15.3 2.1 9.0 1004.7 70.3 248.14"/>
    <row dateTime="2014-04-28T07:56:00.000+02:00" values="354.0 359.0 15.8 1.7 8.0 1004.6 69.4 301.096"/>
    <row dateTime="2014-04-28T08:11:00.000+02:00" values="403.0 420.0 16.4 1.7 8.0 1004.6 68.4 357.374"/>
    <row dateTime="2014-04-28T08:26:00.000+02:00" values="450.0 479.0 16.9 1.7 8.0 1004.7 66.0 411.019"/>
    <row dateTime="2014-04-28T08:41:00.000+02:00" values="497.0 544.0 17.5 1.7 8.0 1004.8 63.5 468.12"/>
    <row dateTime="2014-04-28T08:56:00.000+02:00" values="539.0 599.0 18.0 1.8 26.0 1004.8 61.0 515.073"/>
  ...
    <row dateTime="2014-04-28T23:41:00.000+02:00" values="0.0 0.0 14.1 2.9 353.0 1004.8 93.3 0.0"/>
    <row dateTime="2014-04-28T23:56:00.000+02:00" values="0.0 0.0 14.0 2.8 354.0 1004.8 93.3 0.0"/>
  </site>
</dataDeliveryResponse>