Spatial Joins in QGIS
This week, I visualized broadband availability across Alabama at the census block group level using FCC broad band data. Here’s how I did it.
Step 1: Clean and Prepare the Data
I started with two FCC datasets: cable and fiber broadband availability, and a Census dataset for median income.
-
Merge FCC datasets: Using Python and pandas, I combined the cable and fiber datasets, extracting the first 12 digits of the
block_geoidto get the block group level, and calculated the maximum advertised download speed for each block group. -
Clean Census data: From the Census median income file, using python, I ignored rows with missing values (
-666666666) and constructed a 12-digit census block group GEOID by combining state, county, tract, and block group codes. -
Output: Two clean CSVs — one for max download speed per block group, and one for median income per block group.
Step 2: Load Data into QGIS
-
Loaded the Alabama census block group shapefile (
tl_2024_01_bg.shp). -
Imported the cleaned CSVs as tables (no geometry).
Step 3: Join Data to the Shapefile
-
Joined the broadband CSV and the Census income CSV to the shapefile using the 12-digit GEOID as the key.
-
After the join, each block group polygon had both maximum download speed and median income attributes.
Step 4: Visualize Broadband Speeds
-
Applied Graduated Symbology to the broadband field:
-
Column:
max_advertised_download_speed -
Mode: Natural Breaks (Jenks)
-
Classes: 4–5, with an appropriate color ramp (light → dark blue).
-
-
Verified numeric data and legend formatting to ensure the map rendered correctly
I did similar visualization of median income by census block groups in Alabama.
Result
The final map clearly highlights areas of high and low broadband availability across Alabama’s block groups, providing a spatial view of digital access in the state.
Comments
Post a Comment