Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| bf9aa3fb24 | |||
| 5b234aa7ba |
+90
-13
@@ -8,27 +8,104 @@ library(tidyr)
|
|||||||
library(janitor)
|
library(janitor)
|
||||||
library(USAboundaries)
|
library(USAboundaries)
|
||||||
|
|
||||||
|
# Update local database
|
||||||
|
system("cd python3 fccULSloader/src/fcc_tool.py --update")
|
||||||
|
|
||||||
|
# Get current date
|
||||||
|
now <- Sys.Date()
|
||||||
|
|
||||||
con <- dbConnect(SQLite(), "fccULSloader/src/data/fcc_data.db")
|
con <- dbConnect(SQLite(), "fccULSloader/src/data/fcc_data.db")
|
||||||
|
|
||||||
am <- tbl(con, "AM")
|
am <- tbl(con, "AM")
|
||||||
en <- tbl(con, "EN")
|
en <- tbl(con, "EN")
|
||||||
|
|
||||||
a <- dbGetQuery(con, "SELECT COUNT(*) FROM EN LEFT JOIN HD ON
|
a_raw <- dbGetQuery(con, "SELECT COUNT(*) FROM EN LEFT JOIN HD ON
|
||||||
EN.unique_system_identifier = HD.unique_system_identifier
|
EN.unique_system_identifier = HD.unique_system_identifier
|
||||||
WHERE license_status = 'A';") #%>%
|
WHERE license_status = 'A';")
|
||||||
#janitor::clean_names() %>%
|
|
||||||
#head(2)
|
|
||||||
#filter(status_code == "A") %>%
|
|
||||||
#summarize(count = n()) #%>%
|
|
||||||
#collect()
|
|
||||||
|
|
||||||
print(a)
|
total_active <- a_raw %>% rename(count = `COUNT(*)`) %>%
|
||||||
|
mutate(state_name = "TOTAL")
|
||||||
|
|
||||||
b <- dbGetQuery(con, "SELECT UPPER(state), COUNT(*) FROM EN LEFT JOIN HD ON
|
print(total_active)
|
||||||
|
|
||||||
|
# Query active licenes by state
|
||||||
|
b_raw <- dbGetQuery(con, "SELECT UPPER(state), COUNT(*) FROM EN LEFT JOIN HD ON
|
||||||
EN.unique_system_identifier = HD.unique_system_identifier
|
EN.unique_system_identifier = HD.unique_system_identifier
|
||||||
WHERE license_status = 'A'
|
WHERE license_status = 'A'
|
||||||
GROUP BY UPPER(state);") %>%
|
GROUP BY UPPER(state);")
|
||||||
left_join(state_codes %>% filter(state_abbr != ""),
|
|
||||||
by = c("UPPER(state)" = "state_abbr"))
|
active_by_state <- b_raw %>%
|
||||||
|
left_join(state_codes %>% filter(state_abbr != ""),
|
||||||
|
by = c("UPPER(state)" = "state_abbr")) %>%
|
||||||
|
rename(abbrev = `UPPER(state)`,
|
||||||
|
count = `COUNT(*)`) %>%
|
||||||
|
mutate(state_name = case_when(abbrev == "AA" ~ "Armed Forces America",
|
||||||
|
abbrev == "AE" ~ "Armed Forces Europe",
|
||||||
|
abbrev == "AP" ~ "Armed Forces Pacific",
|
||||||
|
abbrev == "VI" ~ "Virgin Islands",
|
||||||
|
abbrev == "UM" ~ "US Minor Islands",
|
||||||
|
abbrev == "" ~ "Other*",
|
||||||
|
TRUE ~ state_name)) %>%
|
||||||
|
bind_rows(total_active)
|
||||||
|
|
||||||
|
print(active_by_state)
|
||||||
|
|
||||||
|
# Query active licenes by state, by class
|
||||||
|
d_raw <- dbGetQuery(con, "SELECT UPPER(state), operator_class, COUNT(*) FROM EN LEFT JOIN HD ON
|
||||||
|
EN.unique_system_identifier = HD.unique_system_identifier LEFT JOIN AM ON
|
||||||
|
EN.unique_system_identifier = AM.unique_system_identifier
|
||||||
|
WHERE license_status = 'A'
|
||||||
|
GROUP BY UPPER(state), operator_class;")
|
||||||
|
|
||||||
|
active_state_class <- d_raw %>%
|
||||||
|
left_join(state_codes %>% filter(state_abbr != ""),
|
||||||
|
by = c("UPPER(state)" = "state_abbr")) %>%
|
||||||
|
rename(abbrev = `UPPER(state)`,
|
||||||
|
count = `COUNT(*)`) %>%
|
||||||
|
mutate(state_name = case_when(abbrev == "AA" ~ "Armed Forces America",
|
||||||
|
abbrev == "AE" ~ "Armed Forces Europe",
|
||||||
|
abbrev == "AP" ~ "Armed Forces Pacific",
|
||||||
|
abbrev == "VI" ~ "Virgin Islands",
|
||||||
|
abbrev == "UM" ~ "US Minor Islands",
|
||||||
|
abbrev == "" ~ "Other*",
|
||||||
|
TRUE ~ state_name)) %>%
|
||||||
|
#bind_rows(total_active) %>%
|
||||||
|
select(-state_code, -abbrev, -jurisdiction_type) %>%
|
||||||
|
mutate(operator_class = case_when(operator_class == "A" ~ "Advanced",
|
||||||
|
operator_class == "E" ~ "Extra",
|
||||||
|
operator_class == "G" ~ "General",
|
||||||
|
operator_class == "N" ~ "Novice",
|
||||||
|
operator_class %in% c("T","P") ~ "Tech")) %>%
|
||||||
|
pivot_wider(names_from = operator_class,
|
||||||
|
values_from = count) %>%
|
||||||
|
mutate(Date = now) %>%
|
||||||
|
rename("State/Territory" = state_name) %>%
|
||||||
|
select(Date, `State/Territory`, Novice, Tech, General, Advanced, Extra, `NA`) %>%
|
||||||
|
mutate("Tech-Plus" = NA,
|
||||||
|
.before = General) %>%
|
||||||
|
rowwise() %>% mutate("Total" = sum(c_across(Novice:`NA`),
|
||||||
|
na.rm = T)) %>%
|
||||||
|
select(-`NA`) %>%
|
||||||
|
group_by(Date) %>%
|
||||||
|
bind_rows(summarise(., across(where(is.numeric), sum, na.rm = T),
|
||||||
|
across(where(is.character), ~'TOTAL'))) %>%
|
||||||
|
mutate(Tech_and_TechPlus = NA,
|
||||||
|
Conditional = NA,
|
||||||
|
Club = NA,
|
||||||
|
Military = NA,
|
||||||
|
Multiple = NA,
|
||||||
|
Repeater = NA,
|
||||||
|
GMRS = NA,
|
||||||
|
source_name = "fccULSloader",
|
||||||
|
source_detail = "w1cdn.net"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Append to table
|
||||||
|
write.table(active_state_class, file = "out/fccULSloader-fcc-licenses-scraped.csv", sep = ",",
|
||||||
|
append = TRUE, quote = FALSE,
|
||||||
|
col.names = F, row.names = FALSE,
|
||||||
|
na = "")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
print(b)
|
|
||||||
|
|||||||
@@ -68428,3 +68428,65 @@ Date,State/Territory,Novice,Tech,Tech-Plus,General,Advanced,Extra,Total,Tech_and
|
|||||||
2026-02-02,American Samoa,,,,,,,16,,,,,,,,HamCall,https://hamcall.net/hamcallcounts.html
|
2026-02-02,American Samoa,,,,,,,16,,,,,,,,HamCall,https://hamcall.net/hamcallcounts.html
|
||||||
2026-02-02,Armed Forces America,,,,,,,4,,,,,,,,HamCall,https://hamcall.net/hamcallcounts.html
|
2026-02-02,Armed Forces America,,,,,,,4,,,,,,,,HamCall,https://hamcall.net/hamcallcounts.html
|
||||||
2026-02-02,,,,,,,,3,,,,,,,,HamCall,https://hamcall.net/hamcallcounts.html
|
2026-02-02,,,,,,,,3,,,,,,,,HamCall,https://hamcall.net/hamcallcounts.html
|
||||||
|
2026-03-23,Other*,,,,,,,40,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Armed Forces America,,2,,1,,1,4,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Armed Forces Europe,1,83,,30,3,46,163,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Alaska,18,1678,,953,140,719,3575,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Alabama,68,6073,,3520,518,3117,13543,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Armed Forces Pacific,,77,,20,2,26,126,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Arkansas,38,4551,,2171,305,1751,8954,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,American Samoa,,2,,3,1,10,19,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Arizona,112,12018,,5512,985,4921,23797,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,California,638,62034,,20426,3301,16375,104206,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Colorado,91,11570,,4889,691,4018,21474,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Connecticut,117,3358,,2023,373,1786,7824,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,District of Columbia,4,311,,137,20,132,616,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Delaware,20,884,,564,88,473,2069,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Florida,423,20354,,13002,2485,10713,47566,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Georgia,105,9900,,5429,811,4490,21115,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Guam,1,109,,49,8,101,280,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Hawaii,26,2148,,810,143,702,3960,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Iowa,54,3264,,1811,383,1587,7215,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Idaho,28,7137,,2866,252,1799,12172,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Illinois,253,9422,,5641,976,4643,21277,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Indiana,164,7946,,4538,698,3416,17056,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Kansas,69,3675,,2083,285,1653,7898,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Kentucky,72,5077,,2881,393,2211,10784,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Louisiana,59,2868,,1860,317,1438,6686,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Massachusetts,148,6400,,3786,643,3467,14708,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Maryland,99,5269,,3009,530,2812,11898,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Maine,37,2099,,1375,207,1174,4986,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Michigan,171,10784,,5863,950,4960,23069,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Minnesota,104,5734,,3227,586,2668,12498,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Missouri,92,8257,,4249,615,3328,16810,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Northern Mariana Islands,,138,,37,,120,313,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Mississippi,21,2313,,1442,221,1348,5470,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Montana,28,2480,,1296,173,901,4938,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,North Carolina,144,11950,,6681,988,5686,25782,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,North Dakota,10,793,,436,62,327,1675,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Nebraska,26,1907,,1123,220,804,4156,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,New Hampshire,51,2698,,1676,255,1585,6370,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,New Jersey,188,6613,,3412,695,3245,14419,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,New Mexico,24,3491,,1610,264,1402,6911,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Nevada,38,4854,,2013,313,1690,9019,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,New York,385,13316,,7342,1310,6344,29169,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Ohio,310,13339,,8003,1245,6574,29967,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Oklahoma,43,5480,,2799,371,2124,10965,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Oregon,98,12139,,5330,684,3865,22443,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Pennsylvania,269,11707,,6800,1282,6012,26501,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Puerto Rico,102,3257,,1303,171,800,5767,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Rhode Island,21,923,,521,90,490,2110,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,South Carolina,54,5349,,3040,468,2626,11696,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,South Dakota,16,1023,,641,116,542,2371,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Tennessee,109,10483,,5802,811,4784,22258,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Texas,284,29491,,14706,2220,12165,59572,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,US Minor Islands,,1,,,1,1,3,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Utah,33,13842,,3636,304,2339,20267,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Virginia,171,10332,,5799,898,5169,22661,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Virgin Islands,,135,,70,10,52,289,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Vermont,13,1037,,565,102,532,2304,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Washington,189,20261,,8724,1100,6065,36834,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Wisconsin,91,5339,,3445,559,2762,12409,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,West Virginia,40,3309,,1582,200,1363,6567,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,Wyoming,9,1153,,744,107,530,2579,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
2026-03-23,TOTAL,5779,412237,,203306,31949,166784,832173,,,,,,,,fccULSloader,w1cdn.net
|
||||||
|
|||||||
|
Can't render this file because it is too large.
|
Reference in New Issue
Block a user