Last updated: 2024-05-15
Checks: 7 0
Knit directory:
heatwave_co2_flux_2023/analysis/
This reproducible R Markdown analysis was created with workflowr (version 1.7.0). The Checks tab describes the reproducibility checks that were applied when the results were created. The Past versions tab lists the development history.
Great! Since the R Markdown file has been committed to the Git repository, you know the exact version of the code that produced these results.
Great job! The global environment was empty. Objects defined in the global environment can affect the analysis in your R Markdown file in unknown ways. For reproduciblity it’s best to always run the code in an empty environment.
The command set.seed(20240307)
was run prior to running
the code in the R Markdown file. Setting a seed ensures that any results
that rely on randomness, e.g. subsampling or permutations, are
reproducible.
Great job! Recording the operating system, R version, and package versions is critical for reproducibility.
Nice! There were no cached chunks for this analysis, so you can be confident that you successfully produced the results during this run.
Great job! Using relative paths to the files within your workflowr project makes it easier to run your code on other machines.
Great! You are using Git for version control. Tracking code development and connecting the code version to the results is critical for reproducibility.
The results in this page were generated with repository version 981d5e1. See the Past versions tab to see a history of the changes made to the R Markdown and HTML files.
Note that you need to be careful to ensure that all relevant files for
the analysis have been committed to Git prior to generating the results
(you can use wflow_publish
or
wflow_git_commit
). workflowr only checks the R Markdown
file, but you know if there are other scripts or data files that it
depends on. Below is the status of the Git repository when the results
were generated:
Ignored files:
Ignored: .Rhistory
Ignored: .Rproj.user/
Ignored: analysis/figure/
Ignored: data/
Unstaged changes:
Modified: analysis/child/pCO2_product_preprocessing.Rmd
Modified: analysis/child/pCO2_product_synopsis.Rmd
Modified: code/Workflowr_project_managment.R
Note that any generated files, e.g. HTML, png, CSS, etc., are not included in this status report because it is ok for generated content to have uncommitted changes.
These are the previous versions of the repository in which changes were
made to the R Markdown (analysis/SOM_FFN.Rmd
) and HTML
(docs/SOM_FFN.html
) files. If you’ve configured a remote
Git repository (see ?wflow_git_remote
), click on the
hyperlinks in the table below to view the files as they were in that
past version.
File | Version | Author | Date | Message |
---|---|---|---|---|
html | 909f6c8 | jens-daniel-mueller | 2024-05-14 | Build site. |
Rmd | 7239946 | jens-daniel-mueller | 2024-05-14 | updated seasonality plots |
html | 009791f | jens-daniel-mueller | 2024-05-14 | Build site. |
html | 3b5d16b | jens-daniel-mueller | 2024-05-13 | Build site. |
Rmd | 1e1dee5 | jens-daniel-mueller | 2024-05-13 | pco2 to fco2 conversions, changed output files |
html | 8c96de4 | jens-daniel-mueller | 2024-05-08 | Build site. |
html | 79ef4f3 | jens-daniel-mueller | 2024-05-08 | Build site. |
html | b0129aa | jens-daniel-mueller | 2024-04-23 | Build site. |
Rmd | 39cbcef | jens-daniel-mueller | 2024-04-23 | final atm CO2 MBL used |
html | 7f9c687 | jens-daniel-mueller | 2024-04-23 | Build site. |
html | ce4e2a6 | jens-daniel-mueller | 2024-04-17 | Build site. |
html | 741ee62 | jens-daniel-mueller | 2024-04-17 | Build site. |
html | 58e3680 | jens-daniel-mueller | 2024-04-11 | Build site. |
html | dfcf790 | jens-daniel-mueller | 2024-04-11 | Build site. |
html | 139bc97 | jens-daniel-mueller | 2024-04-11 | manual deletion of files |
html | 2321242 | jens-daniel-mueller | 2024-04-11 | Build site. |
Rmd | d98842b | jens-daniel-mueller | 2024-04-10 | fixed anomaly year output |
html | 2793f67 | jens-daniel-mueller | 2024-04-05 | Build site. |
html | 69dc18c | jens-daniel-mueller | 2024-04-04 | Build site. |
html | c9d994c | jens-daniel-mueller | 2024-04-04 | Build site. |
Rmd | 46f044d | jens-daniel-mueller | 2024-04-04 | rebuild entire website with individual anomaly years |
Rmd | 9d258b5 | jens-daniel-mueller | 2024-04-03 | manual commit |
html | 3a9a60f | jens-daniel-mueller | 2024-03-29 | Build site. |
html | 3946ecd | jens-daniel-mueller | 2024-03-27 | Build site. |
html | 6343e59 | jens-daniel-mueller | 2024-03-27 | Build site. |
Rmd | aba8ff0 | jens-daniel-mueller | 2024-03-27 | input variables modified |
html | 1546f6d | jens-daniel-mueller | 2024-03-27 | Build site. |
Rmd | 04839cc | jens-daniel-mueller | 2024-03-27 | input variables added |
html | 6bb7ce2 | jens-daniel-mueller | 2024-03-25 | Build site. |
html | f9d2b99 | jens-daniel-mueller | 2024-03-25 | total cummulative intensity added |
html | 3114859 | jens-daniel-mueller | 2024-03-25 | Build site. |
html | 4589270 | jens-daniel-mueller | 2024-03-24 | Build site. |
html | 62ea4dd | jens-daniel-mueller | 2024-03-24 | Build site. |
html | 1a5167d | jens-daniel-mueller | 2024-03-24 | Build site. |
html | 934da22 | jens-daniel-mueller | 2024-03-22 | Build site. |
html | ae4041c | jens-daniel-mueller | 2024-03-22 | Build site. |
html | dc2068e | jens-daniel-mueller | 2024-03-22 | Build site. |
html | 98cf341 | jens-daniel-mueller | 2024-03-21 | Build site. |
html | e3e1491 | jens-daniel-mueller | 2024-03-21 | Build site. |
html | 47238da | jens-daniel-mueller | 2024-03-21 | Build site. |
html | 83fcd67 | jens-daniel-mueller | 2024-03-21 | Build site. |
html | 342018b | jens-daniel-mueller | 2024-03-20 | Build site. |
html | 8698b51 | jens-daniel-mueller | 2024-03-20 | Build site. |
Rmd | 39d9769 | jens-daniel-mueller | 2024-03-20 | write summary output files |
html | 03321bd | jens-daniel-mueller | 2024-03-19 | Build site. |
Rmd | e80f0d8 | jens-daniel-mueller | 2024-03-19 | units fixed |
html | b41fa51 | jens-daniel-mueller | 2024-03-19 | Build site. |
html | bd3c1fe | jens-daniel-mueller | 2024-03-19 | Build site. |
Rmd | fbfd936 | jens-daniel-mueller | 2024-03-19 | run pco2 products with child document |
center <- -160
boundary <- center + 180
target_crs <- paste0("+proj=robin +over +lon_0=", center)
# target_crs <- paste0("+proj=eqearth +over +lon_0=", center)
# target_crs <- paste0("+proj=eqearth +lon_0=", center)
# target_crs <- paste0("+proj=igh_o +lon_0=", center)
worldmap <- ne_countries(scale = 'small',
type = 'map_units',
returnclass = 'sf')
worldmap <- worldmap %>% st_break_antimeridian(lon_0 = center)
worldmap_trans <- st_transform(worldmap, crs = target_crs)
# ggplot() +
# geom_sf(data = worldmap_trans)
coastline <- ne_coastline(scale = 'small', returnclass = "sf")
coastline <- st_break_antimeridian(coastline, lon_0 = 200)
coastline_trans <- st_transform(coastline, crs = target_crs)
# ggplot() +
# geom_sf(data = worldmap_trans, fill = "grey", col="grey") +
# geom_sf(data = coastline_trans)
bbox <- st_bbox(c(xmin = -180, xmax = 180, ymax = 65, ymin = -78), crs = st_crs(4326))
bbox <- st_as_sfc(bbox)
bbox_trans <- st_break_antimeridian(bbox, lon_0 = center)
bbox_graticules <- st_graticule(
x = bbox_trans,
crs = st_crs(bbox_trans),
datum = st_crs(bbox_trans),
lon = c(20, 20.001),
lat = c(-78,65),
ndiscr = 1e3,
margin = 0.001
)
bbox_graticules_trans <- st_transform(bbox_graticules, crs = target_crs)
rm(worldmap, coastline, bbox, bbox_trans)
# ggplot() +
# geom_sf(data = worldmap_trans, fill = "grey", col="grey") +
# geom_sf(data = coastline_trans) +
# geom_sf(data = bbox_graticules_trans)
lat_lim <- ext(bbox_graticules_trans)[c(3,4)]*1.002
lon_lim <- ext(bbox_graticules_trans)[c(1,2)]*1.005
# ggplot() +
# geom_sf(data = worldmap_trans, fill = "grey90", col = "grey90") +
# geom_sf(data = coastline_trans) +
# geom_sf(data = bbox_graticules_trans, linewidth = 1) +
# coord_sf(crs = target_crs,
# ylim = lat_lim,
# xlim = lon_lim,
# expand = FALSE) +
# theme(
# panel.border = element_blank(),
# axis.text = element_blank(),
# axis.ticks = element_blank()
# )
latitude_graticules <- st_graticule(
x = bbox_graticules,
crs = st_crs(bbox_graticules),
datum = st_crs(bbox_graticules),
lon = c(20, 20.001),
lat = c(-60,-30,0,30,60),
ndiscr = 1e3,
margin = 0.001
)
latitude_graticules_trans <- st_transform(latitude_graticules, crs = target_crs)
latitude_labels <- data.frame(lat_label = c("60°N","30°N","Eq.","30°S","60°S"),
lat = c(60,30,0,-30,-60)-4, lon = c(35)-c(0,2,4,2,0))
latitude_labels <- st_as_sf(x = latitude_labels,
coords = c("lon", "lat"),
crs = "+proj=longlat")
latitude_labels_trans <- st_transform(latitude_labels, crs = target_crs)
# ggplot() +
# geom_sf(data = worldmap_trans, fill = "grey", col = "grey") +
# geom_sf(data = coastline_trans) +
# geom_sf(data = bbox_graticules_trans) +
# geom_sf(data = latitude_graticules_trans,
# col = "grey60",
# linewidth = 0.2) +
# geom_sf_text(data = latitude_labels_trans,
# aes(label = lat_label),
# size = 3,
# col = "grey60")
path_pCO2_products <-
"/nfs/kryo/work/datasets/gridded/ocean/2d/observation/pco2/"
path_OceanSODA <-
"/nfs/kryo/work/gregorl/projects/OceanSODA-ETHZ/releases/v2023-full_carbonate_system/OceanSODA_ETHZ_HRLR-v2023.01-co2fluxvars-netCDF/"
library(ncdf4)
nc <-
nc_open(paste0(
path_pCO2_products,
"VLIZ-SOM_FFN/VLIZ-SOM_FFN_predict.nc"
))
print(nc)
print("VLIZ-SOM_FFN/VLIZ-SOM_FFN_vBAMS2024.nc")
[1] "VLIZ-SOM_FFN/VLIZ-SOM_FFN_vBAMS2024.nc"
pco2_product <-
read_ncdf(
paste0(
path_pCO2_products,
"VLIZ-SOM_FFN/VLIZ-SOM_FFN_predict.nc"
),
var = c("dco2", "atm_co2", "sol", "kw", "spco2_smoothed", "fgco2_smoothed"),
ignore_bounds = TRUE,
make_units = FALSE
)
pco2_product_input <-
read_ncdf(
paste0(
path_pCO2_products,
"VLIZ-SOM_FFN/VLIZ-SOM_FFN_inputs.nc"
),
var = c("sst", "sss", "chl", "wind"),
ignore_bounds = TRUE,
make_units = FALSE
)
pco2_product <- c(pco2_product, pco2_product_input)
rm(pco2_product_input)
pco2_product <- pco2_product %>%
as_tibble()
pco2_product <-
pco2_product %>%
rename(spco2 = spco2_smoothed,
fgco2 = fgco2_smoothed,
salinity = sss,
temperature = sst)
pco2_product <-
pco2_product %>%
mutate(across(-c(lon, lat, time), ~ replace(., . >= 1e+19, NA)))
pco2_product <-
pco2_product %>%
mutate(area = earth_surf(lat, lon),
year = year(time),
month = month(time))
pco2_product <-
pco2_product %>%
mutate(lon = if_else(lon < 20, lon + 360, lon),
wind = sqrt(wind))
pco2_product <-
pco2_product %>%
mutate(
sfco2 = p2fCO2(T = temperature,
pCO2 = spco2),
atm_fco2 = p2fCO2(T = temperature,
pCO2 = atm_co2),
dfco2 = sfco2 - atm_fco2
)
pco2_product <-
pco2_product %>%
mutate(kw_sol = kw * sol)
# pco2_product %>%
# ggplot(aes(dco2-(spco2-atm_co2))) +
# geom_histogram()
#
# pco2_product %>%
# ggplot(aes(dfco2-(sfco2-atm_fco2))) +
# geom_histogram()
pco2_product <-
pco2_product %>%
select(-c(dco2, atm_co2, spco2))
pCO2_product_preprocessing <-
knitr::knit_expand(file = here::here("analysis/child/pCO2_product_preprocessing.Rmd"))
biome_mask <-
read_rds(here::here("data/biome_mask.rds"))
map <-
read_rds(here::here("data/map.rds"))
key_biomes <-
read_rds(here::here("data/key_biomes.rds"))
super_biomes <-
read_rds(here::here("data/super_biomes.rds"))
super_biome_mask <-
read_rds(here::here("data/super_biome_mask.rds"))
labels_breaks <- function(i_name) {
if (i_name == "dco2") {
i_legend_title <- "ΔpCO<sub>2</sub><br>(µatm)"
# i_breaks <- c(-Inf, seq(0, 80, 10), Inf)
# i_contour_level <- 50
# i_contour_level_abs <- 2200
}
if (i_name == "dfco2") {
i_legend_title <- "ΔfCO<sub>2</sub><br>(µatm)"
# i_breaks <- c(-Inf, seq(0, 80, 10), Inf)
# i_contour_level <- 50
# i_contour_level_abs <- 2200
}
if (i_name == "atm_co2") {
i_legend_title <- "pCO<sub>2,atm</sub><br>(µatm)"
# i_breaks <- c(-Inf, seq(0, 80, 10), Inf)
# i_contour_level <- 50
# i_contour_level_abs <- 2200
}
if (i_name == "atm_fco2") {
i_legend_title <- "fCO<sub>2,atm</sub><br>(µatm)"
# i_breaks <- c(-Inf, seq(0, 80, 10), Inf)
# i_contour_level <- 50
# i_contour_level_abs <- 2200
}
if (i_name == "sol") {
i_legend_title <- "K<sub>0</sub><br>(mol m<sup>-3</sup> µatm<sup>-1</sup>)"
# i_breaks <- c(-Inf, seq(0, 80, 10), Inf)
# i_contour_level <- 50
# i_contour_level_abs <- 2200
}
if (i_name == "kw") {
i_legend_title <- "k<sub>w</sub><br>(m yr<sup>-1</sup>)"
# i_breaks <- c(-Inf, seq(0, 80, 10), Inf)
# i_contour_level <- 50
# i_contour_level_abs <- 2200
}
if (i_name == "kw_sol") {
i_legend_title <- "k<sub>w</sub> K<sub>0</sub><br>(mol yr<sup>-1</sup> m<sup>-2</sup> µatm<sup>-1</sup>)"
# i_breaks <- c(-Inf, seq(0, 80, 10), Inf)
# i_contour_level <- 50
# i_contour_level_abs <- 2200
}
if (i_name == "spco2") {
i_legend_title <- "pCO<sub>2,ocean</sub><br>(µatm)"
# i_breaks <- c(-Inf, seq(0, 80, 10), Inf)
# i_contour_level <- 50
# i_contour_level_abs <- 2200
}
if (i_name == "sfco2") {
i_legend_title <- "fCO<sub>2,ocean</sub><br>(µatm)"
# i_breaks <- c(-Inf, seq(0, 80, 10), Inf)
# i_contour_level <- 50
# i_contour_level_abs <- 2200
}
if (i_name == "fgco2") {
i_legend_title <- "FCO<sub>2</sub><br>(mol m<sup>-2</sup> yr<sup>-1</sup>)"
# i_breaks <- c(-Inf, seq(0, 80, 10), Inf)
# i_contour_level <- 50
# i_contour_level_abs <- 2200
}
if (i_name == "fgco2_hov") {
i_legend_title <- "FCO<sub>2</sub><br>(PgC deg<sup>-1</sup> yr<sup>-1</sup>)"
# i_breaks <- c(-Inf, seq(0, 80, 10), Inf)
# i_contour_level <- 50
# i_contour_level_abs <- 2200
}
if (i_name == "fgco2_int") {
i_legend_title <- "FCO<sub>2</sub><br>(PgC yr<sup>-1</sup>)"
# i_breaks <- c(-Inf, seq(0, 80, 10), Inf)
# i_contour_level <- 50
# i_contour_level_abs <- 2200
}
if (i_name == "temperature") {
i_legend_title <- "SST<br>(°C)"
# i_breaks <- c(-Inf, seq(0, 80, 10), Inf)
# i_contour_level <- 50
# i_contour_level_abs <- 2200
}
if (i_name == "salinity") {
i_legend_title <- "SSS"
# i_breaks <- c(-Inf, seq(0, 80, 10), Inf)
# i_contour_level <- 50
# i_contour_level_abs <- 2200
}
if (i_name == "chl") {
i_legend_title <- "lg(Chl-a)<br>(lg(mg m<sup>-3</sup>))"
# i_breaks <- c(-Inf, seq(0, 80, 10), Inf)
# i_contour_level <- 50
# i_contour_level_abs <- 2200
}
if (i_name == "mld") {
i_legend_title <- "lg(MLD)<br>(lg(m))"
# i_breaks <- c(-Inf, seq(0, 80, 10), Inf)
# i_contour_level <- 50
# i_contour_level_abs <- 2200
}
if (i_name == "press") {
i_legend_title <- "pressure<sub>atm</sub><br>(Pa)"
# i_breaks <- c(-Inf, seq(0, 80, 10), Inf)
# i_contour_level <- 50
# i_contour_level_abs <- 2200
}
if (i_name == "wind") {
i_legend_title <- "Wind <br>(m sec<sup>-1</sup>)"
# i_breaks <- c(-Inf, seq(0, 80, 10), Inf)
# i_contour_level <- 50
# i_contour_level_abs <- 2200
}
if (i_name == "SSH") {
i_legend_title <- "SSH <br>(m)"
# i_breaks <- c(-Inf, seq(0, 80, 10), Inf)
# i_contour_level <- 50
# i_contour_level_abs <- 2200
}
if (i_name == "fice") {
i_legend_title <- "Sea ice <br>(%)"
# i_breaks <- c(-Inf, seq(0, 80, 10), Inf)
# i_contour_level <- 50
# i_contour_level_abs <- 2200
}
all_labels_breaks <- lst(i_legend_title,
# i_breaks,
# i_contour_level,
# i_contour_level_abs
)
return(all_labels_breaks)
}
# labels_breaks("fgco2")
x_axis_labels <-
c(
"dco2" = labels_breaks("dco2")$i_legend_title,
"dfco2" = labels_breaks("dfco2")$i_legend_title,
"atm_co2" = labels_breaks("atm_co2")$i_legend_title,
"atm_fco2" = labels_breaks("atm_fco2")$i_legend_title,
"sol" = labels_breaks("sol")$i_legend_title,
"kw" = labels_breaks("kw")$i_legend_title,
"kw_sol" = labels_breaks("kw_sol")$i_legend_title,
"spco2" = labels_breaks("spco2")$i_legend_title,
"sfco2" = labels_breaks("sfco2")$i_legend_title,
"fgco2_hov" = labels_breaks("fgco2_hov")$i_legend_title,
"fgco2_int" = labels_breaks("fgco2_int")$i_legend_title,
"temperature" = labels_breaks("temperature")$i_legend_title,
"salinity" = labels_breaks("salinity")$i_legend_title,
"chl" = labels_breaks("chl")$i_legend_title,
"mld" = labels_breaks("mld")$i_legend_title,
"press" = labels_breaks("press")$i_legend_title,
"wind" = labels_breaks("wind")$i_legend_title,
"SSH" = labels_breaks("SSH")$i_legend_title,
"fice" = labels_breaks("fice")$i_legend_title
)
name_quadratic_fit <- c("atm_co2", "atm_fco2", "spco2", "sfco2")
start_year <- 1990
name_divergent <- c("dco2", "dfco2", "fgco2", "fgco2_hov", "fgco2_int")
pco2_product <-
pco2_product %>%
filter(year >= start_year)
pco2_product <-
full_join(pco2_product,
biome_mask)
# set all values outside biome mask to NA
pco2_product <-
pco2_product %>%
mutate(across(-c(lat, lon, time, area, year, month, biome),
~ if_else(is.na(biome), NA, .)))
# apply coarse grid
pco2_product_coarse <-
m_grid_horizontal_coarse(pco2_product)
pco2_product_coarse <-
pco2_product_coarse %>%
select(-c(lon, lat, time, biome)) %>%
group_by(year, month, lon_grid, lat_grid) %>%
summarise(across(-area,
~ weighted.mean(., area))) %>%
ungroup() %>%
rename(lon = lon_grid, lat = lat_grid)
pco2_product_coarse <-
pco2_product_coarse %>%
pivot_longer(-c(year, month, lon, lat)) %>%
drop_na() %>%
pivot_wider()
# compute annual means
pco2_product_coarse_annual <-
pco2_product_coarse %>%
select(-month) %>%
group_by(year, lon, lat) %>%
summarise(across(where(is.numeric),
~ mean(.))) %>%
ungroup()
pco2_product_coarse_annual <-
pco2_product_coarse_annual %>%
pivot_longer(-c(year, lon, lat))
## compute monthly means
pco2_product_coarse_monthly <-
pco2_product_coarse %>%
group_by(year, month, lon, lat) %>%
summarise(across(where(is.numeric),
~ mean(.))) %>%
ungroup()
pco2_product_coarse_monthly <-
pco2_product_coarse_monthly %>%
pivot_longer(-c(year, month, lon, lat))
pco2_product_monthly_global <-
pco2_product %>%
filter(!is.na(fgco2)) %>%
mutate(fgco2_int = fgco2) %>%
select(-c(lon, lat, year, month, biome)) %>%
group_by(time) %>%
summarise(across(-c(fgco2_int, area),
~ weighted.mean(., area, na.rm = TRUE)),
across(fgco2_int,
~ sum(. * area, na.rm = TRUE) * 12.01 * 1e-15)) %>%
ungroup()
pco2_product_monthly_biome <-
pco2_product %>%
filter(!is.na(fgco2)) %>%
mutate(fgco2_int = fgco2) %>%
select(-c(lon, lat, year, month)) %>%
group_by(time, biome) %>%
summarise(across(-c(fgco2_int, area),
~ weighted.mean(., area, na.rm = TRUE)),
across(fgco2_int,
~ sum(. * area, na.rm = TRUE) * 12.01 * 1e-15)) %>%
ungroup()
pco2_product_monthly_biome_super <-
pco2_product %>%
filter(!is.na(fgco2)) %>%
mutate(fgco2_int = fgco2) %>%
mutate(
biome = case_when(
str_detect(biome, "NA-") ~ "North Atlantic",
str_detect(biome, "NP-") ~ "North Pacific",
str_detect(biome, "SO-") ~ "Southern Ocean",
TRUE ~ "other"
)
) %>%
filter(biome != "other") %>%
select(-c(lon, lat, year, month)) %>%
group_by(time, biome) %>%
summarise(across(-c(fgco2_int, area),
~ weighted.mean(., area, na.rm = TRUE)),
across(fgco2_int,
~ sum(. * area, na.rm = TRUE) * 12.01 * 1e-15)) %>%
ungroup()
pco2_product_monthly <-
bind_rows(pco2_product_monthly_global %>%
mutate(biome = "Global"),
pco2_product_monthly_biome,
pco2_product_monthly_biome_super)
rm(
pco2_product_monthly_global,
pco2_product_monthly_biome,
pco2_product_monthly_biome_super
)
pco2_product_monthly <-
pco2_product_monthly %>%
filter(!is.na(biome))
pco2_product_monthly <-
pco2_product_monthly %>%
mutate(year = year(time),
month = month(time),
.after = time)
pco2_product_monthly <-
pco2_product_monthly %>%
pivot_longer(-c(time, year, month, biome))
The following Hovmoeller plots show the value of each variable as provided through the pCO2 product. Hovmoeller plots are first presented as annual means, and than as monthly means.
pco2_product_hovmoeller_monthly_annual <-
pco2_product %>%
mutate(fgco2_int = fgco2) %>%
select(-c(lon, time, month, biome)) %>%
group_by(year, lat) %>%
summarise(across(-c(fgco2_int, area),
~ weighted.mean(., area, na.rm = TRUE)),
across(fgco2_int,
~ sum(. * area, na.rm = TRUE) * 12.01 * 1e-15)) %>%
ungroup() %>%
rename(fgco2_hov = fgco2_int) %>%
filter(fgco2_hov != 0)
pco2_product_hovmoeller_monthly_annual <-
pco2_product_hovmoeller_monthly_annual %>%
pivot_longer(-c(year, lat)) %>%
drop_na()
pco2_product_hovmoeller_monthly_annual %>%
filter(!(name %in% name_divergent)) %>%
group_split(name) %>%
# tail(5) %>%
map(
~ ggplot(data = .x,
aes(year, lat, fill = value)) +
geom_raster() +
scale_fill_viridis_c(name = labels_breaks(.x %>% distinct(name))) +
theme(legend.title = element_markdown()) +
coord_cartesian(expand = 0) +
labs(title = "Annual means",
y = "Latitude") +
theme(axis.title.x = element_blank())
)
[[1]]
Version | Author | Date |
---|---|---|
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
3a9a60f | jens-daniel-mueller | 2024-03-29 |
6343e59 | jens-daniel-mueller | 2024-03-27 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
934da22 | jens-daniel-mueller | 2024-03-22 |
ae4041c | jens-daniel-mueller | 2024-03-22 |
b41fa51 | jens-daniel-mueller | 2024-03-19 |
[[2]]
Version | Author | Date |
---|---|---|
009791f | jens-daniel-mueller | 2024-05-14 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
6343e59 | jens-daniel-mueller | 2024-03-27 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
934da22 | jens-daniel-mueller | 2024-03-22 |
ae4041c | jens-daniel-mueller | 2024-03-22 |
b41fa51 | jens-daniel-mueller | 2024-03-19 |
[[3]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
3a9a60f | jens-daniel-mueller | 2024-03-29 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
934da22 | jens-daniel-mueller | 2024-03-22 |
ae4041c | jens-daniel-mueller | 2024-03-22 |
b41fa51 | jens-daniel-mueller | 2024-03-19 |
[[4]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
6343e59 | jens-daniel-mueller | 2024-03-27 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
934da22 | jens-daniel-mueller | 2024-03-22 |
ae4041c | jens-daniel-mueller | 2024-03-22 |
b41fa51 | jens-daniel-mueller | 2024-03-19 |
[[5]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
3a9a60f | jens-daniel-mueller | 2024-03-29 |
6343e59 | jens-daniel-mueller | 2024-03-27 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
934da22 | jens-daniel-mueller | 2024-03-22 |
ae4041c | jens-daniel-mueller | 2024-03-22 |
b41fa51 | jens-daniel-mueller | 2024-03-19 |
[[6]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
6343e59 | jens-daniel-mueller | 2024-03-27 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
934da22 | jens-daniel-mueller | 2024-03-22 |
ae4041c | jens-daniel-mueller | 2024-03-22 |
b41fa51 | jens-daniel-mueller | 2024-03-19 |
[[7]]
[[8]]
[[9]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
3a9a60f | jens-daniel-mueller | 2024-03-29 |
6343e59 | jens-daniel-mueller | 2024-03-27 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
pco2_product_hovmoeller_monthly_annual %>%
filter(name %in% name_divergent) %>%
group_split(name) %>%
# head(1) %>%
map(
~ ggplot(data = .x,
aes(year, lat, fill = value)) +
geom_raster() +
scale_fill_divergent(name = labels_breaks(.x %>% distinct(name))) +
theme(legend.title = element_markdown()) +
coord_cartesian(expand = 0) +
labs(title = "Annual means",
y = "Latitude") +
theme(axis.title.x = element_blank())
)
[[1]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
3a9a60f | jens-daniel-mueller | 2024-03-29 |
6343e59 | jens-daniel-mueller | 2024-03-27 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
[[2]]
[[3]]
pco2_product_hovmoeller_monthly <-
pco2_product %>%
mutate(fgco2_int = fgco2) %>%
select(-c(lon, time, biome)) %>%
group_by(year, month, lat) %>%
summarise(across(-c(fgco2_int, area),
~ weighted.mean(., area, na.rm = TRUE)),
across(fgco2_int,
~ sum(. * area, na.rm = TRUE) * 12.01 * 1e-15)) %>%
ungroup() %>%
rename(fgco2_hov = fgco2_int) %>%
filter(fgco2_hov != 0)
pco2_product_hovmoeller_monthly <-
pco2_product_hovmoeller_monthly %>%
pivot_longer(-c(year, month, lat)) %>%
drop_na()
pco2_product_hovmoeller_monthly <-
pco2_product_hovmoeller_monthly %>%
mutate(decimal = year + (month-1) / 12)
pco2_product_hovmoeller_monthly %>%
filter(!(name %in% name_divergent)) %>%
group_split(name) %>%
# head(1) %>%
map(
~ ggplot(data = .x,
aes(decimal, lat, fill = value)) +
geom_raster() +
scale_fill_viridis_c(name = labels_breaks(.x %>% distinct(name))) +
theme(legend.title = element_markdown()) +
labs(title = "Monthly means",
y = "Latitude") +
coord_cartesian(expand = 0) +
theme(axis.title.x = element_blank())
)
[[1]]
Version | Author | Date |
---|---|---|
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
3a9a60f | jens-daniel-mueller | 2024-03-29 |
6343e59 | jens-daniel-mueller | 2024-03-27 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
934da22 | jens-daniel-mueller | 2024-03-22 |
ae4041c | jens-daniel-mueller | 2024-03-22 |
b41fa51 | jens-daniel-mueller | 2024-03-19 |
[[2]]
Version | Author | Date |
---|---|---|
009791f | jens-daniel-mueller | 2024-05-14 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
6343e59 | jens-daniel-mueller | 2024-03-27 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
934da22 | jens-daniel-mueller | 2024-03-22 |
ae4041c | jens-daniel-mueller | 2024-03-22 |
b41fa51 | jens-daniel-mueller | 2024-03-19 |
[[3]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
3a9a60f | jens-daniel-mueller | 2024-03-29 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
934da22 | jens-daniel-mueller | 2024-03-22 |
ae4041c | jens-daniel-mueller | 2024-03-22 |
b41fa51 | jens-daniel-mueller | 2024-03-19 |
[[4]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
6343e59 | jens-daniel-mueller | 2024-03-27 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
934da22 | jens-daniel-mueller | 2024-03-22 |
ae4041c | jens-daniel-mueller | 2024-03-22 |
b41fa51 | jens-daniel-mueller | 2024-03-19 |
[[5]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
3a9a60f | jens-daniel-mueller | 2024-03-29 |
6343e59 | jens-daniel-mueller | 2024-03-27 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
934da22 | jens-daniel-mueller | 2024-03-22 |
ae4041c | jens-daniel-mueller | 2024-03-22 |
b41fa51 | jens-daniel-mueller | 2024-03-19 |
[[6]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
6343e59 | jens-daniel-mueller | 2024-03-27 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
934da22 | jens-daniel-mueller | 2024-03-22 |
ae4041c | jens-daniel-mueller | 2024-03-22 |
b41fa51 | jens-daniel-mueller | 2024-03-19 |
[[7]]
[[8]]
[[9]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
3a9a60f | jens-daniel-mueller | 2024-03-29 |
6343e59 | jens-daniel-mueller | 2024-03-27 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
pco2_product_hovmoeller_monthly %>%
filter(name %in% name_divergent) %>%
group_split(name) %>%
# head(1) %>%
map(
~ ggplot(data = .x,
aes(decimal, lat, fill = value)) +
geom_raster() +
scale_fill_divergent(name = labels_breaks(.x %>% distinct(name))) +
theme(legend.title = element_markdown()) +
labs(title = "Monthly means",
y = "Latitude") +
coord_cartesian(expand = 0) +
theme(axis.title.x = element_blank())
)
[[1]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
3a9a60f | jens-daniel-mueller | 2024-03-29 |
6343e59 | jens-daniel-mueller | 2024-03-27 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
[[2]]
[[3]]
pCO2productanalysis_2023 <-
knitr::knit_expand(
file = here::here("analysis/child/pCO2_product_analysis.Rmd"),
product_name = "SOM_FFN",
year_anom = 2023
)
For the detection of anomalies at any point in time and space, we fit regression models and compare the fitted to the actual value.
We use linear regression models for all parameters, except for , which are approximated with quadratic fits.
The regression models are fitted to all data since , except 2023.
anomaly_determination <- function(df,...) {
group_by <- quos(...)
# group_by <- quos(lon, lat)
# df <- pco2_product_coarse_annual
# Linear regression models
df_lm <-
df %>%
filter(year != 2023,
!(name %in% name_quadratic_fit)) %>%
nest(data = -c(name, !!!group_by)) %>%
mutate(
fit = map(data, ~ lm(value ~ year, data = .x)),
tidied = map(fit, tidy),
augmented = map(fit, augment)
)
df_lm_year_anom <-
full_join(
df_lm %>%
unnest(tidied) %>%
select(name, !!!group_by, term, estimate) %>%
pivot_wider(names_from = term,
values_from = estimate) %>%
mutate(fit = `(Intercept)` + year * 2023) %>%
select(name, !!!group_by, fit) %>%
mutate(year = 2023),
df %>%
filter(year == 2023,
!(name %in% name_quadratic_fit))
) %>%
mutate(resid = value - fit)
df_lm <-
bind_rows(
df_lm %>%
unnest(augmented) %>%
select(name, !!!group_by, year, value, fit = .fitted, resid = .resid),
df_lm_year_anom
)
rm(df_lm_year_anom)
# Quadratic regression models
df_quadratic <-
df %>%
filter(year != 2023,
name %in% name_quadratic_fit) %>%
nest(data = -c(name, !!!group_by)) %>%
mutate(
fit = map(data, ~ lm(value ~ year + I(year ^ 2), data = .x)),
tidied = map(fit, tidy),
augmented = map(fit, augment)
)
df_quadratic_year_anom <-
full_join(
df_quadratic %>%
unnest(tidied) %>%
select(name, !!!group_by, term, estimate) %>%
pivot_wider(names_from = term,
values_from = estimate) %>%
mutate(fit = `(Intercept)` + year * 2023 + `I(year^2)` * 2023 ^ 2) %>%
select(name, !!!group_by, fit) %>%
mutate(year = 2023),
df %>%
filter(year == 2023,
name %in% name_quadratic_fit)
) %>%
mutate(resid = value - fit)
df_quadratic <-
bind_rows(
df_quadratic %>%
unnest(augmented) %>%
select(name, !!!group_by, year, value, fit = .fitted, resid = .resid),
df_quadratic_year_anom
)
rm(df_quadratic_year_anom)
# Join linear and quadratic regression results
df_regression <-
bind_rows(df_lm,
df_quadratic)
df_regression <-
df_regression %>%
arrange(year)
rm(df_lm,
df_quadratic)
return(df_regression)
}
anomaly_determination <- function(df,...) {
group_by <- quos(...)
# group_by <- quos(biome)
# group_by <- quos(lon, lat)
# df <- pco2_product_coarse_annual
# Climatoligcal mean
df_mean <-
df %>%
filter(year < 2023,
year >= 2023-5) %>%
group_by(name, !!!group_by) %>%
summarize(
fit = mean(value, na.rm = TRUE)
) %>%
ungroup()
df_mean <-
full_join(
df_mean,
df
) %>%
mutate(resid = value - fit)
return(df_mean)
}
The following maps show the absolute state of each variable in 2023 as provided through the pCO2 product, the change in that variable from 1990 to 2023, as well es the anomalies in 2023. Changes and anomalies are determined based on the predicted value of a linear regression model fit to the data from 1990 to 2022.
Maps are first presented as annual means, and than as monthly means. Note that the 2023 predictions for the monthly maps are done individually for each month, such the mean seasonal anomaly from the annual mean is removed.
Note: The increase the computational speed, I regridded all maps to 5X5° grid.
pco2_product_coarse_annual_regression <-
pco2_product_coarse_annual %>%
drop_na() %>%
anomaly_determination(lon, lat)
pco2_product_coarse_annual_regression <-
pco2_product_coarse_annual_regression %>%
drop_na()
pco2_product_coarse_annual_regression %>%
filter(year == 2023,
!(name %in% name_divergent)) %>%
group_split(name) %>%
# head(1) %>%
map(
~ map +
geom_tile(data = .x,
aes(lon, lat, fill = value)) +
labs(title = paste("Annual mean", 2023)) +
scale_fill_viridis_c(name = labels_breaks(.x %>% distinct(name))) +
theme(legend.title = element_markdown())
)
[[1]]
Version | Author | Date |
---|---|---|
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
c9d994c | jens-daniel-mueller | 2024-04-04 |
3a9a60f | jens-daniel-mueller | 2024-03-29 |
6343e59 | jens-daniel-mueller | 2024-03-27 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
934da22 | jens-daniel-mueller | 2024-03-22 |
ae4041c | jens-daniel-mueller | 2024-03-22 |
b41fa51 | jens-daniel-mueller | 2024-03-19 |
[[2]]
Version | Author | Date |
---|---|---|
009791f | jens-daniel-mueller | 2024-05-14 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
c9d994c | jens-daniel-mueller | 2024-04-04 |
6343e59 | jens-daniel-mueller | 2024-03-27 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
934da22 | jens-daniel-mueller | 2024-03-22 |
ae4041c | jens-daniel-mueller | 2024-03-22 |
b41fa51 | jens-daniel-mueller | 2024-03-19 |
[[3]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
c9d994c | jens-daniel-mueller | 2024-04-04 |
3a9a60f | jens-daniel-mueller | 2024-03-29 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
934da22 | jens-daniel-mueller | 2024-03-22 |
ae4041c | jens-daniel-mueller | 2024-03-22 |
b41fa51 | jens-daniel-mueller | 2024-03-19 |
[[4]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
c9d994c | jens-daniel-mueller | 2024-04-04 |
6343e59 | jens-daniel-mueller | 2024-03-27 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
934da22 | jens-daniel-mueller | 2024-03-22 |
ae4041c | jens-daniel-mueller | 2024-03-22 |
b41fa51 | jens-daniel-mueller | 2024-03-19 |
[[5]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
c9d994c | jens-daniel-mueller | 2024-04-04 |
3a9a60f | jens-daniel-mueller | 2024-03-29 |
6343e59 | jens-daniel-mueller | 2024-03-27 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
934da22 | jens-daniel-mueller | 2024-03-22 |
ae4041c | jens-daniel-mueller | 2024-03-22 |
b41fa51 | jens-daniel-mueller | 2024-03-19 |
[[6]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
c9d994c | jens-daniel-mueller | 2024-04-04 |
6343e59 | jens-daniel-mueller | 2024-03-27 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
934da22 | jens-daniel-mueller | 2024-03-22 |
ae4041c | jens-daniel-mueller | 2024-03-22 |
b41fa51 | jens-daniel-mueller | 2024-03-19 |
[[7]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
c9d994c | jens-daniel-mueller | 2024-04-04 |
3946ecd | jens-daniel-mueller | 2024-03-27 |
6343e59 | jens-daniel-mueller | 2024-03-27 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
[[8]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
c9d994c | jens-daniel-mueller | 2024-04-04 |
6343e59 | jens-daniel-mueller | 2024-03-27 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
[[9]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
c9d994c | jens-daniel-mueller | 2024-04-04 |
3a9a60f | jens-daniel-mueller | 2024-03-29 |
6343e59 | jens-daniel-mueller | 2024-03-27 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
pco2_product_coarse_annual_regression %>%
filter(year == 2023,
name %in% name_divergent) %>%
group_split(name) %>%
# head(1) %>%
map( ~ map +
geom_tile(data = .x,
aes(lon, lat, fill = value)) +
labs(title = paste("Annual mean", 2023)) +
scale_fill_divergent(
name = labels_breaks(.x %>% distinct(name))) +
theme(legend.title = element_markdown())
)
[[1]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
c9d994c | jens-daniel-mueller | 2024-04-04 |
3a9a60f | jens-daniel-mueller | 2024-03-29 |
6343e59 | jens-daniel-mueller | 2024-03-27 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
[[2]]
pco2_product_coarse_annual_regression <-
pco2_product_coarse_annual_regression %>%
group_by(name) %>%
filter(year %in% c(min(year), max(year), 2023)) %>%
ungroup()
pco2_product_coarse_annual_regression %>%
select(-c(value, resid)) %>%
filter(year %in% c(min(year), max(year))) %>%
arrange(year) %>%
group_by(lon, lat, name) %>%
mutate(change = fit - lag(fit),
period = paste(lag(year), year, sep = "-")) %>%
ungroup() %>%
filter(!is.na(change)) %>%
group_split(name) %>%
# head(1) %>%
map(
~ map +
geom_tile(data = .x,
aes(lon, lat, fill = change)) +
labs(title = paste("Change: ",.x$period)) +
scale_fill_divergent(name = labels_breaks(.x %>% distinct(name))) +
theme(legend.title = element_markdown())
)
[[1]]
[[2]]
[[3]]
Version | Author | Date |
---|---|---|
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[4]]
[[5]]
[[6]]
[[7]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[8]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[9]]
[[10]]
[[11]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
pco2_product_coarse_annual_regression %>%
filter(year == 2023) %>%
group_split(name) %>%
# head(1) %>%
map( ~ map +
geom_tile(data = .x,
aes(lon, lat, fill = resid)) +
labs(title = paste(2023,"anomaly")) +
scale_fill_divergent(
name = labels_breaks(.x %>% distinct(name))) +
theme(legend.title = element_markdown())
)
[[1]]
[[2]]
[[3]]
Version | Author | Date |
---|---|---|
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[4]]
[[5]]
[[6]]
[[7]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[8]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[9]]
[[10]]
[[11]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
pco2_product_coarse_annual_regression %>%
write_csv(paste0("../data/","SOM_FFN","_","2023","_anomaly_map_annual.csv"))
pco2_product_coarse_monthly_regression <-
pco2_product_coarse_monthly %>%
drop_na() %>%
anomaly_determination(lon, lat, month)
pco2_product_coarse_monthly_regression <-
pco2_product_coarse_monthly_regression %>%
drop_na()
pco2_product_coarse_monthly_regression %>%
filter(year == 2023,
!(name %in% name_divergent)) %>%
group_split(name) %>%
# head(1) %>%
map(
~ map +
geom_tile(data = .x,
aes(lon, lat, fill = value)) +
labs(title = paste("Monthly means", 2023)) +
scale_fill_viridis_c(name = labels_breaks(.x %>% distinct(name))) +
theme(legend.title = element_markdown()) +
facet_wrap( ~ month, ncol = 2)
)
[[1]]
Version | Author | Date |
---|---|---|
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
c9d994c | jens-daniel-mueller | 2024-04-04 |
3a9a60f | jens-daniel-mueller | 2024-03-29 |
6343e59 | jens-daniel-mueller | 2024-03-27 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
934da22 | jens-daniel-mueller | 2024-03-22 |
ae4041c | jens-daniel-mueller | 2024-03-22 |
b41fa51 | jens-daniel-mueller | 2024-03-19 |
[[2]]
Version | Author | Date |
---|---|---|
009791f | jens-daniel-mueller | 2024-05-14 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
c9d994c | jens-daniel-mueller | 2024-04-04 |
6343e59 | jens-daniel-mueller | 2024-03-27 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
934da22 | jens-daniel-mueller | 2024-03-22 |
ae4041c | jens-daniel-mueller | 2024-03-22 |
b41fa51 | jens-daniel-mueller | 2024-03-19 |
[[3]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
c9d994c | jens-daniel-mueller | 2024-04-04 |
3a9a60f | jens-daniel-mueller | 2024-03-29 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
934da22 | jens-daniel-mueller | 2024-03-22 |
ae4041c | jens-daniel-mueller | 2024-03-22 |
b41fa51 | jens-daniel-mueller | 2024-03-19 |
[[4]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
c9d994c | jens-daniel-mueller | 2024-04-04 |
6343e59 | jens-daniel-mueller | 2024-03-27 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
934da22 | jens-daniel-mueller | 2024-03-22 |
ae4041c | jens-daniel-mueller | 2024-03-22 |
b41fa51 | jens-daniel-mueller | 2024-03-19 |
[[5]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
c9d994c | jens-daniel-mueller | 2024-04-04 |
3a9a60f | jens-daniel-mueller | 2024-03-29 |
6343e59 | jens-daniel-mueller | 2024-03-27 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
934da22 | jens-daniel-mueller | 2024-03-22 |
ae4041c | jens-daniel-mueller | 2024-03-22 |
b41fa51 | jens-daniel-mueller | 2024-03-19 |
[[6]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
c9d994c | jens-daniel-mueller | 2024-04-04 |
6343e59 | jens-daniel-mueller | 2024-03-27 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
934da22 | jens-daniel-mueller | 2024-03-22 |
ae4041c | jens-daniel-mueller | 2024-03-22 |
b41fa51 | jens-daniel-mueller | 2024-03-19 |
[[7]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
c9d994c | jens-daniel-mueller | 2024-04-04 |
3946ecd | jens-daniel-mueller | 2024-03-27 |
6343e59 | jens-daniel-mueller | 2024-03-27 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
[[8]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
c9d994c | jens-daniel-mueller | 2024-04-04 |
6343e59 | jens-daniel-mueller | 2024-03-27 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
[[9]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
c9d994c | jens-daniel-mueller | 2024-04-04 |
3a9a60f | jens-daniel-mueller | 2024-03-29 |
6343e59 | jens-daniel-mueller | 2024-03-27 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
pco2_product_coarse_monthly_regression %>%
filter(year == 2023,
name %in% name_divergent) %>%
group_split(name) %>%
# head(1) %>%
map(
~ map +
geom_tile(data = .x,
aes(lon, lat, fill = value)) +
labs(title = paste("Monthly means", 2023)) +
scale_fill_divergent(name = labels_breaks(.x %>% distinct(name))) +
theme(legend.title = element_markdown()) +
facet_wrap( ~ month, ncol = 2)
)
[[1]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
c9d994c | jens-daniel-mueller | 2024-04-04 |
3a9a60f | jens-daniel-mueller | 2024-03-29 |
6343e59 | jens-daniel-mueller | 2024-03-27 |
1546f6d | jens-daniel-mueller | 2024-03-27 |
[[2]]
pco2_product_coarse_monthly_regression %>%
group_by(name) %>%
filter(year %in% c(min(year), max(year))) %>%
ungroup() %>%
select(-c(value, resid)) %>%
arrange(year) %>%
group_by(lon, lat, name, month) %>%
mutate(change = fit - lag(fit),
period = paste(lag(year), year, sep = "-")) %>%
ungroup() %>%
filter(!is.na(change)) %>%
group_split(name) %>%
# head(1) %>%
map(
~ map +
geom_tile(data = .x,
aes(lon, lat, fill = change)) +
labs(title = paste("Change: ", .x$period)) +
scale_fill_divergent(name = labels_breaks(.x %>% distinct(name))) +
theme(legend.title = element_markdown()) +
facet_wrap(~ month, ncol = 2)
)
[[1]]
[[2]]
[[3]]
Version | Author | Date |
---|---|---|
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[4]]
[[5]]
[[6]]
[[7]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[8]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[9]]
[[10]]
[[11]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
pco2_product_coarse_monthly_regression %>%
filter(year == 2023) %>%
group_split(name) %>%
# head(1) %>%
map(
~ map +
geom_tile(data = .x,
aes(lon, lat, fill = resid)) +
labs(title = paste(2023, "anomaly")) +
scale_fill_divergent(name = labels_breaks(.x %>% distinct(name))) +
theme(legend.title = element_markdown()) +
facet_wrap( ~ month, ncol = 2)
)
[[1]]
[[2]]
[[3]]
Version | Author | Date |
---|---|---|
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[4]]
[[5]]
[[6]]
[[7]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[8]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[9]]
[[10]]
[[11]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
pco2_product_coarse_monthly_regression %>%
filter(year == 2023) %>%
write_csv(paste0("../data/","SOM_FFN","_","2023","_anomaly_map_monthly.csv"))
The following Hovmoeller plots show the anomalies from the prediction of the linear/quadratic fits.
Hovmoeller plots are first presented as annual means, and than as monthly means. Note that the predictions for the monthly Hovmoeller plots are done individually for each month, such the mean seasonal anomaly from the annual mean is removed.
pco2_product_hovmoeller_monthly_annual_regression <-
pco2_product_hovmoeller_monthly_annual %>%
anomaly_determination(lat) %>%
filter(!is.na(resid))
pco2_product_hovmoeller_monthly_annual_regression %>%
# filter(name == "mld") %>%
group_split(name) %>%
# head(1) %>%
map(
~ ggplot(data = .x,
aes(year, lat, fill = resid)) +
geom_raster() +
scale_fill_divergent(name = labels_breaks(.x %>% distinct(name))) +
theme(legend.title = element_markdown()) +
coord_cartesian(expand = 0) +
labs(title = "Annual mean anomalies",
y = "Latitude") +
theme(axis.title.x = element_blank())
)
[[1]]
[[2]]
[[3]]
Version | Author | Date |
---|---|---|
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[4]]
[[5]]
[[6]]
[[7]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[8]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[9]]
[[10]]
[[11]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
[[12]]
pco2_product_hovmoeller_monthly_regression <-
pco2_product_hovmoeller_monthly %>%
select(-c(decimal)) %>%
anomaly_determination(lat, month) %>%
filter(!is.na(resid))
pco2_product_hovmoeller_monthly_regression <-
pco2_product_hovmoeller_monthly_regression %>%
mutate(decimal = year + (month - 1) / 12)
pco2_product_hovmoeller_monthly_regression %>%
group_split(name) %>%
# head(1) %>%
map(
~ ggplot(data = .x,
aes(decimal, lat, fill = resid)) +
geom_raster() +
scale_fill_divergent(name = labels_breaks(.x %>% distinct(name))) +
theme(legend.title = element_markdown()) +
coord_cartesian(expand = 0) +
labs(title = "Monthly mean anomalies",
y = "Latitude") +
theme(axis.title.x = element_blank())
)
[[1]]
[[2]]
[[3]]
Version | Author | Date |
---|---|---|
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[4]]
[[5]]
[[6]]
[[7]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[8]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[9]]
[[10]]
[[11]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
[[12]]
pco2_product_hovmoeller_monthly_regression %>%
write_csv(paste0("../data/","SOM_FFN","_","2023","_anomaly_hovmoeller_monthly.csv"))
pco2_product_hovmoeller_monthly_regression %>%
filter(between(year, 2023-2, 2023)) %>%
group_split(name) %>%
# head(1) %>%
map(
~ ggplot(data = .x,
aes(decimal, lat, fill = resid)) +
geom_raster() +
scale_fill_divergent(name = labels_breaks(.x %>% distinct(name))) +
theme(legend.title = element_markdown()) +
coord_cartesian(expand = 0) +
labs(title = "Monthly mean anomalies",
y = "Latitude") +
theme(axis.title.x = element_blank())
)
[[1]]
[[2]]
[[3]]
Version | Author | Date |
---|---|---|
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[4]]
[[5]]
[[6]]
[[7]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[8]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[9]]
[[10]]
[[11]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
[[12]]
The following plots show regionally averaged (or integrated) values of each variable as provided through the pCO2 product, as well as the anomalies from the prediction of a linear/quadratic fit.
Anomalies are first presented relative to the predicted annual mean of each year, hence preserving the seasonality. Furthermore, anomalies are presented relative to the predicted monthly mean values, such that the mean seasonality is removed.
fig.height <- pco2_product_monthly %>%
distinct(name) %>%
nrow()
fig.height <- (fig.height + 2) * 0.1
pco2_product_monthly %>%
filter(biome %in% "Global") %>%
ggplot(aes(month, value, group = as.factor(year))) +
geom_path(data = . %>% filter(!between(year, 2023-1, 2023)),
aes(col = year)) +
scale_color_grayC() +
new_scale_color() +
geom_path(data = . %>% filter(between(year, 2023-1, 2023)),
aes(col = as.factor(year)),
linewidth = 1) +
scale_color_manual(values = c("orange", "red"),
guide = guide_legend(reverse = TRUE,
order = 1)) +
scale_x_continuous(breaks = seq(1, 12, 3), expand = c(0, 0)) +
labs(title = "Absolute values | Global") +
facet_wrap(name ~ .,
scales = "free_y",
labeller = labeller(name = x_axis_labels),
strip.position = "left",
ncol = 2) +
theme(
strip.text.y.left = element_markdown(),
strip.placement = "outside",
strip.background.y = element_blank(),
legend.title = element_blank(),
axis.title.y = element_blank()
)
pco2_product_monthly %>%
filter(biome %in% key_biomes) %>%
ggplot(aes(month, value, group = as.factor(year))) +
geom_path(data = . %>% filter(!between(year, 2023-1, 2023)),
aes(col = year)) +
scale_color_grayC() +
new_scale_color() +
geom_path(data = . %>% filter(between(year, 2023-1, 2023)),
aes(col = as.factor(year)),
linewidth = 1) +
scale_color_manual(values = c("orange", "red"),
guide = guide_legend(reverse = TRUE,
order = 1)) +
scale_x_continuous(breaks = seq(1, 12, 3), expand = c(0, 0)) +
labs(title = "Absolute values | Selected biomes") +
facet_grid(name ~ biome,
scales = "free_y",
labeller = labeller(name = x_axis_labels),
switch = "y") +
theme(
strip.text.y.left = element_markdown(),
strip.placement = "outside",
strip.background.y = element_blank(),
legend.title = element_blank(),
axis.title.y = element_blank()
)
pco2_product_monthly %>%
filter(biome %in% key_biomes) %>%
group_split(biome) %>%
# head(1) %>%
map(
~ ggplot(data = .x,
aes(month, value, group = as.factor(year))) +
geom_path(data = . %>% filter(!between(year, 2023-1, 2023)),
aes(col = year)) +
scale_color_grayC() +
new_scale_color() +
geom_path(
data = . %>% filter(between(year, 2023-1, 2023)),
aes(col = as.factor(year)),
linewidth = 1
) +
scale_color_manual(
values = c("orange", "red"),
guide = guide_legend(reverse = TRUE,
order = 1)
) +
scale_x_continuous(breaks = seq(1, 12, 3), expand = c(0, 0)) +
labs(title = paste("Absolute values |", .x$biome)) +
facet_wrap(name ~ .,
scales = "free_y",
labeller = labeller(name = x_axis_labels),
strip.position = "left",
ncol = 2) +
theme(
strip.text.y.left = element_markdown(),
strip.placement = "outside",
strip.background.y = element_blank(),
legend.title = element_blank(),
axis.title.y = element_blank()
)
)
[[1]]
[[2]]
[[3]]
[[4]]
pco2_product_monthly %>%
filter(biome %in% super_biomes) %>%
ggplot(aes(month, value, group = as.factor(year))) +
geom_path(data = . %>% filter(!between(year, 2023-1, 2023)),
aes(col = year)) +
scale_color_grayC() +
new_scale_color() +
geom_path(data = . %>% filter(between(year, 2023-1, 2023)),
aes(col = as.factor(year)),
linewidth = 1) +
scale_color_manual(values = c("orange", "red"),
guide = guide_legend(reverse = TRUE,
order = 1)) +
scale_x_continuous(breaks = seq(1, 12, 3), expand = c(0, 0)) +
labs(title = "Absolute values | Selected super biomes") +
facet_grid(name ~ biome,
scales = "free_y",
labeller = labeller(name = x_axis_labels),
switch = "y") +
theme(
strip.text.y.left = element_markdown(),
strip.placement = "outside",
strip.background.y = element_blank(),
legend.title = element_blank(),
axis.title.y = element_blank()
)
pco2_product_monthly %>%
filter(biome %in% super_biomes) %>%
group_split(biome) %>%
# head(1) %>%
map(
~ ggplot(data = .x,
aes(month, value, group = as.factor(year))) +
geom_path(data = . %>% filter(!between(year, 2023-1, 2023)),
aes(col = year)) +
scale_color_grayC() +
new_scale_color() +
geom_path(
data = . %>% filter(between(year, 2023-1, 2023)),
aes(col = as.factor(year)),
linewidth = 1
) +
scale_color_manual(
values = c("orange", "red"),
guide = guide_legend(reverse = TRUE,
order = 1)
) +
scale_x_continuous(breaks = seq(1, 12, 3), expand = c(0, 0)) +
labs(title = paste("Absolute values |", .x$biome)) +
facet_wrap(name ~ .,
scales = "free_y",
labeller = labeller(name = x_axis_labels),
strip.position = "left",
ncol = 2) +
theme(
strip.text.y.left = element_markdown(),
strip.placement = "outside",
strip.background.y = element_blank(),
legend.title = element_blank(),
axis.title.y = element_blank()
)
)
[[1]]
[[2]]
pco2_product_annual <-
pco2_product_monthly %>%
group_by(year, biome, name) %>%
summarise(value = mean(value)) %>%
ungroup()
pco2_product_annual %>%
filter(biome %in% "Global") %>%
ggplot(aes(year, value)) +
geom_path() +
geom_point(data = . %>% filter(year != 2023)) +
geom_point(data = . %>% filter(year == 2023),
shape = 1) +
geom_smooth(data = . %>% filter(year != 2023,
!(name %in% name_quadratic_fit)),
method = "lm",
fullrange = TRUE,
aes(col = "linear"),
se = FALSE) +
geom_smooth(data = . %>% filter(year != 2023,
name %in% name_quadratic_fit),
method = "lm",
fullrange = TRUE,
formula = y ~ x + I(x^2),
aes(col = "quadratic"),
se = FALSE) +
scale_color_brewer(
palette = "Set1",
name = paste("Regression fit\nexcl.", 2023)) +
scale_x_continuous(breaks = seq(1980, 2020, 20)) +
labs(title = "Annual mean trends | Global") +
facet_wrap(name ~ .,
scales = "free_y",
labeller = labeller(name = x_axis_labels),
strip.position = "left",
ncol = 2) +
theme(
strip.text.y.left = element_markdown(),
strip.placement = "outside",
strip.background.y = element_blank(),
axis.title = element_blank()
)
pco2_product_annual %>%
filter(biome %in% key_biomes) %>%
ggplot(aes(year, value)) +
geom_path() +
geom_point(data = . %>% filter(year != 2023),
size = 0.2) +
geom_point(data = . %>% filter(year == 2023),
shape = 1) +
geom_smooth(data = . %>% filter(year != 2023,
!(name %in% name_quadratic_fit)),
method = "lm",
fullrange = TRUE,
aes(col = "linear"),
se = FALSE) +
geom_smooth(data = . %>% filter(year != 2023,
name %in% name_quadratic_fit),
method = "lm",
fullrange = TRUE,
formula = y ~ x + I(x^2),
aes(col = "quadratic"),
se = FALSE) +
scale_color_brewer(
palette = "Set1",
name = paste("Regression fit\nexcl.", 2023)) +
scale_x_continuous(breaks = seq(1980, 2020, 20)) +
labs(title = "Annual mean trends | Selected biomes") +
facet_grid(name ~ biome,
scales = "free_y",
labeller = labeller(name = x_axis_labels),
switch = "y") +
theme(
strip.text.y.left = element_markdown(),
strip.placement = "outside",
strip.background.y = element_blank(),
axis.title = element_blank()
)
pco2_product_annual %>%
filter(biome %in% super_biomes) %>%
ggplot(aes(year, value)) +
geom_path() +
geom_point(data = . %>% filter(year != 2023),
size = 0.2) +
geom_point(data = . %>% filter(year == 2023),
shape = 1) +
geom_smooth(data = . %>% filter(year != 2023,
!(name %in% name_quadratic_fit)),
method = "lm",
fullrange = TRUE,
aes(col = "linear"),
se = FALSE) +
geom_smooth(data = . %>% filter(year != 2023,
name %in% name_quadratic_fit),
method = "lm",
fullrange = TRUE,
formula = y ~ x + I(x^2),
aes(col = "quadratic"),
se = FALSE) +
scale_color_brewer(
palette = "Set1",
name = paste("Regression fit\nexcl.", 2023)) +
scale_x_continuous(breaks = seq(1980, 2020, 20)) +
labs(title = "Annual mean trends | Selected super biomes") +
facet_grid(name ~ biome,
scales = "free_y",
labeller = labeller(name = x_axis_labels),
switch = "y") +
theme(
strip.text.y.left = element_markdown(),
strip.placement = "outside",
strip.background.y = element_blank(),
axis.title = element_blank()
)
pco2_product_annual_regression <-
pco2_product_annual %>%
anomaly_determination(biome)
pco2_product_annual_regression %>%
filter(biome %in% "Global") %>%
ggplot(aes(year, resid)) +
geom_hline(yintercept = 0) +
geom_path() +
geom_point(data = . %>% filter(!between(year, 2023-1, 2023)),
aes(fill = year),
shape = 21) +
scale_fill_grayC() +
new_scale_fill() +
geom_point(data = . %>% filter(between(year, 2023-1, 2023)),
aes(fill = as.factor(year)),
shape = 21, size = 2) +
scale_fill_manual(values = c("orange", "red"),
guide = guide_legend(reverse = TRUE,
order = 1)) +
scale_x_continuous(breaks = seq(1980, 2020, 20)) +
labs(title = "Residual from fit to annual means (actual - predicted) | Global") +
facet_wrap(name ~ .,
scales = "free_y",
labeller = labeller(name = x_axis_labels),
strip.position = "left",
ncol = 2) +
theme(
strip.text.y.left = element_markdown(),
strip.placement = "outside",
strip.background.y = element_blank(),
axis.title = element_blank(),
legend.title = element_blank()
)
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
pco2_product_annual_regression %>%
filter(biome %in% key_biomes) %>%
ggplot(aes(year, resid)) +
geom_hline(yintercept = 0) +
geom_path() +
geom_point(data = . %>% filter(!between(year, 2023-1, 2023)),
aes(fill = year),
shape = 21) +
scale_fill_grayC() +
new_scale_fill() +
geom_point(data = . %>% filter(between(year, 2023-1, 2023)),
aes(fill = as.factor(year)),
shape = 21, size = 2) +
scale_fill_manual(values = c("orange", "red"),
guide = guide_legend(reverse = TRUE,
order = 1)) +
scale_x_continuous(breaks = seq(1980, 2020, 20)) +
labs(title = "Residual from fit to annual means (actual - predicted) | Selected biomes") +
facet_grid(name ~ biome,
scales = "free_y",
labeller = labeller(name = x_axis_labels),
switch = "y") +
theme(
strip.text.y.left = element_markdown(),
strip.placement = "outside",
strip.background.y = element_blank(),
axis.title = element_blank(),
legend.title = element_blank()
)
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
pco2_product_annual_regression %>%
filter(biome %in% super_biomes) %>%
ggplot(aes(year, resid)) +
geom_hline(yintercept = 0) +
geom_path() +
geom_point(data = . %>% filter(!between(year, 2023-1, 2023)),
aes(fill = year),
shape = 21) +
scale_fill_grayC() +
new_scale_fill() +
geom_point(data = . %>% filter(between(year, 2023-1, 2023)),
aes(fill = as.factor(year)),
shape = 21, size = 2) +
scale_fill_manual(values = c("orange", "red"),
guide = guide_legend(reverse = TRUE,
order = 1)) +
scale_x_continuous(breaks = seq(1980, 2020, 20)) +
labs(title = "Residual from fit to annual means (actual - predicted) | Selected super biomes") +
facet_grid(name ~ biome,
scales = "free_y",
labeller = labeller(name = x_axis_labels),
switch = "y") +
theme(
strip.text.y.left = element_markdown(),
strip.placement = "outside",
strip.background.y = element_blank(),
axis.title = element_blank(),
legend.title = element_blank()
)
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
pco2_product_annual_regression %>%
filter(biome != "global") %>%
ggplot(aes(biome, resid)) +
geom_hline(yintercept = 0) +
geom_jitter(data = . %>% filter(!between(year, 2023-1, 2023)),
aes(fill = year),
shape = 21, width = 0.2) +
scale_fill_grayC() +
new_scale_fill() +
geom_point(data = . %>% filter(between(year, 2023-1, 2023)),
aes(fill = as.factor(year)),
shape = 21, size = 2) +
scale_fill_manual(values = c("orange", "red"),
guide = guide_legend(reverse = TRUE,
order = 1)) +
labs(title = "Residual from fit to annual means (actual - predicted) | All biomes") +
facet_grid(name ~ .,
scales = "free_y",
labeller = labeller(name = x_axis_labels),
switch = "y") +
theme(
strip.text.y.left = element_markdown(),
strip.placement = "outside",
strip.background.y = element_blank(),
axis.title = element_blank(),
legend.title = element_blank(),
axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)
)
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
pco2_product_annual_regression %>%
write_csv(paste0("../data/","SOM_FFN","_","2023","_biome_annual_regression.csv"))
pco2_product_annual_detrended <-
full_join(pco2_product_monthly,
pco2_product_annual_regression %>% select(-c(value, resid))) %>%
mutate(resid = value - fit)
pco2_product_annual_detrended %>%
filter(biome %in% "Global") %>%
ggplot(aes(month, resid, group = as.factor(year))) +
geom_path(data = . %>% filter(!between(year, 2023-1, 2023)),
aes(col = year)) +
scale_color_grayC() +
new_scale_color() +
geom_path(data = . %>% filter(between(year, 2023-1, 2023)),
aes(col = as.factor(year)),
linewidth = 1) +
scale_color_manual(values = c("orange", "red"),
guide = guide_legend(reverse = TRUE,
order = 1)) +
scale_x_continuous(breaks = seq(1, 12, 3), expand = c(0, 0)) +
labs(title = "Anomalies from predicted annual mean | Global") +
facet_wrap(name ~ .,
scales = "free_y",
labeller = labeller(name = x_axis_labels),
strip.position = "left",
ncol = 2) +
theme(
strip.text.y.left = element_markdown(),
strip.placement = "outside",
strip.background.y = element_blank(),
axis.title.y = element_blank(),
legend.title = element_blank()
)
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
pco2_product_annual_detrended %>%
filter(biome %in% key_biomes) %>%
ggplot(aes(month, resid, group = as.factor(year))) +
geom_path(data = . %>% filter(!between(year, 2023-1, 2023)),
aes(col = year)) +
scale_color_grayC() +
new_scale_color() +
geom_path(data = . %>% filter(between(year, 2023-1, 2023)),
aes(col = as.factor(year)),
linewidth = 1) +
scale_color_manual(values = c("orange", "red"),
guide = guide_legend(reverse = TRUE,
order = 1)) +
scale_x_continuous(breaks = seq(1, 12, 3), expand = c(0, 0)) +
labs(title = "Anomalies from predicted annual mean | Selected biomes") +
facet_grid(name ~ biome,
scales = "free_y",
labeller = labeller(name = x_axis_labels),
switch = "y") +
theme(
strip.text.y.left = element_markdown(),
strip.placement = "outside",
strip.background.y = element_blank(),
axis.title.y = element_blank(),
legend.title = element_blank(),
axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)
)
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
pco2_product_annual_detrended %>%
filter(biome %in% super_biomes) %>%
ggplot(aes(month, resid, group = as.factor(year))) +
geom_path(data = . %>% filter(!between(year, 2023-1, 2023)),
aes(col = year)) +
scale_color_grayC() +
new_scale_color() +
geom_path(data = . %>% filter(between(year, 2023-1, 2023)),
aes(col = as.factor(year)),
linewidth = 1) +
scale_color_manual(values = c("orange", "red"),
guide = guide_legend(reverse = TRUE,
order = 1)) +
scale_x_continuous(breaks = seq(1, 12, 3), expand = c(0, 0)) +
labs(title = "Anomalies from predicted annual mean | Selected super biomes") +
facet_grid(name ~ biome,
scales = "free_y",
labeller = labeller(name = x_axis_labels),
switch = "y") +
theme(
strip.text.y.left = element_markdown(),
strip.placement = "outside",
strip.background.y = element_blank(),
axis.title.y = element_blank(),
legend.title = element_blank(),
axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)
)
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
pco2_product_annual_detrended %>%
filter(biome %in% key_biomes) %>%
group_split(biome) %>%
# head(1) %>%
map(
~ ggplot(data = .x,
aes(month, resid, group = as.factor(year))) +
geom_path(data = . %>% filter(!between(year, 2023-1, 2023)),
aes(col = year)) +
scale_color_grayC() +
new_scale_color() +
geom_path(
data = . %>% filter(between(year, 2023-1, 2023)),
aes(col = as.factor(year)),
linewidth = 1
) +
scale_color_manual(
values = c("orange", "red"),
guide = guide_legend(reverse = TRUE,
order = 1)
) +
scale_x_continuous(breaks = seq(1, 12, 3), expand = c(0, 0)) +
labs(title = paste("Anomalies from predicted annual mean |", .x$biome)) +
facet_wrap(
name ~ .,
scales = "free_y",
labeller = labeller(name = x_axis_labels),
strip.position = "left",
ncol = 2
) +
theme(
strip.text.y.left = element_markdown(),
strip.placement = "outside",
strip.background.y = element_blank(),
axis.title = element_blank(),
legend.title = element_blank()
)
)
[[1]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[2]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[3]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[4]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
pco2_product_annual_detrended %>%
filter(biome %in% super_biomes) %>%
group_split(biome) %>%
# head(1) %>%
map(
~ ggplot(data = .x,
aes(month, resid, group = as.factor(year))) +
geom_path(data = . %>% filter(!between(year, 2023-1, 2023)),
aes(col = year)) +
scale_color_grayC() +
new_scale_color() +
geom_path(
data = . %>% filter(between(year, 2023-1, 2023)),
aes(col = as.factor(year)),
linewidth = 1
) +
scale_color_manual(
values = c("orange", "red"),
guide = guide_legend(reverse = TRUE,
order = 1)
) +
scale_x_continuous(breaks = seq(1, 12, 3), expand = c(0, 0)) +
labs(title = paste("Anomalies from predicted annual mean |", .x$biome)) +
facet_wrap(
name ~ .,
scales = "free_y",
labeller = labeller(name = x_axis_labels),
strip.position = "left",
ncol = 2
) +
theme(
strip.text.y.left = element_markdown(),
strip.placement = "outside",
strip.background.y = element_blank(),
axis.title = element_blank(),
legend.title = element_blank()
)
)
[[1]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[2]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
pco2_product_annual_detrended %>%
write_csv(paste0("../data/","SOM_FFN","_","2023","_biome_annual_detrended.csv"))
pco2_product_monthly %>%
filter(biome %in% "Global") %>%
mutate(month = as.factor(month)) %>%
ggplot(aes(year, value, col = month)) +
# geom_point() +
geom_smooth(data = . %>% filter(year != 2023,
!(name %in% name_quadratic_fit)),
method = "lm",
se = FALSE,
fullrange = TRUE) +
geom_smooth(
data = . %>% filter(year != 2023,
name %in% name_quadratic_fit),
method = "lm",
fullrange = TRUE,
formula = y ~ x + I(x ^ 2),
se = FALSE
) +
scale_color_scico_d(palette = "romaO",
name = paste("Regression fit\nexcl.", 2023)) +
scale_x_continuous(breaks = seq(1980, 2020, 20)) +
labs(title = "Monthly mean trends | Global") +
facet_wrap(name ~ .,
scales = "free_y",
labeller = labeller(name = x_axis_labels),
strip.position = "left",
ncol = 2) +
theme(
strip.text.y.left = element_markdown(),
strip.placement = "outside",
strip.background.y = element_blank(),
axis.title = element_blank()
)
pco2_product_monthly %>%
filter(biome %in% key_biomes) %>%
mutate(month = as.factor(month)) %>%
ggplot(aes(year, value, col = month)) +
# geom_point() +
geom_smooth(data = . %>% filter(year != 2023,
!(name %in% name_quadratic_fit)),
method = "lm",
fullrange = TRUE,
se = FALSE) +
geom_smooth(
data = . %>% filter(year != 2023,
name %in% name_quadratic_fit),
method = "lm",
fullrange = TRUE,
formula = y ~ x + I(x ^ 2),
se = FALSE
) +
scale_color_scico_d(palette = "romaO",
name = paste("Regression fit\nexcl.", 2023)) +
scale_x_continuous(breaks = seq(1980, 2020, 20)) +
labs(title = "Monthly mean trends | Selected biomes") +
facet_grid(name ~ biome,
scales = "free_y",
labeller = labeller(name = x_axis_labels),
switch = "y") +
theme(
strip.text.y.left = element_markdown(),
strip.placement = "outside",
strip.background.y = element_blank(),
axis.title = element_blank()
)
pco2_product_monthly_regression <-
pco2_product_monthly %>%
anomaly_determination(biome, month)
pco2_product_monthly_regression %>%
filter(biome %in% "Global") %>%
group_split(month) %>%
head(1) %>%
map(
~ ggplot(data = .x,
aes(year, resid)) +
geom_hline(yintercept = 0) +
geom_path() +
geom_point(
data = . %>% filter(!between(year, 2023-1, 2023)),
aes(fill = year),
shape = 21
) +
scale_fill_grayC() +
new_scale_fill() +
geom_point(
data = . %>% filter(between(year, 2023-1, 2023)),
aes(fill = as.factor(year)),
shape = 21,
size = 2
) +
scale_fill_manual(
values = c("orange", "red"),
guide = guide_legend(reverse = TRUE,
order = 1)
) +
scale_x_continuous(breaks = seq(1980, 2020, 20)) +
labs(title = "Residual from fit to monthly means (actual - predicted) | Global",
subtitle = paste("Month:", .x$month)) +
facet_wrap(
name ~ .,
scales = "free_y",
labeller = labeller(name = x_axis_labels),
strip.position = "left",
ncol = 2
) +
theme(
strip.text.y.left = element_markdown(),
strip.placement = "outside",
strip.background.y = element_blank(),
axis.title = element_blank(),
legend.title = element_blank()
)
)
[[1]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
pco2_product_monthly_regression %>%
filter(biome %in% key_biomes) %>%
group_split(month) %>%
head(1) %>%
map(
~ ggplot(data = .x,
aes(year, resid)) +
geom_hline(yintercept = 0) +
geom_path() +
geom_point(
data = . %>% filter(!between(year, 2023-1, 2023)),
aes(fill = year),
shape = 21
) +
scale_fill_grayC() +
new_scale_fill() +
geom_point(
data = . %>% filter(between(year, 2023-1, 2023)),
aes(fill = as.factor(year)),
shape = 21,
size = 2
) +
scale_fill_manual(
values = c("orange", "red"),
guide = guide_legend(reverse = TRUE,
order = 1)
) +
scale_x_continuous(breaks = seq(1980, 2020, 20)) +
labs(title = "Residual from fit to monthly means (actual - predicted) | Selected biomes",
subtitle = paste("Month:", .x$month)) +
facet_grid(
name ~ biome,
scales = "free_y",
labeller = labeller(name = x_axis_labels),
switch = "y"
) +
theme(
strip.text.y.left = element_markdown(),
strip.placement = "outside",
strip.background.y = element_blank(),
axis.title = element_blank(),
legend.title = element_blank()
)
)
[[1]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
pco2_product_monthly_regression %>%
write_csv(paste0("../data/","SOM_FFN","_","2023","_biome_monthly_regression.csv"))
pco2_product_monthly_detrended <-
full_join(pco2_product_monthly,
pco2_product_monthly_regression %>% select(-c(value, resid, time))) %>%
mutate(resid = value - fit)
pco2_product_monthly_detrended %>%
filter(biome %in% "Global") %>%
ggplot(aes(month, resid, group = as.factor(year))) +
geom_path(data = . %>% filter(!between(year, 2023-1, 2023)),
aes(col = year)) +
scale_color_grayC() +
new_scale_color() +
geom_path(data = . %>% filter(between(year, 2023-1, 2023)),
aes(col = as.factor(year)),
linewidth = 1) +
scale_color_manual(values = c("orange", "red"),
guide = guide_legend(reverse = TRUE,
order = 1)) +
scale_x_continuous(breaks = seq(1, 12, 3), expand = c(0, 0)) +
labs(title = "Anomalies from predicted monthly mean | Global") +
facet_wrap(
name ~ .,
scales = "free_y",
labeller = labeller(name = x_axis_labels),
strip.position = "left",
ncol = 2
) +
theme(
strip.text.y.left = element_markdown(),
strip.placement = "outside",
strip.background.y = element_blank(),
axis.title.y = element_blank(),
legend.title = element_blank()
)
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
pco2_product_monthly_detrended %>%
filter(biome %in% key_biomes) %>%
ggplot(aes(month, resid, group = as.factor(year))) +
geom_path(data = . %>% filter(!between(year, 2023-1, 2023)),
aes(col = year)) +
scale_color_grayC() +
new_scale_color() +
geom_path(data = . %>% filter(between(year, 2023-1, 2023)),
aes(col = as.factor(year)),
linewidth = 1) +
scale_color_manual(values = c("orange", "red"),
guide = guide_legend(reverse = TRUE,
order = 1)) +
scale_x_continuous(breaks = seq(1, 12, 3), expand = c(0, 0)) +
labs(title = "Anomalies from predicted monthly mean | Selected biomes") +
facet_grid(
name ~ biome,
scales = "free_y",
labeller = labeller(name = x_axis_labels),
switch = "y"
) +
theme(
strip.text.y.left = element_markdown(),
strip.placement = "outside",
strip.background.y = element_blank(),
axis.title.y = element_blank(),
legend.title = element_blank()
)
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
pco2_product_monthly_detrended %>%
filter(biome %in% super_biomes) %>%
ggplot(aes(month, resid, group = as.factor(year))) +
geom_path(data = . %>% filter(!between(year, 2023-1, 2023)),
aes(col = year)) +
scale_color_grayC() +
new_scale_color() +
geom_path(data = . %>% filter(between(year, 2023-1, 2023)),
aes(col = as.factor(year)),
linewidth = 1) +
scale_color_manual(values = c("orange", "red"),
guide = guide_legend(reverse = TRUE,
order = 1)) +
scale_x_continuous(breaks = seq(1, 12, 3), expand = c(0, 0)) +
labs(title = "Anomalies from predicted monthly mean | Selected super biomes") +
facet_grid(
name ~ biome,
scales = "free_y",
labeller = labeller(name = x_axis_labels),
switch = "y"
) +
theme(
strip.text.y.left = element_markdown(),
strip.placement = "outside",
strip.background.y = element_blank(),
axis.title.y = element_blank(),
legend.title = element_blank()
)
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
pco2_product_monthly_detrended %>%
filter(biome %in% key_biomes) %>%
ggplot(aes(month, resid, group = as.factor(year))) +
geom_path(data = . %>% filter(!between(year, 2023-1, 2023)),
aes(col = year)) +
scale_color_grayC() +
new_scale_color() +
geom_path(data = . %>% filter(between(year, 2023-1, 2023)),
aes(col = as.factor(year)),
linewidth = 1) +
scale_color_manual(values = c("orange", "red"),
guide = guide_legend(reverse = TRUE,
order = 1)) +
scale_x_continuous(breaks = seq(1, 12, 3), expand = c(0, 0)) +
labs(title = "Anomalies from predicted monthly mean | Selected biomes") +
facet_grid(
name ~ biome,
scales = "free_y",
labeller = labeller(name = x_axis_labels),
switch = "y"
) +
theme(
strip.text.y.left = element_markdown(),
strip.placement = "outside",
strip.background.y = element_blank(),
axis.title.y = element_blank(),
legend.title = element_blank()
)
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
pco2_product_monthly_detrended %>%
filter(biome %in% key_biomes) %>%
group_split(biome) %>%
# head(1) %>%
map(
~ ggplot(data = .x,
aes(month, resid, group = as.factor(year))) +
geom_path(data = . %>% filter(!between(year, 2023-1, 2023)),
aes(col = year)) +
scale_color_grayC() +
new_scale_color() +
geom_path(
data = . %>% filter(between(year, 2023-1, 2023)),
aes(col = as.factor(year)),
linewidth = 1
) +
scale_color_manual(
values = c("orange", "red"),
guide = guide_legend(reverse = TRUE,
order = 1)
) +
scale_x_continuous(breaks = seq(1, 12, 3), expand = c(0, 0)) +
labs(title = paste("Anomalies from predicted monthly mean |", .x$biome)) +
facet_wrap(
name ~ .,
scales = "free_y",
labeller = labeller(name = x_axis_labels),
strip.position = "left",
ncol = 2
) +
theme(
strip.text.y.left = element_markdown(),
strip.placement = "outside",
strip.background.y = element_blank(),
axis.title.y = element_blank(),
legend.title = element_blank()
)
)
[[1]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[2]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[3]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[4]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
pco2_product_monthly_detrended %>%
filter(biome %in% super_biomes) %>%
ggplot(aes(month, resid, group = as.factor(year))) +
geom_path(data = . %>% filter(!between(year, 2023-1, 2023)),
aes(col = year)) +
scale_color_grayC() +
new_scale_color() +
geom_path(data = . %>% filter(between(year, 2023-1, 2023)),
aes(col = as.factor(year)),
linewidth = 1) +
scale_color_manual(values = c("orange", "red"),
guide = guide_legend(reverse = TRUE,
order = 1)) +
scale_x_continuous(breaks = seq(1, 12, 3), expand = c(0, 0)) +
labs(title = "Anomalies from predicted monthly mean | Selected super biomes") +
facet_grid(
name ~ biome,
scales = "free_y",
labeller = labeller(name = x_axis_labels),
switch = "y"
) +
theme(
strip.text.y.left = element_markdown(),
strip.placement = "outside",
strip.background.y = element_blank(),
axis.title.y = element_blank(),
legend.title = element_blank()
)
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
pco2_product_monthly_detrended %>%
filter(biome %in% super_biomes) %>%
group_split(biome) %>%
# head(1) %>%
map(
~ ggplot(data = .x,
aes(month, resid, group = as.factor(year))) +
geom_path(data = . %>% filter(!between(year, 2023-1, 2023)),
aes(col = year)) +
scale_color_grayC() +
new_scale_color() +
geom_path(
data = . %>% filter(between(year, 2023-1, 2023)),
aes(col = as.factor(year)),
linewidth = 1
) +
scale_color_manual(
values = c("orange", "red"),
guide = guide_legend(reverse = TRUE,
order = 1)
) +
scale_x_continuous(breaks = seq(1, 12, 3), expand = c(0, 0)) +
labs(title = paste("Anomalies from predicted monthly mean |", .x$biome)) +
facet_wrap(
name ~ .,
scales = "free_y",
labeller = labeller(name = x_axis_labels),
strip.position = "left",
ncol = 2
) +
theme(
strip.text.y.left = element_markdown(),
strip.placement = "outside",
strip.background.y = element_blank(),
axis.title.y = element_blank(),
legend.title = element_blank()
)
)
[[1]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[2]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
pco2_product_monthly_detrended %>%
write_csv(paste0("../data/","SOM_FFN","_","2023","_biome_monthly_detrended.csv"))
The following plots aim to unravel the correlation between regionally integrated monthly flux anomalies and the corresponding anomalies of the means/integrals of each other variable.
Anomalies are first presented are first presented in absolute units. Due to the different flux magnitudes, we need to plot integrated fluxes separately for each region. Secondly, we normalize the monthly anomalies to the spread (expressed as standard deviation) of the residuals from the fit.
pco2_product_annual_regression %>%
filter(biome == "Global") %>%
select(-c(value, fit)) %>%
pivot_wider(values_from = resid) %>%
pivot_longer(-c(year, biome, fgco2_int)) %>%
ggplot(aes(value, fgco2_int)) +
geom_hline(yintercept = 0) +
geom_point(data = . %>% filter(!between(year, 2023-1, 2023)),
aes(fill = year),
shape = 21) +
geom_smooth(
data = . %>% filter(!between(year, 2023-1, 2023)),
method = "lm",
se = FALSE,
fullrange = TRUE,
aes(col = paste("Regression fit\nexcl.", 2023))
) +
scale_color_grey() +
scale_fill_grayC()+
new_scale_fill() +
geom_point(data = . %>% filter(between(year, 2023-1, 2023)),
aes(fill = as.factor(year)),
shape = 21, size = 2) +
scale_fill_manual(values = c("orange", "red"),
guide = guide_legend(reverse = TRUE,
order = 1)) +
labs(title = "Globally integrated fluxes",
y = labels_breaks("fgco2_int")$i_legend_title) +
facet_wrap(
~ name,
scales = "free_x",
labeller = labeller(name = x_axis_labels),
strip.position = "bottom",
ncol = 2
) +
theme(
strip.text.x.bottom = element_markdown(),
strip.placement = "outside",
strip.background.x = element_blank(),
axis.title.y = element_markdown(),
axis.title.x = element_blank(),
legend.title = element_blank()
)
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
pco2_product_monthly_detrended_anomaly <-
pco2_product_monthly_detrended %>%
select(year, month, biome, name, resid) %>%
pivot_wider(names_from = name,
values_from = resid)
pco2_product_monthly_detrended_anomaly %>%
filter(biome == "Global") %>%
pivot_longer(-c(year, month, biome, fgco2_int)) %>%
ggplot(aes(value, fgco2_int)) +
geom_hline(yintercept = 0) +
geom_point(data = . %>% filter(year != 2023),
aes(col = paste(min(year), max(year), sep = "-")),
alpha = 0.2) +
geom_smooth(
data = . %>% filter(year != 2023),
aes(col = paste(min(year), max(year), sep = "-")),
method = "lm",
se = FALSE,
fullrange = TRUE
) +
scale_color_grey(name = "") +
new_scale_color() +
geom_path(data = . %>% filter(year == 2023),
aes(col = as.factor(month), group = 1)) +
geom_point(data = . %>% filter(year == 2023),
aes(fill = as.factor(month)),
shape = 21,
size = 3) +
scale_color_scico_d(palette = "buda",
guide = guide_legend(reverse = TRUE,
order = 1),
name = paste("Month\nof", 2023)) +
scale_fill_scico_d(palette = "buda",
guide = guide_legend(reverse = TRUE,
order = 1),
name = paste("Month\nof", 2023)) +
labs(title = "Globally integrated fluxes",
y = labels_breaks("fgco2_int")$i_legend_title) +
facet_wrap(
~ name,
scales = "free_x",
labeller = labeller(name = x_axis_labels),
strip.position = "bottom",
ncol = 2
) +
theme(
strip.text.x.bottom = element_markdown(),
strip.placement = "outside",
strip.background.x = element_blank(),
axis.title.y = element_markdown(),
axis.title.x = element_blank()
)
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
pco2_product_monthly_detrended_anomaly %>%
filter(!(biome %in% c(super_biomes, "Global"))) %>%
pivot_longer(-c(year, month, biome, fgco2_int)) %>%
group_split(name) %>%
# head(1) %>%
map(
~ ggplot(data = .x,
aes(value, fgco2_int)) +
geom_hline(yintercept = 0) +
geom_point(
data = . %>% filter(year != 2023),
aes(col = paste(min(year), max(year), sep = "-")),
alpha = 0.2
) +
geom_smooth(
data = . %>% filter(year != 2023),
aes(col = paste(min(year), max(year), sep = "-")),
method = "lm",
se = FALSE,
fullrange = TRUE
) +
scale_color_grey(name = "") +
new_scale_color() +
geom_path(data = . %>% filter(year == 2023),
aes(col = as.factor(month), group = 1)) +
geom_point(
data = . %>% filter(year == 2023),
aes(fill = as.factor(month)),
shape = 21,
size = 3
) +
scale_color_scico_d(
palette = "buda",
guide = guide_legend(reverse = TRUE,
order = 1),
name = paste("Month\nof", 2023)
) +
scale_fill_scico_d(
palette = "buda",
guide = guide_legend(reverse = TRUE,
order = 1),
name = paste("Month\nof", 2023)
) +
facet_wrap( ~ biome, ncol = 3, scales = "free") +
labs(
title = "Biome integrated fluxes",
y = labels_breaks("fgco2_int")$i_legend_title,
x = labels_breaks(.x %>% distinct(name))$i_legend_title
) +
theme(axis.title.x = element_markdown(),
axis.title.y = element_markdown())
)
[[1]]
Version | Author | Date |
---|---|---|
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[2]]
[[3]]
Version | Author | Date |
---|---|---|
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[4]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[5]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[6]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[7]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[8]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[9]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[10]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
[[11]]
pco2_product_monthly_detrended_anomaly %>%
filter(biome %in% super_biomes) %>%
pivot_longer(-c(year, month, biome, fgco2_int)) %>%
group_split(name) %>%
# head(1) %>%
map(
~ ggplot(data = .x,
aes(value, fgco2_int)) +
geom_hline(yintercept = 0) +
geom_point(
data = . %>% filter(year != 2023),
aes(col = paste(min(year), max(year), sep = "-")),
alpha = 0.2
) +
geom_smooth(
data = . %>% filter(year != 2023),
aes(col = paste(min(year), max(year), sep = "-")),
method = "lm",
se = FALSE,
fullrange = TRUE
) +
scale_color_grey(name = "") +
new_scale_color() +
geom_path(data = . %>% filter(year == 2023),
aes(col = as.factor(month), group = 1)) +
geom_point(
data = . %>% filter(year == 2023),
aes(fill = as.factor(month)),
shape = 21,
size = 3
) +
scale_color_scico_d(
palette = "buda",
guide = guide_legend(reverse = TRUE,
order = 1),
name = paste("Month\nof", 2023)
) +
scale_fill_scico_d(
palette = "buda",
guide = guide_legend(reverse = TRUE,
order = 1),
name = paste("Month\nof", 2023)
) +
facet_wrap( ~ biome, ncol = 3, scales = "free_x") +
labs(
title = "Super biome integrated fluxes",
y = labels_breaks("fgco2_int")$i_legend_title,
x = labels_breaks(.x %>% distinct(name))$i_legend_title
) +
theme(axis.title.x = element_markdown(),
axis.title.y = element_markdown())
)
[[1]]
Version | Author | Date |
---|---|---|
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[2]]
[[3]]
Version | Author | Date |
---|---|---|
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[4]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[5]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[6]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[7]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[8]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[9]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[10]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
[[11]]
pco2_product_monthly_detrended_anomaly_spread <-
pco2_product_monthly_detrended_anomaly %>%
pivot_longer(-c(month, biome, year)) %>%
filter(year != 2023) %>%
group_by(month, biome, name) %>%
summarise(spread = sd(value, na.rm = TRUE)) %>%
ungroup()
pco2_product_monthly_detrended_anomaly_relative <-
full_join(
pco2_product_monthly_detrended_anomaly_spread,
pco2_product_monthly_detrended_anomaly %>%
pivot_longer(-c(month, biome, year))
)
pco2_product_monthly_detrended_anomaly_relative <-
pco2_product_monthly_detrended_anomaly_relative %>%
mutate(value = value / spread) %>%
select(-spread) %>%
pivot_wider() %>%
pivot_longer(-c(month, biome, year, fgco2_int))
pco2_product_monthly_detrended_anomaly_relative %>%
group_split(name) %>%
# head(1) %>%
map(
~ ggplot(data = .x,
aes(value, fgco2_int)) +
geom_vline(xintercept = 0) +
geom_hline(yintercept = 0) +
geom_point(
data = . %>% filter(year != 2023),
aes(col = paste(min(year), max(year), sep = "-")),
alpha = 0.2
) +
geom_smooth(
data = . %>% filter(year != 2023),
aes(col = paste(min(year), max(year), sep = "-")),
method = "lm",
se = FALSE,
fullrange = TRUE
) +
scale_color_grey(name = "") +
new_scale_color() +
geom_path(data = . %>% filter(year == 2023),
aes(col = as.factor(month), group = 1)) +
geom_point(
data = . %>% filter(year == 2023),
aes(fill = as.factor(month)),
shape = 21,
size = 3
) +
scale_color_scico_d(
palette = "buda",
guide = guide_legend(reverse = TRUE,
order = 1),
name = paste("Month\nof", 2023)
) +
scale_fill_scico_d(
palette = "buda",
guide = guide_legend(reverse = TRUE,
order = 1),
name = paste("Month\nof", 2023)
) +
facet_wrap( ~ biome, ncol = 3) +
coord_fixed() +
labs(
title = "Biome integrated fluxes normalized to spread",
y = str_split_i(labels_breaks("fgco2_int")$i_legend_title, "<br>", i = 1),
x = str_split_i(labels_breaks(.x %>% distinct(name))$i_legend_title, "<br>", i = 1)
) +
theme(axis.title.x = element_markdown(),
axis.title.y = element_markdown())
)
[[1]]
Version | Author | Date |
---|---|---|
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[2]]
[[3]]
Version | Author | Date |
---|---|---|
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[4]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[5]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[6]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[7]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
3b5d16b | jens-daniel-mueller | 2024-05-13 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[8]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[9]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
009791f | jens-daniel-mueller | 2024-05-14 |
8c96de4 | jens-daniel-mueller | 2024-05-08 |
79ef4f3 | jens-daniel-mueller | 2024-05-08 |
b0129aa | jens-daniel-mueller | 2024-04-23 |
dfcf790 | jens-daniel-mueller | 2024-04-11 |
d5075c5 | jens-daniel-mueller | 2024-04-11 |
2321242 | jens-daniel-mueller | 2024-04-11 |
[[10]]
Version | Author | Date |
---|---|---|
909f6c8 | jens-daniel-mueller | 2024-05-14 |
[[11]]
sessionInfo()
R version 4.2.2 (2022-10-31)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: openSUSE Leap 15.5
Matrix products: default
BLAS: /usr/local/R-4.2.2/lib64/R/lib/libRblas.so
LAPACK: /usr/local/R-4.2.2/lib64/R/lib/libRlapack.so
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] ggtext_0.1.2 broom_1.0.5 khroma_1.9.0
[4] ggnewscale_0.4.8 seacarb_3.3.1 SolveSAPHE_2.1.0
[7] oce_1.7-10 gsw_1.1-1 lubridate_1.9.0
[10] timechange_0.1.1 stars_0.6-0 abind_1.4-5
[13] terra_1.7-65 sf_1.0-9 rnaturalearth_0.1.0
[16] geomtextpath_0.1.1 colorspace_2.0-3 marelac_2.1.10
[19] shape_1.4.6 ggforce_0.4.1 metR_0.13.0
[22] scico_1.3.1 patchwork_1.1.2 collapse_1.8.9
[25] forcats_0.5.2 stringr_1.5.0 dplyr_1.1.3
[28] purrr_1.0.2 readr_2.1.3 tidyr_1.3.0
[31] tibble_3.2.1 ggplot2_3.4.4 tidyverse_1.3.2
[34] workflowr_1.7.0
loaded via a namespace (and not attached):
[1] googledrive_2.0.0 ellipsis_0.3.2 class_7.3-20
[4] rprojroot_2.0.3 markdown_1.4 fs_1.5.2
[7] gridtext_0.1.5 rstudioapi_0.15.0 proxy_0.4-27
[10] farver_2.1.1 bit64_4.0.5 fansi_1.0.3
[13] xml2_1.3.3 splines_4.2.2 codetools_0.2-18
[16] cachem_1.0.6 knitr_1.41 polyclip_1.10-4
[19] jsonlite_1.8.3 dbplyr_2.2.1 compiler_4.2.2
[22] httr_1.4.4 backports_1.4.1 Matrix_1.5-3
[25] assertthat_0.2.1 fastmap_1.1.0 gargle_1.2.1
[28] cli_3.6.1 later_1.3.0 tweenr_2.0.2
[31] htmltools_0.5.3 tools_4.2.2 rnaturalearthdata_0.1.0
[34] gtable_0.3.1 glue_1.6.2 Rcpp_1.0.11
[37] RNetCDF_2.6-1 cellranger_1.1.0 jquerylib_0.1.4
[40] vctrs_0.6.4 nlme_3.1-160 lwgeom_0.2-10
[43] xfun_0.35 ps_1.7.2 rvest_1.0.3
[46] ncmeta_0.3.5 lifecycle_1.0.3 googlesheets4_1.0.1
[49] getPass_0.2-2 MASS_7.3-58.1 scales_1.2.1
[52] vroom_1.6.0 hms_1.1.2 promises_1.2.0.1
[55] parallel_4.2.2 RColorBrewer_1.1-3 yaml_2.3.6
[58] memoise_2.0.1 sass_0.4.4 stringi_1.7.8
[61] highr_0.9 e1071_1.7-12 checkmate_2.1.0
[64] commonmark_1.8.1 rlang_1.1.1 pkgconfig_2.0.3
[67] systemfonts_1.0.4 evaluate_0.18 lattice_0.20-45
[70] labeling_0.4.2 bit_4.0.5 processx_3.8.0
[73] tidyselect_1.2.0 here_1.0.1 magrittr_2.0.3
[76] R6_2.5.1 generics_0.1.3 DBI_1.1.3
[79] mgcv_1.8-41 pillar_1.9.0 haven_2.5.1
[82] whisker_0.4 withr_2.5.0 units_0.8-0
[85] sp_1.5-1 modelr_0.1.10 crayon_1.5.2
[88] KernSmooth_2.23-20 utf8_1.2.2 tzdb_0.3.0
[91] rmarkdown_2.18 grid_4.2.2 readxl_1.4.1
[94] data.table_1.14.6 callr_3.7.3 git2r_0.30.1
[97] reprex_2.0.2 digest_0.6.30 classInt_0.4-8
[100] httpuv_1.6.6 textshaping_0.3.6 munsell_0.5.0
[103] viridisLite_0.4.1 bslib_0.4.1