Often you want some subset of the data from the FCC BDC map.
That is a challenge. There is more than 2GB of data as each service location gets a record.
By downloading the data and grouping it we can make it more useable.
History
There are many versions of this data but this uses the latest “*FibertothePremises_fixed_broadband_J23_28nov2023.csv”
https://broadbandmap.fcc.gov/data-download
There is also data going back further under Form-477.
Example Data Processing
import pandas as pd
import glob
from shapely.geometry import Point
import h3
dfs = []
location_ids = []
for g in glob.glob('*FibertothePremises*.csv'):
print(g)
df = pd.read_csv(g)
df = df[df['business_residential_code'] != 'B']
groups = df.groupby('h3_res8_id')
cols = ['h3_8', 'brand_name', 'max_down', 'max_up', 'location_id']
output_df = []
for g, data in groups:
output_df.append([g, ','.join(
data.brand_name.unique()),
data.max_advertised_download_speed.max(),
data.max_advertised_upload_speed.max(),
set(data.location_id.unique())])
output_df = pd.DataFrame(output_df, columns=cols)
output_df['geometry'] = output_df['h3_8'].apply(lambda x: [Point(c[0], c[1]) for c in [h3.cell_to_latlng(x)[::-1]]][0])
dfs.append(output_df)