Type
implementation | Priority: p0
Depends on
- #IFACE-004
- #IFACE-009
- #IFACE-010
- #IMPL-001
- #DATA-001
Scope
- Touch:
packages/data/src/data/ (all files)
- Do not touch: any other package
Description
Implement load_pjm(), fetch_weather(), and build_features(). Also implement scripts/download_pjm.py CLI (currently missing from repo). Resolve the 2022–2024 data source issue from DATA-001.
Acceptance Criteria
Type
implementation| Priority:p0Depends on
Scope
packages/data/src/data/(all files)Description
Implement
load_pjm(),fetch_weather(), andbuild_features(). Also implementscripts/download_pjm.pyCLI (currently missing from repo). Resolve the 2022–2024 data source issue from DATA-001.Acceptance Criteria
load_pjm()handles DST deduplication as decided in DATA-001fetch_weather()returns allOPENMETEO_HOURLY_VARSfor each regionbuild_features()produces all tier-1, tier-2, tier-3 columns per catalogvalidate_dataset()passes on the joined load + weather DataFrameopenmeteo-requestsSDK used (FlatBuffers binary encoding, faster than JSON)