@@ -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