Skip to content

Latest commit

 

History

History
194 lines (162 loc) · 9.04 KB

README.md

File metadata and controls

194 lines (162 loc) · 9.04 KB

cori.data.fcc

Codecov test coverage R-CMD-check

The goal of cori.data.fcc is to facilitate the discovery, analysis, and use of FCC public data releases.

The package provides access to data from the following sources:

Installation

You can install the development version of cori.data.fcc from GitHub with:

# install.packages("devtools")
devtools::install_github("ruralinnovation/cori.data.fcc")

::: {.callout-note} We were encountering problems with devtools::check() related to specific dependencies. Make sure to have the latest version of these packages:

  • waldo
  • duckdb :::

Examples

library(cori.data.fcc)

National Broadband Map

Key uses:

  • Access parquet files stored in a CORI s3 bucket, by county:
guilford_cty <- get_county_nbm_raw(geoid_co = "37081")
dplyr::glimpse(guilford_cty)
#> Rows: 1,337,541
#> Columns: 14
#> $ frn                           <chr> "0001857952", "0001857952", "0001857952"…
#> $ provider_id                   <chr> "130077", "130077", "130077", "130077", …
#> $ brand_name                    <chr> "AT&T", "AT&T", "AT&T", "AT&T", "AT&T", …
#> $ location_id                   <chr> "1344960789", "1344965855", "1344971572"…
#> $ technology                    <dbl> 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, …
#> $ max_advertised_download_speed <int> 10, 0, 10, 50, 50, 75, 50, 10, 50, 0, 10…
#> $ max_advertised_upload_speed   <int> 1, 0, 1, 10, 10, 20, 10, 1, 10, 0, 1, 5,…
#> $ low_latency                   <lgl> TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE…
#> $ business_residential_code     <chr> "X", "X", "X", "X", "X", "X", "X", "X", …
#> $ state_usps                    <chr> "NC", "NC", "NC", "NC", "NC", "NC", "NC"…
#> $ geoid_bl                      <chr> "370810161022008", "370810168003003", "3…
#> $ geoid_co                      <chr> "37081", "37081", "37081", "37081", "370…
#> $ file_time_stamp               <date> 2024-09-03, 2024-09-03, 2024-09-03, 202…
#> $ release                       <date> 2023-12-01, 2023-12-01, 2023-12-01, 202…
  • Access a CORI-opinionated, Census-block level version of the latest NBM release:
# get a county
nbm_bl <- get_nbm_bl(geoid_co = "47051")
dplyr::glimpse(nbm_bl)
#> Rows: 2,146
#> Columns: 21
#> $ geoid_bl                                <chr> "470519601001000", "4705196010…
#> $ geoid_st                                <chr> "47", "47", "47", "47", "47", …
#> $ geoid_co                                <chr> "47051", "47051", "47051", "47…
#> $ state_abbr                              <chr> "TN", "TN", "TN", "TN", "TN", …
#> $ cnt_total_locations                     <int> NA, NA, NA, NA, 8, NA, 8, 3, 1…
#> $ cnt_bead_locations                      <int> NA, NA, NA, NA, 0, NA, 0, 0, 0…
#> $ cnt_copper_locations                    <int> NA, NA, NA, NA, 0, NA, 0, 0, 0…
#> $ cnt_cable_locations                     <int> NA, NA, NA, NA, 0, NA, 0, 0, 0…
#> $ cnt_fiber_locations                     <int> NA, NA, NA, NA, 0, NA, 0, 0, 0…
#> $ cnt_other_locations                     <int> NA, NA, NA, NA, 0, NA, 0, 0, 0…
#> $ cnt_unlicensed_fixed_wireless_locations <int> NA, NA, NA, NA, 7, NA, 8, 3, 1…
#> $ cnt_licensed_fixed_wireless_locations   <int> NA, NA, NA, NA, 0, NA, 0, 0, 0…
#> $ cnt_LBR_fixed_wireless_locations        <int> NA, NA, NA, NA, 0, NA, 0, 0, 0…
#> $ cnt_terrestrial_locations               <int> NA, NA, NA, NA, 0, NA, 0, 0, 0…
#> $ cnt_25_3                                <int> NA, NA, NA, NA, 0, NA, 0, 0, 0…
#> $ cnt_100_20                              <int> NA, NA, NA, NA, 0, NA, 0, 0, 0…
#> $ cnt_100_100                             <int> NA, NA, NA, NA, 0, NA, 0, 0, 0…
#> $ cnt_distcint_frn                        <int> NA, NA, NA, NA, NA, NA, NA, NA…
#> $ array_frn                               <list> <NULL>, <NULL>, <NULL>, <NULL…
#> $ combo_frn                               <dbl> NA, NA, NA, NA, NA, NA, NA, NA…
#> $ release                                 <date> 2023-12-01, 2023-12-01, 2023-…

