in gemini/agents/research-multi-agents/ev_agent/agent_handler/agent_05_ReportAgent.py [0:0]
def _prepare_data_map(self, city_data) -> Dict:
"""Prepare complete data mapping with paths."""
summary = city_data.summary
ev_data = city_data.ev_data
return {
"infrastructure": {
"area_metrics": {
"total_area": {
"value": f"{summary.area_metrics.total_area_sqkm:.2f}",
"path": "summary.area_metrics.total_area_sqkm",
"unit": "sq km",
},
"water_area": {
"value": f"{summary.area_metrics.water_area_sqkm:.2f}",
"path": "summary.area_metrics.water_area_sqkm",
"unit": "sq km",
},
"green_area": {
"value": f"{summary.area_metrics.green_area_sqkm:.2f}",
"path": "summary.area_metrics.green_area_sqkm",
"unit": "sq km",
},
"built_area": {
"value": f"{summary.area_metrics.built_area_sqkm:.2f}",
"path": "summary.area_metrics.built_area_sqkm",
"unit": "sq km",
},
},
"roads": {
"motorways": {
"value": str(summary.roads.motorways),
"path": "summary.roads.motorways",
"unit": "roads",
},
"trunks": {
"value": str(summary.roads.trunks),
"path": "summary.roads.trunks",
"unit": "roads",
},
"primary": {
"value": str(summary.roads.primary_roads),
"path": "summary.roads.primary_roads",
"unit": "roads",
},
"secondary": {
"value": str(summary.roads.secondary_roads),
"path": "summary.roads.secondary_roads",
"unit": "roads",
},
"tertiary": {
"value": str(summary.roads.tertiary_roads),
"path": "summary.roads.tertiary_roads",
"unit": "roads",
},
"residential": {
"value": str(summary.roads.residential_roads),
"path": "summary.roads.residential_roads",
"unit": "roads",
},
"service": {
"value": str(summary.roads.service_roads),
"path": "summary.roads.service_roads",
"unit": "roads",
},
},
"transport": {
"bus_stops": {
"value": str(summary.transport.bus_stops),
"path": "summary.transport.bus_stops",
"unit": "stops",
},
"train_stations": {
"value": str(summary.transport.train_stations),
"path": "summary.transport.train_stations",
"unit": "stations",
},
"bus_stations": {
"value": str(summary.transport.bus_stations),
"path": "summary.transport.bus_stations",
"unit": "stations",
},
"bike_rental": {
"value": str(summary.transport.bike_rental),
"path": "summary.transport.bike_rental",
"unit": "locations",
},
},
"buildings": {
"residential": {
"value": str(summary.buildings.residential),
"path": "summary.buildings.residential",
"unit": "buildings",
},
"apartments": {
"value": str(summary.buildings.apartments),
"path": "summary.buildings.apartments",
"unit": "buildings",
},
"commercial": {
"value": str(summary.buildings.commercial),
"path": "summary.buildings.commercial",
"unit": "buildings",
},
"retail": {
"value": str(summary.buildings.retail),
"path": "summary.buildings.retail",
"unit": "buildings",
},
"industrial": {
"value": str(summary.buildings.industrial),
"path": "summary.buildings.industrial",
"unit": "buildings",
},
"office": {
"value": str(summary.buildings.office),
"path": "summary.buildings.office",
"unit": "buildings",
},
"government": {
"value": str(summary.buildings.government),
"path": "summary.buildings.government",
"unit": "buildings",
},
},
"retail": {
"malls": {
"value": str(summary.retail.malls),
"path": "summary.retail.malls",
"unit": "buildings",
},
"supermarkets": {
"value": str(summary.retail.supermarkets),
"path": "summary.retail.supermarkets",
"unit": "stores",
},
"shopping_centres": {
"value": str(summary.retail.shopping_centres),
"path": "summary.retail.shopping_centres",
"unit": "locations",
},
},
"parking": {
"structures": {
"value": str(summary.parking.parking_structures),
"path": "summary.parking.parking_structures",
"unit": "structures",
},
"surface": {
"value": str(summary.parking.surface_parking),
"path": "summary.parking.surface_parking",
"unit": "lots",
},
"bike_parking": {
"value": str(summary.parking.bike_parking),
"path": "summary.parking.bike_parking",
"unit": "locations",
},
"ev_charging": {
"value": str(summary.parking.ev_charging),
"path": "summary.parking.ev_charging",
"unit": "stations",
},
},
},
"ev_infrastructure": {
"overview": {
"total_stations": {
"value": str(ev_data.metadata["total_stations"]),
"path": "ev_data.metadata.total_stations",
"unit": "stations",
},
"city_area": {
"value": f"{ev_data.metadata['city_area_square_miles']:.2f}",
"path": "ev_data.metadata.city_area_square_miles",
"unit": "sq miles",
},
},
"charging_capabilities": {
"dc_fast": {
"value": str(
ev_data.charging_capabilities.by_type["dc_fast"].count
),
"path": "ev_data.charging_capabilities.by_type.dc_fast",
"unit": "chargers",
"ports": str(
ev_data.charging_capabilities.by_type["dc_fast"].total_ports
),
},
"level2": {
"value": str(
ev_data.charging_capabilities.by_type["level2"].count
),
"path": "ev_data.charging_capabilities.by_type.level2",
"unit": "chargers",
"ports": str(
ev_data.charging_capabilities.by_type["level2"].total_ports
),
},
"level1": {
"value": str(
ev_data.charging_capabilities.by_type["level1"].count
),
"path": "ev_data.charging_capabilities.by_type.level1",
"unit": "chargers",
"ports": str(
ev_data.charging_capabilities.by_type["level1"].total_ports
),
},
},
"accessibility": {
"24_7_access": {
"value": f"{ev_data.accessibility.access_type['24_7_access']['percentage']:.1f}",
"path": "ev_data.accessibility.access_type.24_7_access.percentage",
"unit": "%",
},
"public_access": {
"value": f"{ev_data.accessibility.access_type['public']['percentage']:.1f}",
"path": "ev_data.accessibility.access_type.public.percentage",
"unit": "%",
},
"payment_methods": {
"credit_card": {
"value": f"{ev_data.accessibility.payment_methods['credit_card']['percentage']:.1f}",
"path": "ev_data.accessibility.payment_methods.credit_card.percentage",
"unit": "%",
},
"mobile_pay": {
"value": f"{ev_data.accessibility.payment_methods['mobile_pay']['percentage']:.1f}",
"path": "ev_data.accessibility.payment_methods.mobile_pay.percentage",
"unit": "%",
},
},
},
"network_analysis": {
"networks": [
{
"name": net.name,
"count": str(net.station_count),
"percentage": f"{net.percentage:.1f}",
}
for net in ev_data.network_analysis.networks
],
"pricing": {
"free": {
"value": f"{ev_data.network_analysis.pricing_types['free']['percentage']:.1f}",
"path": "ev_data.network_analysis.pricing_types.free.percentage",
"unit": "%",
},
"paid": {
"value": f"{ev_data.network_analysis.pricing_types['paid']['percentage']:.1f}",
"path": "ev_data.network_analysis.pricing_types.paid.percentage",
"unit": "%",
},
},
},
"station_age": {
"more_than_3_years": {
"value": f"{ev_data.station_age.age_distribution['more_than_3_years']['percentage']:.1f}",
"path": "ev_data.station_age.age_distribution.more_than_3_years.percentage",
"unit": "%",
},
"last_verified": {
"last_30_days": {
"value": f"{ev_data.station_age.last_verified['last_30_days']['percentage']:.1f}",
"path": "ev_data.station_age.last_verified.last_30_days.percentage",
"unit": "%",
},
"last_90_days": {
"value": f"{ev_data.station_age.last_verified['last_90_days']['percentage']:.1f}",
"path": "ev_data.station_age.last_verified.last_90_days.percentage",
"unit": "%",
},
},
},
},
}