Results

About

This page provides some data about the club’s activities and results on Field Day.

Prior years

ARRL has made CSVs of many prior year’s results available to anyone.

Code
fd_2024 <- readr::read_csv("csv/field-day-2024.csv", show_col_types = FALSE)
fd_2023 <- readr::read_csv("csv/field-day-2023.csv", show_col_types = FALSE)
fd_2022 <- readr::read_csv("csv/field-day-2022.csv", show_col_types = FALSE)
fd_2021 <- readr::read_csv("csv/field-day-2021.csv", show_col_types = FALSE)

fd_2020 <- readr::read_csv("csv/field-day-2020.csv", show_col_types = FALSE)
fd_2019 <- readr::read_csv("csv/field-day-2019.csv", show_col_types = FALSE)
fd_2018 <- readr::read_csv("csv/field-day-2018.csv", show_col_types = FALSE)
fd_2017 <- readr::read_csv("csv/field-day-2017.csv", show_col_types = FALSE)
fd_2016 <- readr::read_csv("csv/field-day-2016.csv", show_col_types = FALSE)
fd_2015 <- readr::read_csv("csv/field-day-2015.csv", show_col_types = FALSE)
fd_2014 <- readr::read_csv("csv/field-day-2014.csv", show_col_types = FALSE)
fd_2013 <- readr::read_csv("csv/field-day-2013.csv", show_col_types = FALSE)
fd_2012 <- readr::read_csv("csv/field-day-2012.csv", show_col_types = FALSE)
fd_2011 <- readr::read_csv("csv/field-day-2011.csv", show_col_types = FALSE)
fd_2010 <- readr::read_csv("csv/field-day-2010.csv", show_col_types = FALSE)

These require some tidying so that they can be combined.

Code
w3ya_24 <- fd_2024 |>
  dplyr::filter(Call == "W3YA") |>
  dplyr::mutate(year = 2024)

w3ya_23 <- fd_2023 |>
  dplyr::filter(Call == "W3YA") |>
  dplyr::mutate(year = 2023)

w3ya_22 <- fd_2022 |>
  dplyr::filter(CALL == "W3YA") |>
  dplyr::mutate(year = 2022) |>
  dplyr::rename(Call = CALL)

w3ya_21 <- fd_2021 |>
  dplyr::filter(CALL == "W3YA") |>
  dplyr::mutate(year = 2021) |>
  dplyr::rename(Call = CALL, `Power Multiplier` = Pwr_Mult, 
                `FINAL SCORE` = Score)

w3ya_20 <- fd_2020 |>
  dplyr::filter(CALL == "W3YA") |>
  dplyr::mutate(year = 2020) |>
  dplyr::rename(Call = CALL, `Power Multiplier` = `Pwr- Mult`, 
                `FINAL SCORE` = SCORE,
                `Transmitters` = `Xmtrs`)

w3ya_19 <- fd_2019 |>
  dplyr::filter(CALL == "W3YA") |>
  dplyr::mutate(year = 2019) |>
  dplyr::rename(Call = CALL,
                `Transmitters` = `Xmtrs`)

w3ya_18 <- fd_2018 |>
  dplyr::filter(CALL == "W3YA") |>
  dplyr::mutate(year = 2018) |>
  dplyr::rename(Call = CALL,
                `TOTAL QSOs` = `TOTAL QSOS`,
                `Participants` = `Number of Participants`,
                `Transmitters` = `Number of Transmitters`)

w3ya_17 <- fd_2017 |>
  dplyr::filter(`CALL (does not include checklogs)` == "W3YA") |>
  dplyr::mutate(year = 2017) |>
  dplyr::rename(Call = `CALL (does not include checklogs)`,
                `TOTAL QSOs` = `TOTAL QSOS`,
                `Participants` = `Number of Participants`,
                `Transmitters` = `Number of Transmitters`)

w3ya_16 <- fd_2016 |>
  dplyr::filter(CALL == "W3YA") |>
  dplyr::mutate(year = 2016) |>
  dplyr::rename(Call = `CALL`,
                `TOTAL QSOs` = `TOTAL QSOS`,
                `Participants` = `Number of Participants`,
                `Transmitters` = `Number of Transmitters`)

w3ya_15 <- fd_2015 |>
  dplyr::filter(CALL == "W3YA") |>
  dplyr::mutate(year = 2015) |>
  dplyr::rename(Call = `CALL`,
                `TOTAL QSOs` = `TOTAL QSOS`,
                `Participants` = `Number of Participants`)

w3ya_14 <- fd_2014 |>
  dplyr::filter(CALL == "W3YA") |>
  dplyr::mutate(year = 2014) |>
  dplyr::rename(Call = `CALL`,
                `TOTAL QSOs` = `TOTAL QSOS`,
                `Participants` = `Number of Participants`)

w3ya_13 <- fd_2013 |>
  dplyr::filter(CALL == "W3YA") |>
  dplyr::mutate(year = 2013) |>
  dplyr::rename(Call = `CALL`,
                `TOTAL QSOs` = `TOTAL QSOS`,
                `Participants` = `Number of Participants`)

w3ya_12 <- fd_2012 |>
  dplyr::filter(CALL == "W3YA") |>
  dplyr::mutate(year = 2012) |>
  dplyr::rename(Call = `CALL`,
                `TOTAL QSOs` = `TOTAL QSOS`,
                `Participants` = `Number of Participants`)