# get census block covered by an ISP identified by their FRN
skymesh <- get_frn_nbm_bl("0027136753")
dplyr::glimpse(skymesh)
#> Rows: 3
#> Columns: 21
#> $ geoid_bl                                <chr> "390375301004009", "3903755510…
#> $ geoid_st                                <chr> "39", "39", "39"
#> $ geoid_co                                <chr> "39037", "39037", "39109"
#> $ state_abbr                              <chr> "OH", "OH", "OH"
#> $ cnt_total_locations                     <int> 13, 7, 15
#> $ cnt_bead_locations                      <int> 13, 6, 15
#> $ cnt_copper_locations                    <int> 9, 2, 10
#> $ cnt_cable_locations                     <int> 10, 0, 0
#> $ cnt_fiber_locations                     <int> 13, 5, 2
#> $ cnt_other_locations                     <int> 0, 0, 0
#> $ cnt_unlicensed_fixed_wireless_locations <int> 13, 7, 15
#> $ cnt_licensed_fixed_wireless_locations   <int> 13, 6, 14
#> $ cnt_LBR_fixed_wireless_locations        <int> 11, 0, 0
#> $ cnt_terrestrial_locations               <int> 13, 6, 15
#> $ cnt_25_3                                <int> 13, 6, 14
#> $ cnt_100_20                              <int> 13, 5, 14
#> $ cnt_100_100                             <int> 13, 5, 5
#> $ cnt_distcint_frn                        <int> 9, 6, 8
#> $ array_frn                               <list> <"0002930980", "0004328688", "…
#> $ combo_frn                               <dbl> 1.241130e+19, 7.392885e+18, 6.…
#> $ release                                 <date> 2023-12-01, 2023-12-01, 2023-1…

Form 477

Access state data for multiple years:

f477_vt <- get_f477("VT")
dplyr::glimpse(f477_vt)
#> Rows: 1,147,267
#> Columns: 15
#> $ Provider_Id        <chr> "9395", "9395", "9395", "9395", "9395", "9395", "93…
#> $ FRN                <chr> "0021002092", "0021002092", "0021002092", "00210020…
#> $ ProviderName       <chr> "Stowe Cablevision, Inc.", "Stowe Cablevision, Inc.…
#> $ DBAName            <chr> "Stowe Access, LLC", "Stowe Access, LLC", "Stowe Ac…
#> $ HoldingCompanyName <chr> "Stowe Cablevision, Inc.", "Stowe Cablevision, Inc.…
#> $ HocoNum            <chr> "240090", "240090", "240090", "240090", "240090", "…
#> $ HocoFinal          <chr> "Stowe Cablevision, Inc.", "Stowe Cablevision, Inc.…
#> $ StateAbbr          <chr> "VT", "VT", "VT", "VT", "VT", "VT", "VT", "VT", "VT…
#> $ BlockCode          <chr> "500159531001026", "500159531001026", "500159531001…
#> $ TechCode           <chr> "42", "41", "50", "42", "41", "50", "42", "41", "50…
#> $ Consumer           <lgl> TRUE, TRUE, FALSE, TRUE, TRUE, FALSE, TRUE, TRUE, F…
#> $ MaxAdDown          <int> 25, 25, 0, 25, 25, 0, 25, 25, 0, 25, 25, 0, 25, 25,…
#> $ MaxAdUp            <int> 5, 5, 0, 5, 5, 0, 5, 5, 0, 5, 5, 0, 5, 5, 0, 5, 5, …
#> $ Business           <lgl> TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRU…
#> $ Date               <dttm> 2014-12-01, 2014-12-01, 2014-12-01, 2014-12-01, 20…

Utilities

Access the dictionary for each dataset:

dplyr::glimpse(get_fcc_dictionary())
#> Rows: 50
#> Columns: 5
#> $ dataset         <chr> "f477", "f477", "f477", "f477", "f477", "f477", "f477"…
#> $ var_name        <chr> "Provider_Id", "FRN", "ProviderName", "DBAName", "Hold…
#> $ var_type        <chr> "TEXT", "TEXT", "VARCHAR", "VARCHAR", "VARCHAR", "TEXT…
#> $ var_description <chr> "filing number (assigned by FCC)", "FCC registration n…
#> $ var_example     <chr> "8026", "0001570936", "Arctic Slope Telephone Associat…

The package also provides a list of Provider IDs and FRNs.

str(fcc_provider)
#> 'data.frame':    4456 obs. of  5 variables:
#>  $ provider_name : chr  "@Link Services, LLC" "1 Point Communications" "101Netlink" "123.Net, Inc" ...
#>  $ affiliation   : chr  "AtLink Services, LLC" "1 Point Communications" "101Netlink" "123.Net, Inc." ...
#>  $ operation_type: chr  "Non-ILEC" "Non-ILEC" "Non-ILEC" "Non-ILEC" ...
#>  $ frn           : chr  "0016085920" "0021352968" "0018247254" "0008590846" ...
#>  $ provider_id   : num  290004 270002 190002 460000 490000 ...

Inspiration

This package was inspired by https://github.com/bbcommons/bfm-explorer

Footnotes

  1. This data describes what internet services are available to individual locations across the country, along with new maps of mobile coverage, as reported by Internet Service Providers (ISPs). It is part of the FCC’s ongoing Broadband Data Collection).