Results: Ambient growth and bioremediation

Modelling Asparagopsis nitrogen bioremediation efficiency in Australian coastal environments

Author

Tormey Reimer

Published

5 August 2026

Load in all the BARRA-R2 cells being used, with their coordinates.
cell_coords <- find_read(envi_data, "R2_cell_coords") %>% 
  mutate(state = factor(state, levels = states_ord)) %>% 
  dplyr::select(-layer)
cells_included <- find_read(runs_data, "include")
cells_omitted <- find_read(runs_data, "omit")

totals <- cell_coords %>% 
  filter(!cell_no %in% cells_omitted) %>% 
  group_by(state) %>% 
  reframe(cells = n())

A total of 1459 were omitted for being too shallow to accommodate the 5.5 m macroalgae canopy, leaving 11748 cells.

Total growth and removal in ambient conditions

Get cell growth and nitrogen removal in ambient (normal) conditions
norm_growth_end <- file.path(runs_data, "cell_growth_end.parquet") %>% 
  read_parquet(mmap = T) %>% 
  merge(cell_coords, by = "cell_no")

# Total N removed at each harvest
norm_growth_end <- norm_growth_end %>% 
  mutate(
    value = TN_end - TN_start,
    value_na = case_when(value <= 0 ~ NA, T ~ value),
    value_0 = case_when(value <= 0 ~ 0, T ~ value),
    month = as.factor(month(parse_date_time(start, orders = "j"))),
    species = factor(species, levels = c("armata", "taxiformis"), labels = c("A. armata", "A. taxiformis"))
  )

norm_growth_total <- norm_growth_end %>% 
  mutate(
    value_na = case_when(value <= 0 ~ NA, T ~ value),
    value_0 = case_when(value <= 0 ~ 0, T ~ value)
  ) %>% 
  group_by(state, species, cell_no, latitude, longitude) %>% 
  reframe(
    total = sumna(value),            # good growth months may be outweighed by bad growth months
    total_na = sumna(value_na),      # bad growth months are removed
    total_na = case_when(total_na == 0 ~ NA, T ~ total_na),
    total_0 = sumna(value_0)       # bad growth months count as zeros
  )
Get mean nitrogen remoal (each month and state)
options(pillar.sigfig = 4)
df_arma_mon <- norm_growth_end %>% 
  filter(species == "A. armata") %>% 
  group_by(species, state, month) %>% 
  reframe(
    mean = meanna(value_0) %>% set_units("mg m-2"),
    sd = sdna(value_0) %>% set_units("mg m-2")
  )

df_arma_mon %>% 
  select(-sd) %>% 
  pivot_wider(names_from = state, values_from = mean)
