def _prepare_data_map()

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": "%",
                        },
                    },
                },
            },
        }