eya_def

A digital format for exchange of wind energy yield assessment reporting information as defined by IEC 61400-15-2

https://github.com/iec-61400-15/eya_def

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.7%) to scientific vocabulary

Keywords

data-exchange digitalisation energy-yield-assessment json json-schema reporting wind-energy wind-energy-analytics
Last synced: 6 months ago · JSON representation ·

Repository

A digital format for exchange of wind energy yield assessment reporting information as defined by IEC 61400-15-2

Basic Info
  • Host: GitHub
  • Owner: IEC-61400-15
  • License: bsd-3-clause
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 2.01 MB
Statistics
  • Stars: 13
  • Watchers: 8
  • Forks: 1
  • Open Issues: 16
  • Releases: 0
Topics
data-exchange digitalisation energy-yield-assessment json json-schema reporting wind-energy wind-energy-analytics
Created over 3 years ago · Last pushed 9 months ago
Metadata Files
Readme License Citation

README.md

The IEC 61400-15-2 EYA DEF

EYA DEF tools linting and testing Checked with mypy Ruff pre-commit

The IEC 61400-15-2 Wind Energy Yield Assessment Digital Exchange Format (EYA DEF) defines a complementary format for energy yield assessment reporting to the main written report, aimed at facilitating automated solutions for data exchange. It is organised as a deeply nested hierarchical data model and published in the form of a JSON Schema. Whereas the written EYA report provides an effective narrative for a human reader, the EYA DEF provides the clear definitions of namespace, structure and format required for computer systems to exchange energy yield assessment data. It provides a standard protocol for data exchange, so that producers and consumers of the data have a common and clear definition of the data structure and meaning of data fields. The JSON Schema also facilitates data validation, so that the receiver of EYA DEF data automatically can validate that the data is fully compliant with the data model specification.

This repo provides all source data files for the EYA DEF, along with associated material and tools, as well as serving as the platform for development work.

This README file only briefly covers some key topics for convenient reference. Full details will be provided at a separate documentation site, which still needs to be developed.

Status

Please note that the EYA DEF is currently in draft status and will be subject to extension and modification. Some elements are currently incomplete. Please see the issues page for details of open items.

We welcome new people to get involved in the development work.

Aims and use cases

The EYA DEF aims to facilitate the following:

  • data sharing with a wider range of stakeholders in an automated fashion;
  • securing of data traceability and accuracy;
  • integration with systems that process EYA data, such as financial model software;
  • comparison of EYA results from different parties, for example from different third-party consultants; and
  • automated generation of reporting tables.

For example, if a project developer receives EYA DEF JSON documents from its independent consultants, the data can immediately be loaded into the relevant internal databases and applications, and the results compared between the different consultants and with internal findings. Then the developer can share the EYA DEF JSON documents with lenders, investors and any other financial institutions who require the information to evaluate the project. They in turn will all be able to pull the data they need into the relevant applications without the requirement for any manual data processing. The same goes for other project stakeholders who require EYA reporting data.

It is also expected that the EYA DEF data models will provide a helpful reference for companies developing energy yield assessment software. Whilst the data models used internally in such software of course do not need to mirror the EYA DEF in order to be able to export results in EYA DEF format, the EYA DEF data models may in some circumstances prove useful and avoid the need for completely new designs of data models.

The EYA DEF JSON Schema

The latest version of EYA DEF JSON Schema is available here here. The JSON Schema is the primary definition of the EYA DEF data model.

Example EYA DEF JSON documents

Examples of JSON document files that implement (comply with) the JSON Schema are found here.

Python package

This repo includes the Python package eyadeftools, which provides a convenient interface for working with the EYA DEF data model in a Python environment. It has a separate README file, which is located here.

Schema diagrams

The Python package (see below) uses erdantic to generate graphical representations of the pydantic data model. Note that the data types shown in the diagrams are the Python types defined in the pydantic data model and not the JSON Schema types.

The top levels of the current draft of the data model is illustrated below.

data_model_top_levels_diagram

Basic example of format

The text below shows an example of a small subset of energy yield assessment reporting data from a title page, in unstructured form.

```text Barefoot Wind Farm EYA

Document ID.: 12345678, version B 7th of October 2023

Confidential Prepared for Miranda Investments Limited ```

The equivalent data is represented in structured EYA DEF JSON format below. Each piece of information appears together with a standard field name.

json { "confidentiality_classification": "Confidential", "document_id": "12345678", "document_version": "B", "issue_date": "2023-10-07", "project_name": "Barefoot Wind Farm", "receiving_organisations": [ { "abbreviation": "Miranda", "address": "9 Acosta St., Republic of Miranda", "contact_name": "Luis Bunuel", "name": "Miranda Investments Limited" } ], "title": "Barefoot Wind Farm EYA", }

Data security and integrity

The EYA DEF specification and toolset in this repo covers the schema content and imposes no requirements with regards to technology for data transmission and storage, or protocols for digital signatures and encryption. In the simplest form of data exchange, an EYA DEF document may simply be transmitted as a JSON text data file attached to an email together with the main written report. It is however expected that secure APIs for EYA DEF documents will be developed to automate the data exchange process and provide comprehensive functionality to ensure data security and integrity. The user of this standard should adopt appropriate best practices to ensure data security and integrity in transmission and storage of EYA DEF data. Adherence to such best practices will minimise the risk for data manipulation or unauthorised access. It is recommended that encoding and compression of the data be specified at the point of access (for example in the API specification).

Developer guidance

For guidance related to tools and processes for development work, see the Python package README. The Python package forms an integral part of the development workflow.

Acknowledgements

The EYA DEF has been developed with contributions from the following people: Christian Jonsson, Stephen Holleran, Jason Fields, Charlie Plumley, Bjarke Olsen, Alina Brenneke, Philippe Beaucage, Mark Stoelinga, Andrew Henderson, Mark Kelly, Steve Clark, Thomas van Delft, Craig Robinson, Lars Levermann, Jan Heinen, Nikolaos Simisiroglou, Andres Blanco, Jonny Crease, Roy Spence, Demetrios Zigras, Mouhamet Diallo, Mitchel Scott, Steve Cordle and Okan Sargin.

Owner

  • Name: IEC 61400-15
  • Login: IEC-61400-15
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use the schema and/or software in this repository, please cite them as below."
authors:
- family-names: "Jonsson"
  given-names: "Christian"
  orcid: "https://orcid.org/0009-0001-8891-1276"
title: "The IEC 61400-15-2 Wind Energy Yield Assessment Digital Exchange Format (EYA DEF)"
url: "https://github.com/IEC-61400-15/eya_def"

GitHub Events

Total
  • Create event: 6
  • Issues event: 25
  • Watch event: 2
  • Delete event: 8
  • Member event: 2
  • Issue comment event: 17
  • Push event: 21
  • Pull request review event: 38
  • Pull request review comment event: 36
  • Pull request event: 12
  • Fork event: 1
Last Year
  • Create event: 6
  • Issues event: 25
  • Watch event: 2
  • Delete event: 8
  • Member event: 2
  • Issue comment event: 17
  • Push event: 21
  • Pull request review event: 38
  • Pull request review comment event: 36
  • Pull request event: 12
  • Fork event: 1

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 13
  • Total pull requests: 6
  • Average time to close issues: 4 months
  • Average time to close pull requests: about 1 month
  • Total issue authors: 1
  • Total pull request authors: 1
  • Average comments per issue: 0.69
  • Average comments per pull request: 1.0
  • Merged pull requests: 6
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 12
  • Pull requests: 6
  • Average time to close issues: 3 months
  • Average time to close pull requests: about 1 month
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 0.58
  • Average comments per pull request: 1.0
  • Merged pull requests: 6
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • jonssonchristian (23)
  • WindyMark3 (1)
  • SimonHH (1)
Pull Request Authors
  • jonssonchristian (10)
Top Labels
Issue Labels
enhancement (17) question (6) bug (2) good first issue (2) help wanted (1)
Pull Request Labels
enhancement (8) bug (1)

Dependencies

.github/workflows/eya-def-tools-python-package.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
eya_def_tools/pyproject.toml pypi
eya_def_tools/requirements-dev.txt pypi
  • black ==24.4.2 development
  • flake8 ==7.0.0 development
  • isort ==5.13.2 development
  • mypy ==1.10.0 development
  • pip_audit ==2.7.2 development
  • pre-commit ==3.7.0 development
  • pytest-cov ==5.0.0 development
  • sphinx ==7.3.7 development
  • types-jsonschema ==4.21.0.20240331 development
eya_def_tools/requirements-erd.txt pypi
  • erdantic ==0.7.0
  • pygraphviz ==1.12
eya_def_tools/requirements.txt pypi
  • email-validator ==2.1.1
  • jsonschema ==4.21.1
  • pandas ==2.2.1
  • pandas-stubs ==2.2.1.240316
  • pycountry ==23.12.11
  • pydantic ==2.7.1
  • pytest ==8.2.0
  • ruamel.yaml ==0.18.6