# A tibble: 12 × 10
   species   month      NTE      QLD      NSW    SAU    TAS    VIC     WAN   WAS
   <fct>     <fct> [mg/m^2] [mg/m^2] [mg/m^2] [mg/m… [mg/m… [mg/m… [mg/m^… [mg/…
 1 A. armata 1      0        0          2.055  76.80  64.17  64.13 0       36.15
 2 A. armata 2      0        0          2.180 106.5   97.83  99.95 0       52.20
 3 A. armata 3      0        0          3.472 136.1  142.3  141.1  0       38.90
 4 A. armata 4      0        0.05906   18.33  159.6  167.6  170.1  0       40.30
 5 A. armata 5      0        0.2529    46.13  145.4  141.2  137.1  0       37.91
 6 A. armata 6      0        5.303     98.80  131.9  124.8  132.7  0.4003  40.62
 7 A. armata 7      0.04593 16.71     114.0   119.0  101.5  110.0  2.320   38.39
 8 A. armata 8      0       22.80     110.3   119.8   72.77  96.06 1.946   48.17
 9 A. armata 9      0       18.91     104.3   133.7   62.40 102.7  0.9115  56.20
10 A. armata 10     0        0.3232    60.57  150.1   86.23 132.8  0.8554  49.18
11 A. armata 11     0        0         53.29  160.6  126.7  155.9  0.06961 56.56
12 A. armata 12     0        0         20.86  110.1  100.4  103.9  0       41.11
Get mean nitrogen remoal (each month and state)
df_arma_mon %>% 
  select(-mean) %>% 
  pivot_wider(names_from = state, values_from = sd)
# A tibble: 12 × 10
   species   month      NTE      QLD      NSW      SAU    TAS   VIC    WAN   WAS
   <fct>     <fct> [mg/m^2] [mg/m^2] [mg/m^2] [mg/m^2] [mg/m… [mg/… [mg/m… [mg/…
 1 A. armata 1        0        0        7.641    25.18  16.44 24.78  0     28.77
 2 A. armata 2        0        0       10.65     29.96  15.77 23.42  0     43.85
 3 A. armata 3        0        0       15.89     37.65  16.27 28.42  0     38.36
 4 A. armata 4        0        2.111   39.89     44.32  29.90 28.32  0     41.64
 5 A. armata 5        0        5.734   61.83     52.16  42.61 38.15  0     38.37
 6 A. armata 6        0       20.42    68.59     51.32  39.27 37.53  6.349 36.34
 7 A. armata 7        1.156   36.46    61.86     45.67  35.75 37.94 10.85  33.27
 8 A. armata 8        0       44.20    64.46     39.83  35.91 37.29  9.307 29.07
 9 A. armata 9        0       42.99    53.01     37.67  35.55 32.61  7.130 27.15
10 A. armata 10       0        5.185   48.68     45.49  32.64 19.37  7.166 21.82
11 A. armata 11       0        0       52.75     45.96  30.09 23.38  1.367 25.56
12 A. armata 12       0        0       29.85     33.69  24.90 29.40  0     25.75
Get mean nitrogen remoal (each month and state)
df_taxi_month <- norm_growth_end %>% 
  filter(species != "A. armata") %>% 
  group_by(species, state, month) %>% 
  reframe(
    mean = meanna(value_0) %>% set_units("mg m-2"),
    sd = sdna(value_0) %>% set_units("mg m-2")
  )

df_taxi_month %>% 
  select(-sd) %>% 
  pivot_wider(names_from = state, values_from = mean)
# A tibble: 12 × 10
   species     month      NTE   QLD   NSW      SAU      TAS      VIC   WAN   WAS
   <fct>       <fct> [mg/m^2] [mg/… [mg/… [mg/m^2] [mg/m^2] [mg/m^2] [mg/… [mg/…
 1 A. taxifor… 1      0.2186  22.56 15.08 54.12     4.670   23.94    31.50 58.65
 2 A. taxifor… 2      0.5038  24.28 22.05 85.75    23.97    53.38    29.92 92.35
 3 A. taxifor… 3      0.4046  16.47 30.80 86.85    29.95    57.27    15.94 74.19
 4 A. taxifor… 4      0.5735  28.74 79.78 75.21     5.394   22.49    14.24 76.30
 5 A. taxifor… 5     44.94    58.82 87.99 20.01     0        4.668   60.57 56.19
 6 A. taxifor… 6     84.16    62.49 90.77  0.01457  0        0       87.78 38.47
 7 A. taxifor… 7     54.73    52.95 57.54  0        0        0       58.24 23.65
 8 A. taxifor… 8     47.63    56.90 37.05  0        0        0       51.25 22.93
 9 A. taxifor… 9     63.51    70.56 30.76  0.4587   0        0       66.18 24.32
10 A. taxifor… 10    59.69    76.28 24.36  1.233    0        0       64.80 20.37
11 A. taxifor… 11     0.01970 64.89 41.10  5.022    0        0.03219 58.22 29.90
12 A. taxifor… 12     0       32.92 26.82 24.62     0.05022  5.189   43.53 41.87
Get mean nitrogen remoal (each month and state)
df_taxi_month %>% 
  select(-mean) %>% 
  pivot_wider(names_from = state, values_from = sd)
# A tibble: 12 × 10
   species       month      NTE    QLD   NSW     SAU    TAS     VIC    WAN   WAS
   <fct>         <fct> [mg/m^2] [mg/m… [mg/… [mg/m^… [mg/m… [mg/m^… [mg/m… [mg/…
 1 A. taxiformis 1       4.301   32.81 25.38 32.90   11.68  23.76   54.50  29.38
 2 A. taxiformis 2       8.456   37.19 31.48 39.10   28.16  28.28   56.22  33.05
 3 A. taxiformis 3       7.113   26.67 35.25 46.99   35.74  39.00   41.55  39.57
 4 A. taxiformis 4       9.312   33.57 55.70 50.30   18.52  46.39   38.11  40.09
 5 A. taxiformis 5      33.47    41.52 54.50 27.85    0     18.66   44.69  36.17
 6 A. taxiformis 6      14.27    37.81 51.81  0.2933  0      0      19.78  37.86
 7 A. taxiformis 7      11.81    37.87 47.01  0       0      0      15.43  31.95
 8 A. taxiformis 8      11.09    41.56 44.11  0       0      0      10.77  30.18
 9 A. taxiformis 9      14.92    43.01 37.95  4.598   0      0       8.957 32.07
10 A. taxiformis 10     35.34    34.39 32.32 10.02    0      0      20.58  26.29
11 A. taxiformis 11      0.3548  46.52 38.70 20.84    0      0.4262 50.12  36.21
12 A. taxiformis 12      0       39.19 32.60 35.76    1.276 14.07   54.79  32.13
Get mean monthly removal per state
df_arma_year <- norm_growth_end %>% 
  filter(species == "A. armata") %>% 
  group_by(species, state) %>% 
  reframe(
    mean = meanna(value_0) %>% set_units("mg m-2 month-1"),
    sd = sdna(value_0) %>% set_units("mg m-2 month-1")
  ) %>% 
  arrange(-mean)
df_arma_year
# A tibble: 8 × 4
  species   state             mean               sd
  <fct>     <fct> [mg/(m^2*month)] [mg/(m^2*month)]
1 A. armata SAU         129.1               47.58  
2 A. armata VIC         120.5               41.74  
3 A. armata TAS         107.3               44.56  
4 A. armata NSW          52.85              63.93  
5 A. armata WAS          44.64              33.94  
6 A. armata QLD           5.362             23.18  
7 A. armata WAN           0.5420             5.446 
8 A. armata NTE           0.003828           0.3338
Get mean monthly removal per state
df_taxi_year <- norm_growth_end %>% 
  filter(species != "A. armata") %>% 
  group_by(species, state) %>% 
  reframe(
    mean = meanna(value_0) %>% set_units("mg m-2 month-1"),
    sd = sdna(value_0) %>% set_units("mg m-2 month-1")
  ) %>% 
  arrange(-mean)
df_taxi_year
# A tibble: 8 × 4
  species       state             mean               sd
  <fct>         <fct> [mg/(m^2*month)] [mg/(m^2*month)]
1 A. taxiformis WAN             48.51             44.17
2 A. taxiformis QLD             47.32             42.97
3 A. taxiformis WAS             46.60             41.30
4 A. taxiformis NSW             45.34             48.97
5 A. taxiformis NTE             29.70             34.96
6 A. taxiformis SAU             29.44             44.78
7 A. taxiformis VIC             13.91             29.59
8 A. taxiformis TAS              5.336            17.63
Get total across the year for each state
options(pillar.sigfig = 5)
df_arma_alltotal <- norm_growth_end %>% 
  filter(species == "A. armata") %>% 
  group_by(species, state, cell_no) %>% 
  reframe(total = sum(value_0)) %>% 
  group_by(species, state) %>% 
  reframe(total = mean(total)) %>% 
  arrange(-total)
df_arma_alltotal
# A tibble: 8 × 3
  species   state       total
  <fct>     <fct>       <dbl>
1 A. armata SAU   1549.6     
2 A. armata VIC   1446.4     
3 A. armata TAS   1287.9     
4 A. armata NSW    634.26    
5 A. armata WAS    535.70    
6 A. armata QLD     64.346   
7 A. armata WAN      6.5036  
8 A. armata NTE      0.045930
Get total across the year for each state
df_taxi_alltotal <- norm_growth_end %>% 
  filter(species != "A. armata") %>% 
  group_by(species, state, cell_no) %>% 
  reframe(total = sum(value_0)) %>% 
  group_by(species, state) %>% 
  reframe(total = mean(total)) %>% 
  arrange(-total)
df_taxi_alltotal
# A tibble: 8 × 3
  species       state   total
  <fct>         <fct>   <dbl>
1 A. taxiformis WAN   582.17 
2 A. taxiformis QLD   567.86 
3 A. taxiformis WAS   559.19 
4 A. taxiformis NSW   544.10 
5 A. taxiformis NTE   356.38 
6 A. taxiformis SAU   353.29 
7 A. taxiformis VIC   166.98 
8 A. taxiformis TAS    64.034
Show mean N removed per month in each state (mean and sd)
norm_growth_end %>%
  mutate(value = case_when(value <= 0 ~ 0, T ~ value)) %>% 
  group_by(species, state, start) %>%
  reframe(
    mean = meanna(value),
    sd = sdna(value)
  ) %>%
  mutate(
    sd = case_when(sd > mean ~ mean, T ~ sd),
    state = factor(state, levels = states_ord, labels = states_lng)
  ) %>%
  ggplot(
    aes(
      x = start, y = mean, ymin = mean - sd, ymax = mean + sd,
      color = state, fill = state, linetype = species
    )
  ) +
  geom_line(linewidth = 0.75) +
  geom_ribbon(alpha = 0.25, linewidth = 0.25) +
  facet_wrap(facets = vars(state), ncol = 2) +
  # scale_y_continuous(breaks = seq(0, 150, 25), limits = c(0, 175), expand = c(0,0)) +
  scale_color_manual(values = states_pal) +
  scale_fill_manual(values = states_pal) +
  env_plot() +
  labs(x = "Day of the year", y = expression("Total N removed (mg m"^-2 *")"))
Figure 1

Nitrogen removed in each cell (maps)

Code
# minna(norm_growth_total$total_na)
# maxna(norm_growth_total$total_na)

norm_growth_total %>%
  ggplot(aes(x = longitude, y = latitude, fill = total_na)) +
  geom_tile() +
  geom_sf(data = ozmap_data(data = "states"), inherit.aes = F) +
  coord_sf(xlim = c(111.5, 155), ylim = c(-44.5, -8.5), expand = F) +
  scale_x_continuous(breaks = seq(100, 160, 10)) +
  scale_y_continuous(breaks = seq(-2.5, -45, -5)) +
  scale_fill_viridis_c(
    limits = c(0, maxna(norm_growth_total$total_na)),
    breaks = seq(0, 2250, 500),
    na.value = "grey",
    guide = guide_colorbar(
      title = expression("Total N removed (mg m"^-2 * ")"),
      barheight = 1,
      barwidth = 20,
      title.position = "top",
      title.hjust = 0.5
    )
  ) +
  labs(x = "Longitude", y = "Latitude") +
  prettyplot() +
  theme(legend.position = "top", strip.text = element_blank(), strip.background = element_blank()) +
  facet_grid(rows = vars(species))
Figure 2: Total nitrogen removed by A. armata (top) and _A. taxiformis (bottom) across the entire year under ambient conditions.
Code
# minna(norm_growth_end$value_na[norm_growth_end$species == "A. armata"])
# maxna(norm_growth_end$value_na[norm_growth_end$species == "A. armata"])

norm_growth_end %>%
  filter(species == "A. armata") %>% 
  ggplot(aes(x = longitude, y = latitude, fill = value_na)) +
  geom_tile() +
  geom_sf(data = ozmap_data(data = "states"), inherit.aes = F) +
  coord_sf(xlim = c(111.5, 155), ylim = c(-44.5, -8.5), expand = F) +
  scale_x_continuous(breaks = seq(100, 160, 10)) +
  scale_y_continuous(breaks = seq(-2.5, -45, -5)) +
  scale_fill_viridis_c(
    limits = c(0, maxna(norm_growth_end$value_na[norm_growth_end$species == "A. armata"])),
    breaks = seq(0, 250, 50),
    na.value = "grey",
    guide = guide_colorbar(
      title = expression("Total N removed (mg m"^-2 * ")"),
      barheight = 1,
      barwidth = 20,
      title.position = "top",
      title.hjust = 0.5
    )
  ) +
  labs(x = "Longitude", y = "Latitude") +
  prettyplot() +
  theme(legend.position = "bottom") +
  facet_wrap(facets = vars(month)) +
  ggtitle("A. armata")
Figure 3: Total nitrogen removed by A. armata in each month under ambient conditions.
Code
# minna(norm_growth_end$value_na[norm_growth_end$species == "A. taxiformis"])
# maxna(norm_growth_end$value_na[norm_growth_end$species == "A. taxiformis"])

norm_growth_end %>%
  filter(species == "A. taxiformis") %>% 
  ggplot(aes(x = longitude, y = latitude, fill = value_na)) +
  geom_tile() +
  geom_sf(data = ozmap_data(data = "states"), inherit.aes = F) +
  coord_sf(xlim = c(111.5, 155), ylim = c(-44.5, -8.5), expand = F) +
  scale_x_continuous(breaks = seq(100, 160, 10)) +
  scale_y_continuous(breaks = seq(-2.5, -45, -5)) +
  scale_fill_viridis_c(
    limits = c(0, maxna(norm_growth_end$value_na[norm_growth_end$species == "A. taxiformis"])),
    breaks = seq(0, 250, 50),
    na.value = "grey",
    guide = guide_colorbar(
      title = expression("Total N removed (mg m"^-2 * ")"),
      barheight = 1,
      barwidth = 20,
      title.position = "top",
      title.hjust = 0.5
    )
  ) +
  labs(x = "Longitude", y = "Latitude") +
  prettyplot() +
  theme(legend.position = "bottom") +
  facet_wrap(facets = vars(month)) +
  ggtitle("A. taxiformis")
Figure 4: Total nitrogen removed by A. taxiformis in each month under ambient conditions.

Total bioremediation efficiency

Get total nitrogen made available in ambient conditions
N_input <- file.path(envi_data, "cell_input_all") %>% 
  list.files(full.names = T) %>% 
  purrr::map(function(fnm) {
    fnm %>% arrow::read_parquet(col_select = c("cell_no", "state", "yday", "Ni_input", "Am_input"))
  }) %>% 
  bind_rows() %>% 
  mutate(
    N_input = 5.5*(Ni_input + Am_input),
    month = month(make_date(2023, 12, 31) + days(yday)) %>% as.factor()
    ) %>% 
  group_by(state, cell_no, month) %>% 
  reframe(N_input = sum(N_input)) %>% 
  mutate(N_input = set_units(N_input, "mg m-2"))

biorem_eff <- norm_growth_end %>% 
  select(-contains("TN"), -start) %>% 
  left_join(N_input, by = c("state", "cell_no", "month")) %>% 
  mutate(
    value_na = set_units(value_na, "mg m-2"),
    biorem_eff = drop_units(value_na/N_input)
  )
Total nitrogen removed of the ambient nitrogen available (monthly, across all Australia)
biorem_eff %>% 
  group_by(species, month) %>% 
  reframe(
    mean_biorem_eff = 100*meanna(biorem_eff),
    max_biorem_eff = 100*maxna(biorem_eff)
  ) %>% 
  print(n = 24)
# A tibble: 24 × 4
   species       month mean_biorem_eff max_biorem_eff
   <fct>         <fct>           <dbl>          <dbl>
 1 A. armata     1              4.7299         7.1877
 2 A. armata     2             12.278         17.173 
 3 A. armata     3              8.8691        12.418 
 4 A. armata     4              6.7898        13.207 
 5 A. armata     5              4.6018        14.612 
 6 A. armata     6              4.3451        16.112 
 7 A. armata     7              4.1396        13.921 
 8 A. armata     8              4.5580        16.239 
 9 A. armata     9              5.4672        18.370 
10 A. armata     10             5.5143        13.664 
11 A. armata     11             8.2433        17.213 
12 A. armata     12             8.7588        14.974 
13 A. taxiformis 1              3.7772         6.9494
14 A. taxiformis 2              9.6349        18.964 
15 A. taxiformis 3              7.0580        17.071 
16 A. taxiformis 4              7.1777        20.670 
17 A. taxiformis 5              5.9172        15.845 
18 A. taxiformis 6              8.7357        16.118 
19 A. taxiformis 7              8.7818        16.295 
20 A. taxiformis 8             10.133         19.771 
21 A. taxiformis 9             11.578         20.949 
22 A. taxiformis 10             8.4605        13.544 
23 A. taxiformis 11             7.9653        16.159 
24 A. taxiformis 12             6.8592        14.314 
Total nitrogen removed of the ambient nitrogen available (monthly, across all Australia)
biorem_eff %>% 
  mutate(biorem_eff = 100*biorem_eff) %>% 
  ggplot(aes(x = biorem_eff, fill = species, colour = species)) +
  geom_histogram(position = "identity", alpha = 0.35, binwidth = 1) +
  theme_classic()
Warning: Removed 142662 rows containing non-finite outside the scale range
(`stat_bin()`).

Total nitrogen removed of the ambient nitrogen available (monthly, in each state)
options(pillar.sigfig = 3)
biorem_eff %>% 
  group_by(species, state) %>% 
  reframe(
    mean_biorem_eff = 100*meanna(biorem_eff),
    max_biorem_eff = 100*maxna(biorem_eff)
  ) %>% 
  print(n = 24)
# A tibble: 16 × 4
   species       state mean_biorem_eff max_biorem_eff
   <fct>         <fct>           <dbl>          <dbl>
 1 A. armata     NTE              4.80           9.02
 2 A. armata     QLD              7.93          16.1 
 3 A. armata     NSW              3.47          14.7 
 4 A. armata     SAU              6.64          16.4 
 5 A. armata     TAS              4.84          17.2 
 6 A. armata     VIC              5.14          16.9 
 7 A. armata     WAN              8.74          18.4 
 8 A. armata     WAS              8.51          17.7 
 9 A. taxiformis NTE             11.0           19.8 
10 A. taxiformis QLD              8.53          20.7 
11 A. taxiformis NSW              3.31          14.7 
12 A. taxiformis SAU              6.09          15.6 
13 A. taxiformis TAS              4.21          14.3 
14 A. taxiformis VIC              4.62          16.5 
15 A. taxiformis WAN             10.0           20.9 
16 A. taxiformis WAS              7.92          17.7 
Total nitrogen removed of the ambient nitrogen available (monthly, in each state)
biorem_eff %>% 
  group_by(species, state, month) %>% 
  reframe(
    mean_biorem_eff = 100*meanna(biorem_eff)
  ) %>% 
  pivot_wider(names_from = state, values_from = mean_biorem_eff) %>% 
  print(n = 24)
# A tibble: 24 × 10
   species       month     NTE    QLD   NSW     SAU    TAS     VIC    WAN   WAS
   <fct>         <fct>   <dbl>  <dbl> <dbl>   <dbl>  <dbl>   <dbl>  <dbl> <dbl>
 1 A. armata     1     NaN     NaN     1.64   4.84    4.87   4.96  NaN     4.55
 2 A. armata     2     NaN     NaN     5.43  12.2    12.6   12.6   NaN    12.1 
 3 A. armata     3     NaN     NaN     3.75   9.17    8.79   8.61  NaN     8.91
 4 A. armata     4     NaN       3.64  2.78   7.43    5.74   5.81  NaN     8.35
 5 A. armata     5     NaN       8.22  2.86   5.20    3.18   3.01  NaN     6.70
 6 A. armata     6     NaN       8.40  3.94   4.31    2.29   2.44    9.51  6.59
 7 A. armata     7       4.80    8.31  3.28   3.65    1.61   1.79    7.49  6.34
 8 A. armata     8     NaN       7.87  3.39   3.81    1.20   1.60    9.95  7.44
 9 A. armata     9     NaN       7.59  3.49   5.00    1.28   1.96   11.1   9.82
10 A. armata     10    NaN       2.42  2.95   6.11    2.18   3.30    7.49  8.88
11 A. armata     11    NaN     NaN     4.46   8.96    5.39   6.52    2.29 11.2 
12 A. armata     12    NaN     NaN     3.88   9.11    8.26   8.60  NaN     9.95
13 A. taxiformis 1       1.44    4.30  2.20   3.79    2.02   2.89    3.23  4.31
14 A. taxiformis 2       5.97   11.9   5.60  10.1     6.19   7.19    6.10 11.7 
15 A. taxiformis 3       4.49    9.91  3.52   7.16    3.60   4.05    5.49  8.80
16 A. taxiformis 4       7.77    9.63  4.14   5.18    1.61   3.36    5.04  8.59
17 A. taxiformis 5       4.52    7.70  3.65   3.01  NaN      1.27    5.99  6.53
18 A. taxiformis 6      11.0     9.21  3.61   0.381 NaN    NaN      10.1   6.40
19 A. taxiformis 7      12.0     8.16  2.57 NaN     NaN    NaN      10.4   6.36
20 A. taxiformis 8      13.5     8.53  2.13 NaN     NaN    NaN      12.9   7.90
21 A. taxiformis 9      14.2     9.33  2.34   6.26  NaN    NaN      15.8   9.88
22 A. taxiformis 10      9.05    8.51  2.22   8.43  NaN    NaN       9.98  7.52
23 A. taxiformis 11      0.314   7.78  3.34   4.67  NaN      0.218   9.43  9.69
24 A. taxiformis 12    NaN       7.42  3.97   5.60    2.02   2.94    7.40  7.68
Code
# minna(biorem_eff$biorem_eff[biorem_eff$species == "A. armata"])
# maxna(biorem_eff$biorem_eff[biorem_eff$species == "A. armata"])

biorem_eff %>% 
  mutate(biorem_eff = 100*biorem_eff) %>%
  filter(species == "A. armata") %>% 
  ggplot(aes(x = longitude, y = latitude, fill = biorem_eff)) +
  geom_tile() +
  geom_sf(data = ozmap_data(data = "states"), inherit.aes = F) +
  coord_sf(xlim = c(111.5, 155), ylim = c(-44.5, -8.5), expand = F) +
  scale_x_continuous(breaks = seq(100, 160, 10)) +
  scale_y_continuous(breaks = seq(-2.5, -45, -5)) +
  scale_fill_viridis_c(
    limits = c(0, 18.5),
    breaks = seq(0, 30, 2),
    na.value = "grey",
    guide = guide_colorbar(
      title = expression("Total N removed (mg m"^-2 * ")"),
      barheight = 1,
      barwidth = 20,
      title.position = "top",
      title.hjust = 0.5
    )
  ) +
  labs(x = "Longitude", y = "Latitude") +
  prettyplot() +
  theme(legend.position = "bottom") +
  facet_wrap(facets = vars(month)) +
  ggtitle("A. armata")
Figure 5: Total of available nitrogen removed by A. armata in each month under ambient conditions.
Code
# minna(biorem_eff$biorem_eff[biorem_eff$species == "A. taxiformis"])
# maxna(biorem_eff$biorem_eff[biorem_eff$species == "A. taxiformis"])

biorem_eff %>% 
  mutate(biorem_eff = 100*biorem_eff) %>%
  filter(species == "A. taxiformis") %>% 
  ggplot(aes(x = longitude, y = latitude, fill = biorem_eff)) +
  geom_tile() +
  geom_sf(data = ozmap_data(data = "states"), inherit.aes = F) +
  coord_sf(xlim = c(111.5, 155), ylim = c(-44.5, -8.5), expand = F) +
  scale_x_continuous(breaks = seq(100, 160, 10)) +
  scale_y_continuous(breaks = seq(-2.5, -45, -5)) +
  scale_fill_viridis_c(
    limits = c(0, 21),
    breaks = seq(0, 30, 2),
    na.value = "grey",
    guide = guide_colorbar(
      title = expression("Total N removed (mg m"^-2 * ")"),
      barheight = 1,
      barwidth = 20,
      title.position = "top",
      title.hjust = 0.5
    )
  ) +
  labs(x = "Longitude", y = "Latitude") +
  prettyplot() +
  theme(legend.position = "bottom") +
  facet_wrap(facets = vars(month)) +
  ggtitle("A. taxiformis")
Figure 6: Total of available nitrogen removed by A. taxiformis in each month under ambient conditions.
Total nitrogen removed of the ambient nitrogen available across the entire year
biorem_eff_total <- norm_growth_end %>% 
  select(-contains("TN"), -start, -longitude, -latitude) %>% 
  left_join(N_input, by = c("state", "cell_no", "month")) %>% 
  mutate(
    N_input = drop_units(N_input)
  ) %>% 
  group_by(species, state, cell_no) %>% 
  reframe(
    value_na = sumna(value_na),
    N_input = sumna(N_input)
  ) %>% 
  mutate(
    value_na = set_units(value_na, "mg m-2"),
    N_input = set_units(N_input, "mg m-2"),
    biorem_eff = value_na/N_input
    )

biorem_eff %>% 
  group_by(species) %>% 
  reframe(
    mean_biorem_eff = 100*meanna(biorem_eff),
    max_biorem_eff = 100*maxna(biorem_eff)
  )
# A tibble: 2 × 3
  species       mean_biorem_eff max_biorem_eff
  <fct>                   <dbl>          <dbl>
1 A. armata                6.37           18.4
2 A. taxiformis            8.08           20.9
Total nitrogen removed of the ambient nitrogen available across the entire year
biorem_eff_total %>% 
  mutate(biorem_eff = 100*biorem_eff) %>% 
  ggplot(aes(x = biorem_eff, fill = species, colour = species)) +
  geom_histogram(position = "identity", alpha = 0.35, binwidth = 1) +
  theme_classic()