def METHOD_NAME(self, session):
    """Count radio sources by region"""
    columns = CellArea.__table__.c
    cells = session.execute(
        select([columns.region, columns.radio, func.sum(columns.num_cells)])
        .where(columns.region.isnot(None))
        .group_by(columns.region, columns.radio)
    ).fetchall()
    default = {"gsm": 0, "wcdma": 0, "lte": 0, "blue": 0, "wifi": 0}
    counts = {}
    for region, radio, num in cells:
        if region not in counts:
            counts[region] = default.copy()
        counts[region][radio.name] = int(num)
    for name, shard_model in (("blue", BlueShard), ("wifi", WifiShard)):
        for shard in shard_model.shards().values():
            columns = shard.__table__.c
            stations = session.execute(
                select([columns.region, func.count()])
                .where(columns.region.isnot(None))
                .group_by(columns.region)
            ).fetchall()
            for region, num in stations:
                if region not in counts:
                    counts[region] = default.copy()
                counts[region][name] += int(num)
    return counts