Skip to content

Commit 9364011

Browse files
committed
Update AG_REV staging CSV ingestion
1 parent 8c756a7 commit 9364011

1 file changed

Lines changed: 29 additions & 67 deletions

File tree

etl/tier_data/scripts/load_all_tier_results.py

Lines changed: 29 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -225,78 +225,40 @@ def load_ag_rev_data() -> Tuple[List[Dict], List[Dict]]:
225225
location_results = []
226226
tier_results = []
227227

228-
is_long_format = 'region' in df.columns and 'tier' in df.columns
229-
230-
if is_long_format:
231-
for scenario, group in df.groupby('scenario'):
232-
scenario = normalize_scenario_id(scenario)
233-
if scenario not in ALLOWED_SCENARIOS:
234-
continue
235-
236-
tier_sums = TierSums()
237-
display_order = 1
228+
scenario_col = df.columns[0]
229+
du_columns = [c for c in df.columns[1:] if c]
238230

239-
for _, row in group.iterrows():
240-
tier_continuous = float(row['tier'])
241-
tier = math.trunc(tier_continuous)
242-
tier_sums.add_value(tier_continuous)
243-
region = row['region']
244-
location_results.append({
245-
'scenario_short_code': scenario,
246-
'tier_short_code': 'AG_REV',
247-
'location_type': 'demand_unit',
248-
'location_id': region,
249-
'location_name': region,
250-
'tier_level': tier,
251-
'tier_value': 1,
252-
'tier_continuous': tier_continuous,
253-
'display_order': display_order,
254-
'_source_file': 'AG_REV.csv',
255-
})
256-
display_order += 1
231+
for _, row in df.iterrows():
232+
scenario = normalize_scenario_id(row[scenario_col])
233+
if scenario not in ALLOWED_SCENARIOS:
234+
continue
257235

258-
total = len(group)
259-
if total > 0:
260-
agg = _multi_value_aggregate(scenario, 'AG_REV', tier_sums.get_sums(), tier_sums.total_sum, tier_sums.total_count)
261-
agg['_source_file'] = 'AG_REV.csv'
262-
tier_results.append(agg)
263-
print(f" AG_REV.csv: long format, {len(set(r['scenario_short_code'] for r in tier_results))} scenarios")
264-
else:
265-
scenario_col = df.columns[0]
266-
du_columns = [c for c in df.columns[1:] if c]
267-
print(f" AG_REV.csv: wide format, {len(du_columns)} DU regions")
236+
tier_sums = TierSums()
268237

269-
for _, row in df.iterrows():
270-
scenario = normalize_scenario_id(row[scenario_col])
271-
if scenario not in ALLOWED_SCENARIOS:
238+
for du_id in du_columns:
239+
tier_val = row[du_id]
240+
if pd.isna(tier_val) or str(tier_val).strip().upper() == 'NA':
272241
continue
242+
tier_continuous = float(tier_val)
243+
tier = math.trunc(tier_continuous)
244+
tier_sums.add_value(tier_continuous)
245+
location_results.append({
246+
'scenario_short_code': scenario,
247+
'tier_short_code': 'AG_REV',
248+
'location_type': 'demand_unit',
249+
'location_id': du_id,
250+
'location_name': du_id,
251+
'tier_level': tier,
252+
'tier_value': 1,
253+
'tier_continuous': tier_continuous,
254+
'display_order': len(location_results) + 1,
255+
'_source_file': 'AG_REV.csv',
256+
})
273257

274-
tier_sums = TierSums()
275-
276-
for du_id in du_columns:
277-
tier_val = row[du_id]
278-
if pd.isna(tier_val) or str(tier_val).strip().upper() == 'NA':
279-
continue
280-
tier_continuous = float(tier_val)
281-
tier = math.trunc(tier_continuous)
282-
tier_sums.add_value(tier_continuous)
283-
location_results.append({
284-
'scenario_short_code': scenario,
285-
'tier_short_code': 'AG_REV',
286-
'location_type': 'demand_unit',
287-
'location_id': du_id,
288-
'location_name': du_id,
289-
'tier_level': tier,
290-
'tier_value': 1,
291-
'tier_continuous': tier_continuous,
292-
'display_order': len(location_results) + 1,
293-
'_source_file': 'AG_REV.csv',
294-
})
295-
296-
if tier_sums.total_count > 0:
297-
agg = _multi_value_aggregate(scenario, 'AG_REV', tier_sums.get_sums(), tier_sums.total_sum, tier_sums.total_count)
298-
agg['_source_file'] = 'AG_REV.csv'
299-
tier_results.append(agg)
258+
if tier_sums.total_count > 0:
259+
agg = _multi_value_aggregate(scenario, 'AG_REV', tier_sums.get_sums(), tier_sums.total_sum, tier_sums.total_count)
260+
agg['_source_file'] = 'AG_REV.csv'
261+
tier_results.append(agg)
300262

301263
print(f"AG_REV: {len(location_results)} location records, {len(tier_results)} scenario aggregates")
302264
return location_results, tier_results

0 commit comments

Comments
 (0)