NREL / Wattile

Deep Learning-based Forecasting of Building Energy Consumption
BSD 3-Clause "New" or "Revised" License
9 stars 0 forks source link

Update data JSON from Haystack v3 to Haystack v4 #107

Open stephen-frank opened 2 years ago

stephen-frank commented 2 years ago

Update the input data configuration JSON to Haystack version 4. Affects...

stephen-frank commented 2 years ago

Removing low-priority tag; I think this is going to become higher priority.

stephen-frank commented 2 years ago

@anyaelena, @haneslinger Haystack JSON v4 aka "Hayson" has native encoding of numbers when they are unitless, but when they do have units the encoding looks like this:

{ "_kind": "number", "val": 123, "unit": "m" }

I think it is beneficial to keep the encoding as non-Haystack-specific as possible, however, it still has to be something SkySpark can read. We will have numeric data to encode in the output JSON e.g. data_config that has an associated unit. Options I see are:

  1. Use the Haystack 4 encoding to capture the unit.
  2. Capture the unit info in some other way, e.g. a top-level time_units tag or some such, and rely on the nrelWattileExt SkySpark package to properly interpret the JSON.
  3. Always use a consistent standard unit; don't let the user select units. Don't capture unit info at all in the JSON, but cover it in the documentation. (If we go this route, the logical thing for standardization would be to use SI units, that is, seconds.)

I'm leaning toward some version of 2, but let me know your thoughts.