EMD-API - Wind Energy Index Service
Introduction
The wind-energy-index service is available as a global service - providing reliable wind-index information for any part of the world. The service is available from a REST / OPENAPI interface. This page describes how to install the service - and how to consume it from a python client. Resources for the OpenAPI standard and the data model are here:
- OpenAPI-standard - at Swagger / Smartbear
- OpenAPI Specification and Data Model - at GitHub.
Please note:
- This EMD-API introduction is aimed at programmers, modellers or analysts who are working with machine-driven interfaces and workflows, typically using programming languages like python or R.
- Also note, that we provide a python (jupyter notebook) example to get you kick-started in using our API-services and to integrate towards your own services and tools.
Access
The API is currently (December 2020) in beta-release. To see more documentation and to access the data-services, please visit the API through the following URL's:
- EMD-API Overview (Wiki) - here.
- EMD-API Main Page (API) - here.
- EMD-API Wind Energy Index UI (API) - here.
Any tehnical questions on our Wind Energy Index Services can be addressed to our Senior Wind Energy Consultant Henrik S. Pedersen: hsp@emd.dk.
Data Model - Wind Energy Index Service
The EMD wind-energy-index service is documented in a REST based API using the OpenAPI Specification. You can view the interfaces and download the interfaces as json or yaml, here. The service provides the following functionality:
- List Turbines: Available turbines with their identification ID. The list is private and will return all turbines connected to your account.
- Turbine Details: Name, data-availability, hub-height, position-latitude, position-longitude, power-curve, control-strategy, rated-power, training-start, training-end, time-zone.
- Wind Energy Index Data: Month-wind-index, month-anomaly-index, month-predicted-production, 3-month-running-average-index, 12-month-running-average-index
- Request data for all months between 1990 and present
- Request data for specific month between 1990 and present
Reference index period is the 15-year period from 2004-2018 (both years inclusive).
Python - Installation
The simplest way to use the EMDAPI with python is to install the client software in a virtual environment. If you are using CONDA or MINICONDA, we recommend that you create a new virtual environment and use a recent 3.x version of python. When the virtual environment is created, then activate the environment.
Open your Anaconda Prompt. Copy-paste the following lines:
conda create -n emdapiwindindex python=3.8.5 conda activate emdapiwindindex
Install the required packages needed in order to do data-science and use the examples provided within the jupyter notebooks. We have have validated this setup using specific package versions (used in the commands below).
In the Anaconda Prompt, copy-paste the following lines, one by one:
conda install -c conda-forge pandas=1.1.0 numpy=1.19.1 conda install -c conda-forge jupyter=1.0.0 ipykernel=5.3.4
Download the zip-file holding the OpenAPI python client for the emdapi wind-index-service.
Unpack the file and install it within your virtual environment:
In the Anaconda Prompt: Move to the folder, where you have unpacked the zipped file. Copy-paste the following line:
python setup.py install
Make sure that the new emdapi virtual enviroment (python-kernel) is available to be used with jupyter-notebook environment:
python -m ipykernel install --user --name=emdapiwindindex
Client Software Other Languages and Tools
REST and OpenAPI is easily consumed from a lot of software tools it is perfectly possible that your preferred language is supported. OpenAPI works well with languages such as - but not limited to - C#, R, python, java, php, scala and swift. Just download the YAML or JSON service description and use the Swagger Editor or OpenAPI Generator to generate the client libraries for your preferred software. Then you are ready to integrate towards your preferred systems and workflows.
To generate the client libries yourself - one possible process is to: