NREL / OpenOA

This library provides a framework for assessing wind plant performance using operational assessment (OA) methodologies that consume time series data from wind plants. The goal of the project is to provide an open source implementation of common data structures, analysis methods, and utility functions relevant to wind plant OA.
https://openoa.readthedocs.io/
BSD 3-Clause "New" or "Revised" License
182 stars 62 forks source link

Documentation - IEC tag usage and reference #286

Open charlie9578 opened 5 months ago

charlie9578 commented 5 months ago

I think in the documentation we should refer explicitly to the IEC tags and where to find them. As when editing the inputs to allow the Cubico data to run on the SYE analysis, I wasn't sure what I should be labelling the nacelle position as.

charlie9578 commented 5 months ago

A follow up...

I would have expected when I create a yaml file all mappings would be used, not just the ones that have been defined specifically in OpenOA. Why I'm thinking this is important is because if I have some variables mapped to the IEC tags using the yaml, but have to do the others manually, I'll have to do the job twice, or otherwise have some variables mapped and others not.

A work around is to add these two lines, but its not clean, and I'm not sure including the full IEC tag list is best either, but would force consistency.

Any thoughts on what we can do?

mappings = yaml.safe_load(Path("data/kelmarsh/plant_meta.yml").read_text())

project.scada = project.scada.rename(columns=dict((v, k) for k, v in mappings["scada"].items()))

YAML mappings image

Partially mapped SCADA columns image

RHammond2 commented 5 months ago

Thanks for flagging this, @charlie9578! The main issue here is that the remapping of columns is done through the metadata classes col_map and col_map_reversed like in SCADAMetaData. Essentially to avoid confusion with other variables present we defined the col_map that will be used to determine which columns to check and transform.

However, this does raise a good case where there should be the ability to define further columns for checking and converting. I don't think we'll have a fix for this in the near term, but you will want to ensure you're skipping the fields: name, frequency, dtypes, units, col_map, and col_map_reversed in your renaming (can't remember if it'll fail with nonexistent keys).

For now, I'd recommend using a custom version that expands the metadata classes you're using if you're aiming to avoid the extra read and map steps.

charlie9578 commented 5 months ago

Thanks Rob. For now I've done the IEC mappings within the Cubico project setup, which does mean mappings are lost in the PlantData, but seemed easier for now. Once I've settled on the signals I'll add them to the SCADAMetaData.

RHammond2 commented 4 months ago

Glad you were able to get this working on your end, and I'll keep this open until we implement a long-term solution to use cases like this.