Skip to main content

Energy Data Delivery Guidelines


meteoblue offers localised power forecasts, such as the Renewable MOS, which are optimised through measurement data from a specific location by means of on-site weather stations. meteoblue uses these measurements solely for internal purposes, in accordance with the proprty rights of the data-owner, which will be specified in an individual business agreement.

To ensure a smooth process, we ask that data be provided via upload to our FTP servers, and in a simple CSV file format.

FTP Access

We will create a dedicated FTP account for you and send you the login credentials. You can either create folders within this account or upload files directly to the home folder.

Data Format

Ideally, the most current observations from all stations are to be submitted in a single file at least once per hour, more frequently if possible (e.g., every 15 minutes). To ensure data completeness, updates should be performed at least daily. The inclusion of additional time steps (e.g., the last 3 hours of observations) from all available stations is also beneficial.
This approach enhances data transfer reliability by compensating for any missing data and submitting duplicate values does not cause any issues.

  1. File structure: The file should be a true CSV file, using commas to separate individual values within a row no header and no footer.
  2. File submission: All stations should be included in one file or accessible with a single call. If a separate file for each station is necessary (not recommended), the file name should clearly state the Station ID (e.g., TESTID.csv).
  3. Order of data: The order of stations and time steps can be arbitrary. It is not necessary to group all time steps from the same station or to maintain a specific order in the time steps.
  4. StationID: This should contain only numbers and capital letters, with a length of approximately 8 alphanumeric characters. German "Umlaute" (ä, ö, ü) must be changed to "ae," "oe," and "ue" respectively.
  5. Timestamp: Timestamps should be in UTC format. If not, the format must be clearly specified.
  6. Decimal places: The number of decimal places in float values can vary for each entry.
  7. Scientific notation: Scientific notation (e.g., 5.0E02) is not to be used.
  8. Missing data: Set missing data values to -999.0.
  9. Rolling window: To prevent the FTP server from overloading, the updated file should consistently use the same name and must be periodically overwritten.
  10. Column names: Columns should be named as in the example below.

Example CSV structure: 

MYID3423,2020-12-31 10:00,45.3300,-107.234234,432.0,144.0,123.0,800.0
MYID3423,2020-12-31 11:00,45.3300,-107.234234,432.0,113.0,876.0,800.0
MYID3423,2020-12-31 12:00,45.3300,-107.234234,432.0,19.0,-999.0,800.0
MYID3423,2020-12-31 13:00,45.3300,-107.234234,432.0,65.0,90.0,800.0
MYID3423,2020-12-31 14:00,45.3300,-107.234234,432.0,163.4,-999.0,800.0
MYID3423,2020-12-31 15:00,45.3300,-107.234234,432.0,-999.0,-999.0,800.0
MYID3423,2020-12-31 16:00,45.3300,-107.234234,432.0,17.3,11.2,800.0
MYID3423,2020-12-31 17:00,45.3300,-107.234234,432.0,2.5,0.0,800.0
STATIONIDstring Unique identifier of the station, this should never change
TIMEstringUTC-TIME YYYY-MM-DD hh:mmSpecifying when the observation was taken
LATfloat° (WGS84 / GPS coordinates)Latitude of the station in decimal degrees, negative values for South (range -90 to 90)
LONfloat° (WGS84 / GPS coordinates)Longitude of the station in decimal degrees, negative values for West (range -180 to 180)
HEIGHTfloatm aslAltitude above sea level of the station, this is not the measurement height above ground
CAPACITYfloatkWhMaximum plant capacity

In case there is curtailment or interruption of plant operation, please add an additional column to your csv file called "CURTAILMENT", containing the values of the respective maximum peak power. For example, if the plant has 800 kWh capacity and is not active, the peak power will be 0. If it is 50% active, it will be 400 kWh, etc.

Example CSV structure: 

MYID3423,2020-12-31 10:00,45.3300,-107.234234,432.0,144.0,123.0,800.0,400.0
MYID3423,2020-12-31 11:00,45.3300,-107.234234,432.0,113.0,876.0,800.0,400.0
MYID3423,2020-12-31 12:00,45.3300,-107.234234,432.0,19.0,-999.0,800.0,800.0
MYID3423,2020-12-31 13:00,45.3300,-107.234234,432.0,65.0,90.0,800.0,800.0
MYID3423,2020-12-31 14:00,45.3300,-107.234234,432.0,163.4,-999.0,800.0,800.0
MYID3423,2020-12-31 15:00,45.3300,-107.234234,432.0,-999.0,-999.0,800.0,800.0
MYID3423,2020-12-31 16:00,45.3300,-107.234234,432.0,17.3,11.2,800.0,0.0
MYID3423,2020-12-31 17:00,45.3300,-107.234234,432.0,2.5,0.0,800.0,0.0

The variables should be named as seen in the Forecast API. When sending the data, please also provide the following metadata:

  1. Variable name: The name should indicate the type of measurement (e.g., PVPOWER, WINDPOWER).
  2. Measurement integration interval: Specify whether the measurements are backwards-looking or instantaneous.
  3. Units of measurement: Clearly state the units used.

If the variable names are not entirely self-explanatory, or if you have further information to add, please also provide a short variable description.