w3ya_11 <- fd_2011 |>
  dplyr::filter(CALL == "W3YA") |>
  dplyr::mutate(year = 2011) |>
  dplyr::rename(Call = `CALL`,
                `TOTAL QSOs` = `TOTAL QSOS`,
                `Participants` = `Number of Participants`)

w3ya_10 <- fd_2010 |>
  dplyr::filter(CALL == "W3YA") |>
  dplyr::mutate(year = 2010) |>
  dplyr::rename(Call = `CALL`,
                `TOTAL QSOs` = `TOTAL QSOS`,
                `Participants` = `Number of Participants`)

w3ya <- purrr::list_rbind(list(w3ya_24, 
                               w3ya_23, 
                               w3ya_22, 
                               w3ya_21, 
                               w3ya_19,
                               w3ya_18,
                               w3ya_17,
                               w3ya_16,
                               w3ya_15,
                               w3ya_14,
                               w3ya_13,
                               w3ya_12,
                               w3ya_11,
                               w3ya_10))

w3ya <- w3ya |>
  dplyr::select(-c(`GOTA CALL`, `GOTA Call`, 
                   `CLUB NAME`)) |>
  dplyr::rename(score = `FINAL SCORE`,
                cw_qsos = `TOTAL CW QSOs`,
                dig_qsos = `TOTAL DIGITAL QSOs`,
                ph_qsos = `TOTAL PHONE QSOs`,
                tot_qsos = `TOTAL QSOs`,
                bonus = `BONUS POINTS`,
                n_particip = `Participants`,
                n_xmtrs = `Transmitters`)

Score

Code
library(ggplot2)
w3ya |>
  ggplot() +
  aes(x = year, y = score) +
  geom_point() +
  geom_line() +
  ylim(0, 9000)
Figure 1: Nittany ARC (W3YA) Field Day score 2010-24

QSOs

Code
qsos <- w3ya |>
  tidyr::pivot_longer(cols = contains("qsos"), names_to = "type", values_to = "n_qsos")
Code
qsos |>
  dplyr::filter(!is.na(n_qsos)) |>
  ggplot() +
  aes(x = year, y = n_qsos, color = type) +
  geom_point() +
  geom_line() 
Figure 2: Nittany ARC (W3YA) Field Day QSOs by mode 2010-24
Code
qsos |>
  dplyr::filter(year >= 2021) |>
  ggplot() +
  aes(x = year, y = n_qsos, color = type) +
  geom_point() +
  geom_line() 
Figure 3: Nittany ARC (W3YA) Field Day QSOs by mode 2022-24

Bonus points

Code
w3ya |>
  dplyr::filter(!is.na(bonus)) |>
  ggplot() +
  aes(x = year, y = bonus) +
  geom_point() +
  geom_line()
Figure 4: Nittany ARC (W3YA) Field Day bonus points 2021-24
Code
w3ya |>
  dplyr::filter(!is.na(bonus)) |>
  dplyr::mutate(bonus_prop = bonus/score) |>
  ggplot() +
  aes(x = year, y = bonus_prop) +
  geom_point() +
  geom_line() +
  ylab("Bonus points as a proportion of total points")
Figure 5: Nittany ARC (W3YA) Field Day bonus points as a proportion of total score 2016-24

Transmitters

Code
w3ya |>
  dplyr::filter(!is.na(n_xmtrs)) |>
  ggplot() +
  aes(x = year, y = n_xmtrs) +
  geom_point() +
  geom_line() +
  ylim(0, 5)
Figure 6: Nittany ARC (W3YA) Field Day transmitters 2016-24

Participants

Code
w3ya |>
  dplyr::filter(!is.na(n_particip)) |>
  ggplot() +
  aes(x = year, y = n_particip) +
  geom_point() +
  geom_smooth(se = FALSE) +
  ylim(0,60)
`geom_smooth()` using method = 'loess' and formula = 'y ~ x'
Figure 7: Nittany ARC (W3YA) Field Day participants by year

2024 attendees, operators, and volunteers

Code
library(readr)
fd_data <- readr::read_csv(
  "csv/narc-fd-2024-participation.csv",
  show_col_types = FALSE,
  col_types = cols(
    callsign = "c",
    attended_sat = "l",
    attended_sun = "l",
    operated_fd = "l",
    helped_out = "l"
  )
)
Warning: One or more parsing issues, call `problems()` on your data frame for details,
e.g.:
  dat <- vroom(...)
  problems(dat)
Code
fd_ops_guests_vols <- fd_data |>
  dplyr::select(callsign, attended_sat, attended_sun, operated_fd, helped_out)
Code
fd_attended <- fd_ops_guests_vols |>
  dplyr::mutate(attended = attended_sat | attended_sun)

xtabs(~ attended, fd_attended)
attended
FALSE  TRUE 
   12    24 
Code
xtabs(~ attended_sat, fd_ops_guests_vols)
attended_sat
FALSE  TRUE 
   14    21 
Code
xtabs(~ attended_sun, fd_ops_guests_vols)
attended_sun
FALSE  TRUE 
   25    11 
Code
xtabs(~ operated_fd, fd_ops_guests_vols)
operated_fd
FALSE  TRUE 
   23    13 
Code
xtabs(~ helped_out, fd_ops_guests_vols)
helped_out
FALSE  TRUE 
   24    12