Skip to content

FCC Data Dictionary

Data dictionary for the geo team covering FCC station data and coverage contour polygons.


Data Sources

1. Station Database (DuckDB)

Property Value
Location ./db/cbradio.db
Format DuckDB database
Table station
Records 1,908 stations
FCC Coverage 1,563 stations (81.9%)

2. Coverage Contour Files

Property Value
Location ./fcc/data/contours/
Format GeoJSON (RFC 7946)
Naming {CALLSIGN}.json (e.g., WBCH_AM.json)
Projection WGS84 (EPSG:4326)
Geometry Polygon (closed ring, 361 points)

Database Schema

Station Table - FCC Columns

Column Type Description Example
fcc_facility_id VARCHAR Unique FCC facility identifier "55492"
fcc_frequency DECIMAL(10,3) Frequency in kHz (AM) or MHz (FM) 1230.000
fcc_power_kw DECIMAL(10,3) Transmit power in kilowatts 1.000
fcc_antenna_lat DECIMAL(10,6) Antenna latitude (WGS84) 35.163611
fcc_antenna_lon DECIMAL(10,6) Antenna longitude (WGS84) -114.070000
fcc_antenna_height_m DECIMAL(10,2) Antenna height above mean sea level (meters) 429.00
fcc_station_class VARCHAR FCC station classification "C"
fcc_hours_operation VARCHAR Hours of operation code "D"
fcc_ant_mode VARCHAR Antenna mode "ND1"
fcc_tower_count INTEGER Number of antenna towers 1
fcc_service_contour VARCHAR Contour filename (if available) "WBCH_AM.json"
fcc_last_synced TIMESTAMP Last FCC sync timestamp 2024-12-24 19:29:00

Station Table - Other Useful Columns

Column Type Description
id VARCHAR Internal UUID primary key
callsign VARCHAR Station callsign (e.g., WBCH-AM)
state VARCHAR Two-letter state code
nielsen_dma VARCHAR Nielsen DMA market name
owner VARCHAR Station owner/licensee

Enumerated Values

Station Class (fcc_station_class)

Class Description Typical Power
A Clear channel (AM) 10-50 kW
B Regional (AM/FM) 5-50 kW
C Local (AM) / High-power (FM) 0.25-100 kW
C0 FM subclass 100 kW
C1 FM subclass 100 kW
C2 FM subclass 50 kW
C3 FM subclass 25 kW
D Daytime only (AM) / Low-power (FM) 0.25-10 kW

Hours of Operation (fcc_hours_operation)

Code Description
U Unlimited (24/7)
D Daytime only
N Nighttime only

Antenna Mode (fcc_ant_mode)

Code Description
ND Non-directional
ND1 Non-directional (single pattern)
DA Directional antenna
DA1 Directional (single pattern)
DA2 Directional (day/night patterns)
DA-N Directional nighttime
DA-D Directional daytime

GeoJSON Contour Schema

File Structure

{
  "type": "Feature",
  "properties": {
    "callsign": "WBCH",
    "facility_id": 3990,
    "service_type": "am",
    "frequency": 1220.0,
    "power_kw": 0.25,
    "station_class": null,
    "antenna_lat": 42.626111,
    "antenna_lon": -85.278056
  },
  "geometry": {
    "type": "Polygon",
    "coordinates": [
      [
        [-85.278056, 43.031705],
        [-85.268372, 43.031643],
        ...
        [-85.278056, 43.031705]
      ]
    ]
  }
}

Properties

Property Type Description
callsign string Station callsign (without -AM/-FM suffix)
facility_id integer FCC facility identifier
service_type string "am" or "fm"
frequency number Frequency in kHz (AM) or MHz (FM)
power_kw number Transmit power in kilowatts
station_class string|null FCC station class
antenna_lat number Antenna latitude
antenna_lon number Antenna longitude

Geometry

  • Type: Polygon
  • Coordinates: Array of [longitude, latitude] pairs (GeoJSON order)
  • Points: 361 (360° coverage at 1° intervals, plus closing point)
  • Ring: Closed (first point = last point)
  • CRS: WGS84 (EPSG:4326)

Sample Queries

Get all stations with coordinates

SELECT
    callsign,
    fcc_facility_id,
    fcc_antenna_lat AS lat,
    fcc_antenna_lon AS lon,
    fcc_power_kw AS power,
    fcc_station_class AS class
FROM station
WHERE fcc_antenna_lat IS NOT NULL
ORDER BY fcc_power_kw DESC;

Get stations with contour files

SELECT
    callsign,
    fcc_service_contour AS contour_file,
    fcc_power_kw,
    state
FROM station
WHERE fcc_service_contour IS NOT NULL;

Export as GeoJSON points

SELECT json_object(
    'type', 'Feature',
    'properties', json_object(
        'callsign', callsign,
        'facility_id', fcc_facility_id,
        'power_kw', fcc_power_kw,
        'class', fcc_station_class
    ),
    'geometry', json_object(
        'type', 'Point',
        'coordinates', json_array(fcc_antenna_lon, fcc_antenna_lat)
    )
)
FROM station
WHERE fcc_antenna_lat IS NOT NULL;

Data Statistics

Metric Value
Total stations 1,908
Stations with FCC data 1,563 (81.9%)
Station classes 9 distinct values
Power range 0.065 - 100 kW
Average power 11.59 kW
Contour file size ~23 KB each

Generating Contour Files

To regenerate all contour GeoJSON files:

cd /home/bisenbek/projects/nominate/cbradio
source ~/.pyenv/versions/nominates/bin/activate
python -m fcc.sync --all --force

Note: This takes ~30 minutes due to FCC API rate limiting (1 req/sec).


API Source

All FCC data is sourced from:

FCC Contours API https://geo.fcc.gov/api/contours/entity.json

Parameters: - callsign - Station callsign (e.g., WBCH) - serviceType - am or fm


Contact

For questions about this data, contact the data engineering team.

Last updated: December 2024