Monthly Archives: July 2017

Extracting point forecasts from TIGGE-LAM grib archives

The European Centre for Medium Range Weather Forecasting (ECMWF) provides an archive of high-resolution forecasts generated by several limited-area numerical weather prediction models, as part of the TIGGE-LAM (The International Grand Global Ensemble – Limited Area Model) project. One of these forecast datasets is generated by HIRLAM, run by the Danish Meteorological Institute . The TIGGE-LAM datasets are freely available for research purposes from ECMWF.

For wind energy forecasting studies, the TIGGE-LAM datasets are preferable to more well-known numerical weather prediction datasets such as ERA-Interim because TIGGE-LAM contains pure forecasts at multiple lead times, rather than reanalysis data. The HIRLAM forecasts of TIGGE-LAM also have very high horizontal resolution (approximately 0.05 degrees in latitude and longitude). The wider TIGGE project is described in detail in [1].

The HIRLAM data is provided in GRIB format on a rotated lat/lon grid (south pole co-ordinate 40 degrees S, 10 degrees E). If you want to extract data for a particular point location you have to either (a)  transform the dataset to an “unrotated” grid, or (b) transform your particular co-ordinates to the HIRLAM grid. The second option, (b) seemed more expedient, and I found a very useful Matlab script, rotated_grid_transform() , by Simon Funder to do this.

Once the location was transformed to HIRLAM’s rotated grid co-ordinates  (and reverse transformed to check everything worked properly!) ,  I ran grib_ls with the “-l” command line option to extract the four nearest neighbouring grid cells’ values from the grib file.

Some other points to consider are:

(1) HIRLAM’s grid is Arakawa-C, so the grids for u and v are staggered.  I think this means that u and v should be separately spatially interpolated to the point of interest, but the spatial resolution of HIRLAM is good, so that for now I just took the nearest grid cell of each field (u and v).

(2) the wind direction calculated from u and v will be rotated because the native HIRLAM grid is rotated. Again, I’m not (currently) interested in wind directions (just wind speeds) so I didn’t try to “unrotate”  this .

[1] Swinbank, R.; Kyouda, M.; Buchanan, P.; Froude, L.; Hamill, T. M.; Hewson, T. D.; Keller, J. H.; Matsueda, M.; Methven, J.; Pappenberger, F.; Scheuerer, M.; Titley, H. A.; Wilson, L. & Yamaguchi, M. The TIGGE Project and Its Achievements.
Bulletin of the American Meteorological Society, 2016, 97, 49 – 67

Obtaining historic generator production data from SEM-O

The Single Electricity Market Operator for Ireland publishes a lot of useful data on its portal. You can view current and historic wholesale electricity prices, aggregate wind generation and wind forecasts, etc. Not only does SEM-O provide data, but it also provides a web interface which is very user-friendly, once you understand some of the Single Electricity Market’s terminology.
You can use SEM-O’s data browsing tools to view the past output, i.e. metered generation, of any individual generator unit on the Single Electricity Market.

Here’s an example:

1. First, register for an account with SEM-O.

2. Next, examine the list of generator unit ids to find the one you are interested in. Note that many power plants operate as more than one generator unit, so if you would like to know the total generation output of a plant, you need to know all the generator units associated with that plant. The generator unit id is a string field in the format “GU_xxxxxx” where xxxxxx is a six-digit number.

3. Now go to the Dynamic Reporting tool.

SEM-O dynamic report generator tool. SEM-O website is copyright 2017 SEMO, ROI: The Oval, 160 Shelbourne Road, Ballsbridge, Dublin 4.

4. Select Report Type: “Tables”; Report Group “Energy Data”; Report “Metered Generation by Unit”.

5. There are other fields you can use to filter your search to particular time ranges (“delivery days” in SEM-O terminology) in the format dd/mm/yyyy.

6. For run type select “EP2” (ex-post run 2).

7. One filter you need is the “Unit Name” — here you enter the generator unit id for the particular unit you are interested in.

8. Click on ‘pop-out report’ (make sure that your browser allows pop-up windows from

9. You can now view the data on-screen, or download a copy of your requested data. If the report is empty, then something has gone wrong. Check that your delivery date ranges and your generator unit value are valid.

10. Select a format to export (useful predefined formats offered include CSV, Excel and PDF) and click on the “Export” link.

SEM-O dynamic report pop-up window example. SEM-O website is copyright 2017 SEMO, ROI: The Oval, 160 Shelbourne Road, Ballsbridge, Dublin 4.

11. Interpreting the data columns: the generator unit is in the column headed “TYPE PART UNIT”. The Run Type (EP1 or EP2) is also recorded in a column. The delivery date refers to the date the energy was “delivered” from the unit to the market. Each hour in the SEM is partitioned into two half-hour delivery intervals, indicated as 1 and 2 in the “Delivery Interval” column. The final column, headed “MG” is metered generation. This is provided in energy units (i.e. MWh) so don’t forget to divide by the time interval (0.5 hour) if you would like to know the mean power output for the interval.