Last updated: 2024-04-26

Checks: 7 0

Knit directory: bgc_argo_r_argodata/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(20211008) 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 f37a13f. 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:    .Rproj.user/

Untracked files:
    Untracked:  analysis/draft.Rmd
    Untracked:  load_argo_core_output.txt

Unstaged changes:
    Modified:   analysis/_site.yml
    Modified:   analysis/child/cluster_analysis_base.Rmd
    Modified:   analysis/load_argo_core.Rmd
    Modified:   analysis/load_broullon_DIC_TA_clim.Rmd
    Modified:   code/Workflowr_project_managment.R
    Modified:   code/start_background_job.R
    Modified:   code/start_background_job_load.R
    Modified:   code/start_background_job_partial.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/extreme_temp.Rmd) and HTML (docs/extreme_temp.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 780276c mlarriere 2024-04-19 Build site.
html 1a72545 mlarriere 2024-04-12 Build site.
html c076fba mlarriere 2024-04-12 Build site.
html 91f08a6 mlarriere 2024-04-07 Build site.
html db21f55 mlarriere 2024-04-06 Build site.
html c0a5b90 mlarriere 2024-04-01 Build site.
Rmd 42a66ee mlarriere 2024-04-01 extreme_temp and temp_core building test
html f9de50e ds2n19 2024-01-01 Build site.
html 07d4eb8 ds2n19 2023-12-20 Build site.
html fa6cf38 ds2n19 2023-12-14 Build site.
Rmd 64fd104 ds2n19 2023-12-14 revised coverage analysis and SO focused cluster analysis.
html f110b74 ds2n19 2023-12-13 Build site.
Rmd fa9795c ds2n19 2023-12-12 dependencies listed are start of markdown files.
Rmd a434982 ds2n19 2023-12-11 test run of coverage maps
html e60ebd2 ds2n19 2023-12-07 Build site.
html 4942ace ds2n19 2023-12-06 Build site.
Rmd 237c3ec ds2n19 2023-12-06 Cluster under surface extreme.
html c00711b ds2n19 2023-12-06 Build site.
Rmd 4c83bc4 ds2n19 2023-12-06 Cluster under surface extreme.
html cf5dd20 ds2n19 2023-12-04 Build site.
Rmd 3cb4b17 ds2n19 2023-12-04 Cluster under surface extreme.
Rmd fa1083d ds2n19 2023-12-01 Additional analysis to cluster process.
html cec2a2a ds2n19 2023-11-24 Build site.
Rmd 3dc557d ds2n19 2023-11-24 Switched to new profile details.
Rmd 59f5cc4 ds2n19 2023-11-23 Moved spatiotemporal analysis to use aligned profiles.
html 80c16c2 ds2n19 2023-11-15 Build site.
html 56c8f49 ds2n19 2023-10-20 Build site.
html 1cd9ec1 ds2n19 2023-10-19 Build site.
html 15c1d68 ds2n19 2023-10-19 Build site.
Rmd 81b3d3c ds2n19 2023-10-19 moved from month by month regression to annual with monthly
html 2f4ea7e ds2n19 2023-10-19 Build site.
Rmd fbd34e7 ds2n19 2023-10-19 moved from month by month regression to annual with monthly
html 879821d ds2n19 2023-10-18 Build site.
Rmd dba28d5 ds2n19 2023-10-18 Clean up BGC load and re-run coverage and extreme packages.
html 93b4545 ds2n19 2023-10-18 Build site.
html 7004f76 ds2n19 2023-10-17 Build site.
Rmd 86e3764 ds2n19 2023-10-17 standard range v climatology, season order resolved and count labels to
html 4b55c43 ds2n19 2023-10-12 Build site.
Rmd ce19a66 ds2n19 2023-10-04 Revised version of OceanSODA product -v2023
html 7b3d8c5 pasqualina-vonlanthendinenna 2022-08-29 Build site.
Rmd 8e81570 pasqualina-vonlanthendinenna 2022-08-29 load and add in core-argo data (1 month)
html bdd516d pasqualina-vonlanthendinenna 2022-05-23 Build site.
Rmd b41e65f pasqualina-vonlanthendinenna 2022-05-23 recreate data in bgc_argo_preprocessed_data
html 71e58d6 jens-daniel-mueller 2022-05-12 Build site.
Rmd 944e0a2 jens-daniel-mueller 2022-05-12 revised color scale for argo location map
Rmd 1bdcd6e jens-daniel-mueller 2022-05-12 revised color scale for argo location map
html 4173c20 jens-daniel-mueller 2022-05-12 Build site.
Rmd 78acca9 jens-daniel-mueller 2022-05-12 run with DIC clim scaled to 2016
html dfe89d7 jens-daniel-mueller 2022-05-12 Build site.
html 710edd4 jens-daniel-mueller 2022-05-11 Build site.
Rmd 2f20a76 jens-daniel-mueller 2022-05-11 rebuild all after subsetting AB profiles and code cleaning
html b917bd0 jens-daniel-mueller 2022-05-11 Build site.
Rmd 86144c6 jens-daniel-mueller 2022-05-11 rerun with flag A and B subset
html ca30beb pasqualina-vonlanthendinenna 2022-05-05 Build site.
Rmd bb146f4 pasqualina-vonlanthendinenna 2022-05-05 updated map colors and plotting
html 4cf88e4 pasqualina-vonlanthendinenna 2022-05-05 Build site.
Rmd 3bde57b pasqualina-vonlanthendinenna 2022-05-05 added argo profile locations
html 2751f13 pasqualina-vonlanthendinenna 2022-05-05 Build site.
Rmd 8e115be pasqualina-vonlanthendinenna 2022-05-05 added argo profile locations
html f46b9da pasqualina-vonlanthendinenna 2022-05-05 Build site.
Rmd ebcc576 pasqualina-vonlanthendinenna 2022-05-05 added argo profile locations
html 6572988 pasqualina-vonlanthendinenna 2022-05-04 Build site.
Rmd 8d56775 pasqualina-vonlanthendinenna 2022-05-04 updated plot labels
html 708f923 pasqualina-vonlanthendinenna 2022-05-04 Build site.
Rmd d569024 pasqualina-vonlanthendinenna 2022-05-04 added number of profiles to plot
html 6a6e874 pasqualina-vonlanthendinenna 2022-04-29 Build site.
html 2d44f8a pasqualina-vonlanthendinenna 2022-04-29 Build site.
Rmd 8b582f0 pasqualina-vonlanthendinenna 2022-04-29 added broullon climatology page, argo locations
html e61c08e pasqualina-vonlanthendinenna 2022-04-27 Build site.
Rmd 9664e0e pasqualina-vonlanthendinenna 2022-04-27 added temp data page, changed double extremes
html 10036ed pasqualina-vonlanthendinenna 2022-04-26 Build site.
html c03dd24 pasqualina-vonlanthendinenna 2022-04-20 Build site.
html f5f6b3f pasqualina-vonlanthendinenna 2022-04-14 Build site.
Rmd c2fa269 pasqualina-vonlanthendinenna 2022-04-14 added full temperature climatology
html 8805f99 pasqualina-vonlanthendinenna 2022-04-11 Build site.
Rmd d21c526 pasqualina-vonlanthendinenna 2022-04-11 cleaned up code
Rmd f3ca885 pasqualina-vonlanthendinenna 2022-04-07 added OceanSODA-Argo SST comparison
html c541171 pasqualina-vonlanthendinenna 2022-04-07 Build site.
Rmd 9437f81 pasqualina-vonlanthendinenna 2022-04-07 cleaned loading data page
html 9875dd0 pasqualina-vonlanthendinenna 2022-04-05 Build site.
Rmd 72a65a7 pasqualina-vonlanthendinenna 2022-04-05 added new biomes to extreme pH
html 48573c4 pasqualina-vonlanthendinenna 2022-03-31 Build site.
Rmd 11915d8 pasqualina-vonlanthendinenna 2022-03-31 loaded in Mayot biomes and Roemmich temp climatology
html eb8e3be pasqualina-vonlanthendinenna 2022-03-31 Build site.
Rmd c4d4031 pasqualina-vonlanthendinenna 2022-03-31 extended OceanSODA to 1995 for extreme detection
html a2271df pasqualina-vonlanthendinenna 2022-03-30 Build site.
Rmd 25d5eed pasqualina-vonlanthendinenna 2022-03-30 updated figure aspects
html dfd75e9 pasqualina-vonlanthendinenna 2022-03-29 Build site.
Rmd b9a42f9 pasqualina-vonlanthendinenna 2022-03-29 added january plots and changed pH anomaly detection to mean
html 65e609a pasqualina-vonlanthendinenna 2022-03-28 Build site.
Rmd a22e2f4 pasqualina-vonlanthendinenna 2022-03-28 re-build extreme temp page
html cbb2360 jens-daniel-mueller 2022-03-28 Build site.
Rmd c07ce42 jens-daniel-mueller 2022-03-28 rerun with mean instead of lm anomaly detection
html fa1b6de jens-daniel-mueller 2022-03-28 Build site.
Rmd c53aa88 jens-daniel-mueller 2022-03-28 rerun with lm instead of mean anomaly detection
html 749e005 jens-daniel-mueller 2022-03-28 Build site.
Rmd 9ed3727 jens-daniel-mueller 2022-03-28 cleaned code
html 8173cdb jens-daniel-mueller 2022-03-28 Build site.
Rmd d7e3599 jens-daniel-mueller 2022-03-28 reviewed depth binning for profile averaging
html f27d454 pasqualina-vonlanthendinenna 2022-03-25 Build site.
Rmd b9c4426 pasqualina-vonlanthendinenna 2022-03-25 read in temp climatology in loading data
html 7f5c5c6 pasqualina-vonlanthendinenna 2022-03-25 Build site.
Rmd becbfe0 pasqualina-vonlanthendinenna 2022-03-25 corrected anomaly profile calculation
html 27a52f8 pasqualina-vonlanthendinenna 2022-03-25 Build site.
Rmd a6aad60 pasqualina-vonlanthendinenna 2022-03-25 added january anomaly profiles for each year
html 6dd0945 pasqualina-vonlanthendinenna 2022-03-25 Build site.
html d9caaae pasqualina-vonlanthendinenna 2022-03-22 Build site.
Rmd 9daebcf pasqualina-vonlanthendinenna 2022-03-22 removed climatology from temperature profiles (anomaly profiles section)
html 5e36bb4 pasqualina-vonlanthendinenna 2022-03-18 Build site.
Rmd 44a9ba6 pasqualina-vonlanthendinenna 2022-03-18 removed eval false from anomaly maps
html 650ef68 pasqualina-vonlanthendinenna 2022-03-18 Build site.
Rmd 792f3f0 pasqualina-vonlanthendinenna 2022-03-18 removed climatology from oceansoda temperature
html e12a216 pasqualina-vonlanthendinenna 2022-03-15 Build site.
Rmd e4d1d1e pasqualina-vonlanthendinenna 2022-03-15 updated to new only flag A data
html c8451b9 pasqualina-vonlanthendinenna 2022-03-14 Build site.
html 1ffe07f pasqualina-vonlanthendinenna 2022-03-11 Build site.
Rmd f0fde29 pasqualina-vonlanthendinenna 2022-03-11 changed anomaly detection to 1x1 grid with old data
html 7540ae4 pasqualina-vonlanthendinenna 2022-03-08 Build site.
Rmd 18dff1b pasqualina-vonlanthendinenna 2022-03-08 subsetted profiles with flag A only for extremes
html 9d97f25 pasqualina-vonlanthendinenna 2022-03-02 Build site.
Rmd 9ccabc6 pasqualina-vonlanthendinenna 2022-03-02 removed facet wrap
html e4188d2 pasqualina-vonlanthendinenna 2022-03-01 Build site.
Rmd 6ca535c pasqualina-vonlanthendinenna 2022-03-01 updated profiles
html da665ab pasqualina-vonlanthendinenna 2022-03-01 Build site.
Rmd 57ada58 pasqualina-vonlanthendinenna 2022-03-01 updated figure aspects
html 5ef4df2 pasqualina-vonlanthendinenna 2022-03-01 Build site.
Rmd 8ef1277 pasqualina-vonlanthendinenna 2022-03-01 plotted Atlantic mean seasonal profiles
Rmd 73463cc pasqualina-vonlanthendinenna 2022-03-01 changed line thickness for H and L raw profiles
html c4362e5 pasqualina-vonlanthendinenna 2022-02-28 Build site.
Rmd 5b0901d pasqualina-vonlanthendinenna 2022-02-28 corrected dates and titles
html d299359 pasqualina-vonlanthendinenna 2022-02-28 Build site.
Rmd aad1df4 pasqualina-vonlanthendinenna 2022-02-28 plotted specific profiles
html fd521d1 pasqualina-vonlanthendinenna 2022-02-25 Build site.
Rmd 64c2c71 pasqualina-vonlanthendinenna 2022-02-25 plotted line profiles and changed HNL colors
html 7d7874c pasqualina-vonlanthendinenna 2022-02-24 Build site.
Rmd 58d2846 pasqualina-vonlanthendinenna 2022-02-24 added st dev for temp profiles
html c68163a pasqualina-vonlanthendinenna 2022-02-22 Build site.
Rmd 818ac54 pasqualina-vonlanthendinenna 2022-02-22 updated regression and merging for extreme_temp
html f98c744 pasqualina-vonlanthendinenna 2022-02-18 Build site.
Rmd 8b99ab3 pasqualina-vonlanthendinenna 2022-02-18 updates
html 19aa73d pasqualina-vonlanthendinenna 2022-02-16 Build site.
Rmd d955d28 pasqualina-vonlanthendinenna 2022-02-16 updated extreme temperature
html 905d82f pasqualina-vonlanthendinenna 2022-02-15 Build site.
Rmd 01ae9da pasqualina-vonlanthendinenna 2022-02-15 added OceanSODA-Argo SST comparison
html 54ea512 pasqualina-vonlanthendinenna 2022-02-10 Build site.
html f2fa56a pasqualina-vonlanthendinenna 2022-02-10 Build site.
Rmd eda8ca8 pasqualina-vonlanthendinenna 2022-02-10 code review

Task

Compare depth profiles of normal temperature and of extreme temperature, as identified in the surface OceanSODA data product

Dependencies

OceanSODA_temp.rds - bgc preprocessed folder, created by OceanSODA_argo_pH.

temp_bgc_va.rds - bgc preprocessed folder, created by temp_align_climatology.

temp_anomaly_va.rds - bgc preprocessed folder, created by temp_align_climatology.

Outputs

OceanSODA_SST_anomaly_field_01.rds (or _02.rds)

OceanSODA_global_SST_anomaly_field_01.rds (or _02.rds)

theme_set(theme_bw())
HNL_colors <- c("H" = "#b2182b",
                "N" = "#636363",
                "L" = "#2166ac")

HNL_colors_map <- c('H' = 'red3',
                    'N' = 'transparent',
                    'L' = 'blue3')

# opt_min_profile_range
# profiles with profile_range >= opt_min_profile_range will be selected 1 = profiles of at least 600m, 2 = profiles of at least 1200m, 3 = profiles of at least 1500m
opt_min_profile_range = 3

# opt_extreme_determination
# 1 - based on the trend of de-seasonal data - we believe this results in more summer extremes where variation tend to be greater.
# 2 - based on the trend of de-seasonal data by month. grouping is by lat, lon and month.
opt_extreme_determination <- 2

Load data

path_argo <- '/nfs/kryo/work/updata/bgc_argo_r_argodata'
path_argo_preprocessed <- paste0(path_argo, "/preprocessed_bgc_data")
path_emlr_utilities <- "/nfs/kryo/work/jenmueller/emlr_cant/utilities/files/"
path_updata <- '/nfs/kryo/work/updata'
path_argo_clim_temp <- paste0(path_updata, "/argo_climatology/temperature")

path_argo <- '/nfs/kryo/work/datasets/ungridded/3d/ocean/floats/bgc_argo'
# /nfs/kryo/work/datasets/ungridded/3d/ocean/floats/bgc_argo/preprocessed_bgc_data
path_argo_preprocessed <- paste0(path_argo, "/preprocessed_bgc_data")
# RECCAP2-ocean region mask

#  region_masks_all_2x2 <- read_rds(file = paste0(path_argo_preprocessed,
#                                                 "/region_masks_all_2x2.rds"))
# #   
# region_masks_all_2x2 <- region_masks_all_2x2 %>%
#   rename(biome = value) %>%
#   mutate(coast = as.character(coast))

# updated biomes of Nicolas Mayot 

nm_biomes <- read_rds(file = paste0(path_argo_preprocessed, "/nm_biomes.rds"))

# WOA 18 basin mask

basinmask <-
  read_csv(
    paste(path_emlr_utilities,
          "basin_mask_WOA18.csv",
          sep = ""),
    col_types = cols("MLR_basins" = col_character())
  )

basinmask <- basinmask %>%
  filter(MLR_basins == unique(basinmask$MLR_basins)[1]) %>% 
  select(-c(MLR_basins, basin))

# OceanSODA temperature (from 1995 to 2020)

OceanSODA_temp <- read_rds(file = paste0(path_argo_preprocessed, "/OceanSODA_temp.rds"))

OceanSODA_temp <- OceanSODA_temp %>%
  mutate(month = month(date))

# load validated and vertically aligned temp profiles, 
full_argo <-
  read_rds(file = paste0(path_argo_preprocessed, "/temp_bgc_va.rds")) %>%
  filter(profile_range >= opt_min_profile_range) %>%
  mutate(date = ymd(format(date, "%Y-%m-15")))


# base map for plotting
map <-
  read_rds(paste(path_emlr_utilities,
                 "map_landmask_WOA18.rds",
                 sep = ""))

Regions

Biome grid reduction

map+
  geom_tile(data = nm_biomes,
            aes(x = lon,
                y = lat,
                fill = biome_name))+
  scale_fill_brewer(palette = 'Dark2')+
  labs(title = 'Mayot biomes (pre-grid reduction)')

Version Author Date
c00711b ds2n19 2023-12-06
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
c541171 pasqualina-vonlanthendinenna 2022-04-07
48573c4 pasqualina-vonlanthendinenna 2022-03-31
basemap(limits = -30)+
  geom_spatial_tile(data = nm_biomes,
                    aes(x = lon,
                        y = lat,
                        fill = biome_name),
                    col = NA)+
  scale_fill_brewer(palette = 'Dark2')+
  labs(title = 'Mayot biomes (pre-grid reduction)')
# Commented
# nm_biomes_2x2 <- nm_biomes %>% 
#   mutate(lon = cut(lon, seq(20, 380, 2), seq(21, 379, 2)),
#          lon = as.numeric(as.character(lon)),
#          lat = cut(lat, seq(-90, 90, 2), seq(-89, 89, 2)),
#          lat = as.numeric(as.character(lat)))
# 
# nm_biomes_2x2 <- nm_biomes_2x2 %>% 
#   count(lon, lat, biome_name) %>% 
#   group_by(lon, lat) %>% 
#   slice_max(n, with_ties = FALSE) %>% 
#   ungroup()

# New
nm_biomes <- nm_biomes %>% 
  count(lon, lat, biome_name) %>% 
  group_by(lon, lat) %>% 
  slice_max(n, with_ties = FALSE) %>% 
  ungroup()

# Commented
#rm(nm_biomes)
# map+
#   geom_tile(data = nm_biomes_2x2,
#             aes(x = lon,
#                 y = lat,
#                 fill = biome_name))+
#   scale_fill_brewer(palette = 'Dark2')+
#   labs('Mayot biomes post-grid reduction')
# basemap(limits = -30)+
#   geom_spatial_tile(data = nm_biomes_2x2,
#                     aes(x = lon, 
#                         y = lat,
#                         fill = biome_name),
#                     col = NA)+
#   scale_fill_brewer(palette = 'Dark2')+
#   labs(title = 'Mayot biomes (post-grid reduction)')
map +
  geom_tile(data = basinmask, 
            aes(x = lon, 
                y = lat, 
                fill = basin_AIP))+
  scale_fill_brewer(palette = 'Dark2')

Version Author Date
c00711b ds2n19 2023-12-06
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
fa1b6de jens-daniel-mueller 2022-03-28
749e005 jens-daniel-mueller 2022-03-28
# Commented
# basinmask_2x2 <- basinmask %>%
#   mutate(
#     lat = cut(lat, seq(-90, 90, 2), seq(-89, 89, 2)),
#     lat = as.numeric(as.character(lat)),
#     lon = cut(lon, seq(20, 380, 2), seq(21, 379, 2)),
#     lon = as.numeric(as.character(lon))
#    )
# 
# # assign basins from each pixel to to each 2 Lon x Lat pixel, based on the majority of basins in each 2x2 grid
# 
# basinmask_2x2 <- basinmask_2x2 %>%
#   count(lon, lat, basin_AIP) %>%
#   group_by(lon, lat) %>%
#   slice_max(n, with_ties = FALSE) %>%
#   ungroup() %>%
#   select(-n)

# Added
basinmask <- basinmask %>%
  count(lon, lat, basin_AIP) %>%
  group_by(lon, lat) %>%
  slice_max(n, with_ties = FALSE) %>%
  ungroup() %>%
  select(-n)

# commented
#rm(basinmask)
# map+
#   geom_tile(data = basinmask_2x2 %>% filter(lat < -30),
#             aes(x = lon,
#                 y = lat,
#                 fill = basin_AIP))+
#   scale_fill_brewer(palette = 'Dark2')
# basemap(limits = -32)+
#   geom_spatial_tile(data = basinmask_2x2 %>% filter(lat < -32),
#                     aes(x = lon,
#                         y = lat,
#                         fill = basin_AIP),
#                     col = NA)+
#   scale_fill_brewer(palette = 'Dark2')

OceanSODA

Monthly clim

OceanSODA_temp <- OceanSODA_temp %>% 
  group_by(lon, lat, month) %>% 
  mutate(clim_temp = mean(temperature, na.rm = TRUE),
         clim_diff = temperature - clim_temp,
         .after = temperature) %>% 
  ungroup()

Grid reduction

# Note: While reducing lon x lat grid,
# we keep the original number of observations

# Commented
# OceanSODA_temp_2x2 <- OceanSODA_temp %>%
#   mutate(
#     lat_raw = lat,
#     lon_raw = lon,
#     lat = cut(lat, seq(-90, 90, 2), seq(-89, 89, 2)),
#     lat = as.numeric(as.character(lat)),
#     lon = cut(lon, seq(20, 380, 2), seq(21, 379, 2)),
#     lon = as.numeric(as.character(lon))) # regrid into 2x2º grid

# Added
OceanSODA_temp <- OceanSODA_temp %>%
  mutate(
    lat_raw = lat,
    lon_raw = lon)

# commented
#rm(OceanSODA_temp)

Apply region masks

Propose not to add biomes as these restrict to SO

# keep only Southern Ocean data
# OceanSODA_temp_2x2_SO <- inner_join(OceanSODA_temp_2x2, nm_biomes_2x2 %>% 
                                       # select(-n)) 
# 
# rm(OceanSODA_temp_2x2)

# # add in basin separations
# OceanSODA_temp_2x2_SO <- inner_join(OceanSODA_temp_2x2_SO, basinmask_2x2)
# # expected number of rows from -30 to -70º latitude, 360º longitude, for 12 months, 8 years:
# # 40 lat x 360 lon x 12 months x 8 years = 1 382 400 rows 
# # actual number of rows: 925 260 (in line with expectations)
# 
# OceanSODA_temp_2x2_SO <- OceanSODA_temp_2x2_SO %>% 
#    filter(!is.na(temperature))
# # no NA clim_diff values 


# OceanSODA_temp_SO <- inner_join(OceanSODA_temp, nm_biomes %>% 
#                                        select(-n)) 

# add in basin separations
OceanSODA_temp <- inner_join(OceanSODA_temp, basinmask)

OceanSODA_temp <- OceanSODA_temp %>% 
   filter(!is.na(temperature))

Maps

OceanSODA_temp %>% 
  filter(year == 2020) %>% 
  ggplot(aes(lon_raw, lat_raw, fill = clim_temp)) +
  geom_tile() +
  scale_fill_viridis_c() +
  facet_wrap(~ month, ncol = 2) +
  coord_quickmap(expand = 0)

Version Author Date
c00711b ds2n19 2023-12-06
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
710edd4 jens-daniel-mueller 2022-05-11
OceanSODA_temp %>% 
  group_split(month) %>% 
  #head(1) %>% 
  map(
    ~map +
      geom_tile(data = .x,
                aes(x = lon_raw,
                    y = lat_raw,
                    fill = clim_temp))+
      scale_fill_viridis_c()+
      labs(title = paste0('month:', unique(.x$month)))+
      theme(legend.position = 'right')
  )
[[1]]

Version Author Date
c00711b ds2n19 2023-12-06
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29

[[2]]

Version Author Date
c00711b ds2n19 2023-12-06
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29

[[3]]

Version Author Date
c00711b ds2n19 2023-12-06
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29

[[4]]

Version Author Date
c00711b ds2n19 2023-12-06
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29

[[5]]

Version Author Date
c00711b ds2n19 2023-12-06
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29

[[6]]

Version Author Date
c00711b ds2n19 2023-12-06
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29

[[7]]

Version Author Date
c00711b ds2n19 2023-12-06
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29

[[8]]

Version Author Date
c00711b ds2n19 2023-12-06
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29

[[9]]

Version Author Date
c00711b ds2n19 2023-12-06
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29

[[10]]

Version Author Date
c00711b ds2n19 2023-12-06
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29

[[11]]

Version Author Date
c00711b ds2n19 2023-12-06
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29

[[12]]

Version Author Date
c00711b ds2n19 2023-12-06
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29
OceanSODA_temp %>% 
  group_split(month) %>% 
  #head(1) %>% 
  map(
    ~map +
      geom_tile(data = .x,
                aes(x = lon_raw,
                    y = lat_raw,
                    fill = clim_diff))+
      scale_fill_divergent(mid = 'grey80')+
      facet_wrap(~year, ncol = 3)+
      labs(title = paste0('month:', unique(.x$month)))+
      theme(legend.position = 'right')
  )
[[1]]

Version Author Date
c00711b ds2n19 2023-12-06
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
710edd4 jens-daniel-mueller 2022-05-11
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29

[[2]]

Version Author Date
c00711b ds2n19 2023-12-06
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
710edd4 jens-daniel-mueller 2022-05-11
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29

[[3]]

Version Author Date
c00711b ds2n19 2023-12-06
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
710edd4 jens-daniel-mueller 2022-05-11
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29

[[4]]

Version Author Date
c00711b ds2n19 2023-12-06
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
710edd4 jens-daniel-mueller 2022-05-11
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29

[[5]]

Version Author Date
c00711b ds2n19 2023-12-06
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
710edd4 jens-daniel-mueller 2022-05-11
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29

[[6]]

Version Author Date
c00711b ds2n19 2023-12-06
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
710edd4 jens-daniel-mueller 2022-05-11
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29

[[7]]

Version Author Date
c00711b ds2n19 2023-12-06
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
710edd4 jens-daniel-mueller 2022-05-11
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29

[[8]]

Version Author Date
c00711b ds2n19 2023-12-06
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
710edd4 jens-daniel-mueller 2022-05-11
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29

[[9]]

Version Author Date
c00711b ds2n19 2023-12-06
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
710edd4 jens-daniel-mueller 2022-05-11
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29

[[10]]

Version Author Date
c00711b ds2n19 2023-12-06
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
710edd4 jens-daniel-mueller 2022-05-11
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29

[[11]]

Version Author Date
c00711b ds2n19 2023-12-06
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
710edd4 jens-daniel-mueller 2022-05-11
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29

[[12]]

Version Author Date
c00711b ds2n19 2023-12-06
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
710edd4 jens-daniel-mueller 2022-05-11
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29

SST anomalies

Through setting only one of the following two code chunks to “eval=FALSE” you can choose between a lr- and a mean-based anomaly detection.

Fit lr models

# create a decimal_year column to use are the parameter to the regression function
OceanSODA_temp <- OceanSODA_temp %>%
  mutate(decimal_year = decimal_date(date), .after = year)

# fit a linear regression of OceanSODA temp against time (temporal trend)
# in each lat/lon/month grid, month is used depending on opt_extreme_determination
if (opt_extreme_determination == 1){
  OceanSODA_temp_regression <- OceanSODA_temp %>% 
    nest(data = -c(lon, lat)) %>%
    mutate(fit = map(.x = data,
                     .f = ~ lm(clim_diff ~ decimal_year, data = .x)),
           tidied = map(.x = fit, .f = tidy),
           glanced = map(.x = fit, .f = glance),
           augmented = map(.x = fit, .f = augment)) 
} else if (opt_extreme_determination == 2){
  OceanSODA_temp_regression <- OceanSODA_temp %>% 
    nest(data = -c(lon, lat, month)) %>%
    mutate(fit = map(.x = data,
                     .f = ~ lm(clim_diff ~ decimal_year, data = .x)),
           tidied = map(.x = fit, .f = tidy),
           glanced = map(.x = fit, .f = glance),
           augmented = map(.x = fit, .f = augment)) 
}

OceanSODA_temp_regression_tidied <- OceanSODA_temp_regression %>%
  select(-c(data, fit, augmented, glanced)) %>%
  unnest(tidied) 

OceanSODA_temp_regression_tidied <- OceanSODA_temp_regression_tidied %>% 
  select(lon:estimate) %>% 
  pivot_wider(names_from = term,
              values_from = estimate) %>% 
  rename(intercept = `(Intercept)`,
         slope = decimal_year)

OceanSODA_temp_regression_augmented <- OceanSODA_temp_regression %>%
  select(-c(fit, tidied, glanced, data)) %>%
  unnest(augmented) %>% 
  select(lon:decimal_year, .resid) 

OceanSODA_temp_regression_data <- OceanSODA_temp_regression %>% 
  select(-c(fit, tidied, glanced, augmented)) %>% 
  unnest(data) 

OceanSODA_temp_regression_augmented <- bind_cols(
  OceanSODA_temp_regression_augmented,
  OceanSODA_temp_regression_data %>% 
    select(date,
           basin_AIP, 
           temperature, 
           clim_temp, 
           lat_raw, 
           lon_raw))

OceanSODA_temp_regression_glanced <- OceanSODA_temp_regression %>%
  select(-c(data, fit, tidied, augmented)) %>%
  unnest(glanced) 

Fit mean

# identify the mean value
# in each lat/lon/month grid
OceanSODA_temp_regression_tidied <- OceanSODA_temp_2x2_SO %>% 
  group_by(lon, lat, month) %>%
  summarise(slope = 0,
            intercept = mean(clim_diff, na.rm = TRUE)) %>% 
  ungroup()

OceanSODA_temp_regression_glanced <- OceanSODA_temp_2x2_SO %>% 
  group_by(lon, lat, month) %>%
  summarise(sigma = sd(clim_diff, na.rm = TRUE)) %>% 
  ungroup()

OceanSODA_temp_regression_augmented <- OceanSODA_temp_2x2_SO %>% 
  mutate(.resid = clim_diff)

Slope maps

if (opt_extreme_determination == 1){
  map +
    geom_tile(data = OceanSODA_temp_regression_tidied,
              aes(x = lon,
                  y = lat,
                  fill = slope)) +
    scale_fill_scico(palette = 'vik', midpoint = 0)
} else if (opt_extreme_determination == 2){
  map +
    geom_tile(data = OceanSODA_temp_regression_tidied,
              aes(x = lon,
                  y = lat,
                  fill = slope)) +
    scale_fill_scico(palette = 'vik', midpoint = 0) +
    facet_wrap( ~ month, ncol = 2)
}

Version Author Date
c00711b ds2n19 2023-12-06
cf5dd20 ds2n19 2023-12-04
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
8173cdb jens-daniel-mueller 2022-03-28
650ef68 pasqualina-vonlanthendinenna 2022-03-18
1ffe07f pasqualina-vonlanthendinenna 2022-03-11
5ef4df2 pasqualina-vonlanthendinenna 2022-03-01
8ef1277 pasqualina-vonlanthendinenna 2022-03-01
f2fa56a pasqualina-vonlanthendinenna 2022-02-10

Sigma maps

if (opt_extreme_determination == 1){
  map +
    geom_tile(data = OceanSODA_temp_regression_glanced,
              aes(x = lon,
                  y = lat,
                  fill = sigma)) +
    scale_fill_viridis_c() +
    labs(fill = '1 residual \nst. dev.')
} else if (opt_extreme_determination == 2){
  map +
    geom_tile(data = OceanSODA_temp_regression_glanced,
              aes(x = lon,
                  y = lat,
                  fill = sigma)) +
    scale_fill_viridis_c() +
    labs(fill = '1 residual \nst. dev.') +
    facet_wrap(~month, ncol = 2)
}  

Version Author Date
c00711b ds2n19 2023-12-06
cf5dd20 ds2n19 2023-12-04
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
749e005 jens-daniel-mueller 2022-03-28

Anomaly identification

Calculate OceanSODA surface temperature anomalies; L for abnormally low, H for abnormally high, and N for normal

# when the in-situ OceanSODA temperature is lower than the 5th percentile (predicted - 2*residual.st.dev), assign 'L' for low extreme
# when the in-situ OceanSODA temperature exceeds the 95th percentile (predicted + 2*residual.st.dev), assign 'H' for high extreme
# when the in-situ OceanSODA temperature is within 95% of the range, then assign 'N' for normal pH

# combine observations and regression statistics
if (opt_extreme_determination == 1){
  OceanSODA_temp_extreme_grid <-
    full_join(
      OceanSODA_temp_regression_augmented,
      OceanSODA_temp_regression_glanced %>%
        select(lon:lat, sigma)
    )
} else if (opt_extreme_determination == 2){
  OceanSODA_temp_extreme_grid <-
    full_join(
      OceanSODA_temp_regression_augmented,
      OceanSODA_temp_regression_glanced %>%
        select(lon:month, sigma)
    )
}
# results in 925 056 rows 

# identify observations in anomaly classes
OceanSODA_temp_extreme_grid <- OceanSODA_temp_extreme_grid %>%
  mutate(
    temp_extreme = case_when(
      .resid < -sigma*2 ~ 'L',
      .resid > sigma*2 ~ 'H',
      TRUE ~ 'N'
    )
  ) 

OceanSODA_temp_extreme_grid <- OceanSODA_temp_extreme_grid %>%
  mutate(temp_extreme = fct_relevel(temp_extreme, "H", "N", "L"))


# combine with regression coefficients

OceanSODA_temp_extreme_grid <-
  full_join(OceanSODA_temp_extreme_grid,
            OceanSODA_temp_regression_tidied) 

OceanSODA_temp_extreme_grid <- OceanSODA_temp_extreme_grid %>%
  mutate(year = year(date),
         month = month(date),
         .after = decimal_year)

# 925 056 rows, in line with expectations for 40 lat x 360 lon x 12 months x 8 years (1 382 400 obs minus NA values)

Write anomalies to file

# Restrict to SO by inner join to nm_biomes
OceanSODA_temp_SO_extreme_grid <- inner_join(OceanSODA_temp_extreme_grid, nm_biomes %>% 
                                        select(-n)) 

# if (opt_extreme_determination == 1){
#   OceanSODA_temp_SO_extreme_grid %>%
#     write_rds(file = paste0(
#       path_argo_preprocessed,
#       "/OceanSODA_SST_anomaly_field_01.rds"
#     ))
#   OceanSODA_temp_extreme_grid %>%
#     write_rds(file = paste0(
#       path_argo_preprocessed,
#       "/OceanSODA_global_SST_anomaly_field_01.rds"
#     ))
# } else if (opt_extreme_determination == 2){
#   OceanSODA_temp_SO_extreme_grid %>%
#     write_rds(file = paste0(
#       path_argo_preprocessed,
#       "/OceanSODA_SST_anomaly_field_02.rds"
#     ))
#   OceanSODA_temp_extreme_grid %>%
#     write_rds(file = paste0(
#       path_argo_preprocessed,
#       "/OceanSODA_global_SST_anomaly_field_02.rds"
#     ))
# }
if (opt_extreme_determination == 1){
  OceanSODA_temp_SO_extreme_grid %>%
    group_split(lon, lat) %>%
    head(6) %>%
    map(
      ~ ggplot(data = .x) +
        geom_point(aes(
          x = year,
          y = clim_diff,
          col = temp_extreme
        )) +
        geom_abline(data = .x, aes(slope = slope,
                                   intercept = intercept)) +
        geom_abline(
          data = .x,
          aes(slope = slope,
              intercept = intercept + 2 * sigma),
          linetype = 2
        ) +
        geom_abline(
          data = .x,
          aes(slope = slope,
              intercept = intercept - 2 * sigma),
          linetype = 2
        ) +
        labs(title = paste(
          fititle = paste("lon:", unique(.x$lon),
                          "| lat:", unique(.x$lat))
        )) +
        scale_color_manual(values = HNL_colors)
    )
} else if (opt_extreme_determination == 2){
  OceanSODA_temp_SO_extreme_grid %>%
    group_split(lon, lat, month) %>%
    head(6) %>%
    map(
      ~ ggplot(data = .x) +
        geom_point(aes(
          x = year,
          y = clim_diff,
          col = temp_extreme
        )) +
        geom_abline(data = .x, aes(slope = slope,
                                   intercept = intercept)) +
        geom_abline(
          data = .x,
          aes(slope = slope,
              intercept = intercept + 2 * sigma),
          linetype = 2
        ) +
        geom_abline(
          data = .x,
          aes(slope = slope,
              intercept = intercept - 2 * sigma),
          linetype = 2
        ) +
        labs(title = paste(fititle = paste(
          "lon:", unique(.x$lon),
          "| lat:", unique(.x$lat),
          "| month:", unique(.x$month)
        ))) +
        scale_color_manual(values = HNL_colors)
    )
}
[[1]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
8173cdb jens-daniel-mueller 2022-03-28
650ef68 pasqualina-vonlanthendinenna 2022-03-18
1ffe07f pasqualina-vonlanthendinenna 2022-03-11
5ef4df2 pasqualina-vonlanthendinenna 2022-03-01
8ef1277 pasqualina-vonlanthendinenna 2022-03-01
f2fa56a pasqualina-vonlanthendinenna 2022-02-10

[[2]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
8173cdb jens-daniel-mueller 2022-03-28
650ef68 pasqualina-vonlanthendinenna 2022-03-18
1ffe07f pasqualina-vonlanthendinenna 2022-03-11
5ef4df2 pasqualina-vonlanthendinenna 2022-03-01
8ef1277 pasqualina-vonlanthendinenna 2022-03-01
f2fa56a pasqualina-vonlanthendinenna 2022-02-10

[[3]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
8173cdb jens-daniel-mueller 2022-03-28
650ef68 pasqualina-vonlanthendinenna 2022-03-18
1ffe07f pasqualina-vonlanthendinenna 2022-03-11
5ef4df2 pasqualina-vonlanthendinenna 2022-03-01
8ef1277 pasqualina-vonlanthendinenna 2022-03-01
f2fa56a pasqualina-vonlanthendinenna 2022-02-10

[[4]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
8173cdb jens-daniel-mueller 2022-03-28
650ef68 pasqualina-vonlanthendinenna 2022-03-18
1ffe07f pasqualina-vonlanthendinenna 2022-03-11
5ef4df2 pasqualina-vonlanthendinenna 2022-03-01
8ef1277 pasqualina-vonlanthendinenna 2022-03-01
f2fa56a pasqualina-vonlanthendinenna 2022-02-10

[[5]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
8173cdb jens-daniel-mueller 2022-03-28
650ef68 pasqualina-vonlanthendinenna 2022-03-18
1ffe07f pasqualina-vonlanthendinenna 2022-03-11
5ef4df2 pasqualina-vonlanthendinenna 2022-03-01
8ef1277 pasqualina-vonlanthendinenna 2022-03-01
f2fa56a pasqualina-vonlanthendinenna 2022-02-10

[[6]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
8173cdb jens-daniel-mueller 2022-03-28
650ef68 pasqualina-vonlanthendinenna 2022-03-18
1ffe07f pasqualina-vonlanthendinenna 2022-03-11
5ef4df2 pasqualina-vonlanthendinenna 2022-03-01
8ef1277 pasqualina-vonlanthendinenna 2022-03-01
f2fa56a pasqualina-vonlanthendinenna 2022-02-10

Global anomaly identification

# Check valid temperature
OceanSODA_temp <- OceanSODA_temp %>% 
   filter(!is.na(temperature))

# create a decimal_year column to use are the parameter to the regression function
OceanSODA_temp <- OceanSODA_temp %>%
  mutate(decimal_year = decimal_date(date), .after = year)

# fit a linear regression of OceanSODA temp against time (temporal trend)
# in each lat/lon/month grid, month is used depending on opt_extreme_determination
if (opt_extreme_determination == 1){
  OceanSODA_temp_regression <- OceanSODA_temp %>%
    nest(data = -c(lon, lat)) %>%
    mutate(
      fit = map(
        .x = data,
        .f = ~ lm(clim_diff ~ decimal_year, data = .x)
      ),
      tidied = map(.x = fit, .f = tidy),
      glanced = map(.x = fit, .f = glance),
      augmented = map(.x = fit, .f = augment)
    )
} else if (opt_extreme_determination == 2){
  OceanSODA_temp_regression <- OceanSODA_temp %>%
    nest(data = -c(lon, lat, month)) %>%
    mutate(
      fit = map(
        .x = data,
        .f = ~ lm(clim_diff ~ decimal_year, data = .x)
      ),
      tidied = map(.x = fit, .f = tidy),
      glanced = map(.x = fit, .f = glance),
      augmented = map(.x = fit, .f = augment)
    )
}

OceanSODA_temp_regression_tidied <- OceanSODA_temp_regression %>%
  select(-c(data, fit, augmented, glanced)) %>%
  unnest(tidied) 

OceanSODA_temp_regression_tidied <- OceanSODA_temp_regression_tidied %>% 
  select(lon:estimate) %>% 
  pivot_wider(names_from = term,
              values_from = estimate) %>% 
  rename(intercept = `(Intercept)`,
         slope = decimal_year)

OceanSODA_temp_regression_augmented <- OceanSODA_temp_regression %>%
  select(-c(fit, tidied, glanced, data)) %>%
  unnest(augmented) %>% 
  select(lon:decimal_year, .resid) 

OceanSODA_temp_regression_data <- OceanSODA_temp_regression %>% 
  select(-c(fit, tidied, glanced, augmented)) %>% 
  unnest(data) 

OceanSODA_temp_regression_augmented <- bind_cols(
  OceanSODA_temp_regression_augmented,
  OceanSODA_temp_regression_data %>% 
    select(date,
           temperature, clim_temp, 
           lat_raw, lon_raw))

OceanSODA_temp_regression_glanced <- OceanSODA_temp_regression %>%
  select(-c(data, fit, tidied, augmented)) %>%
  unnest(glanced) 

# Anomally identification

# when the in-situ OceanSODA temperature is lower than the 5th percentile (predicted - 2*residual.st.dev), assign 'L' for low extreme
# when the in-situ OceanSODA temperature exceeds the 95th percentile (predicted + 2*residual.st.dev), assign 'H' for high extreme
# when the in-situ OceanSODA temperature is within 95% of the range, then assign 'N' for normal pH

# combine observations and regression statistics
if (opt_extreme_determination == 1){
  OceanSODA_temp_extreme_grid <-
    full_join(
      OceanSODA_temp_regression_augmented,
      OceanSODA_temp_regression_glanced %>%
        select(lon:lat, sigma)
    )
} else if (opt_extreme_determination == 2){
  OceanSODA_temp_extreme_grid <-
    full_join(
      OceanSODA_temp_regression_augmented,
      OceanSODA_temp_regression_glanced %>%
        select(lon:month, sigma)
    )
}

# identify observations in anomaly classes
OceanSODA_temp_extreme_grid <- OceanSODA_temp_extreme_grid %>%
  mutate(
    temp_extreme = case_when(
      .resid < -sigma*2 ~ 'L',
      .resid > sigma*2 ~ 'H',
      TRUE ~ 'N'
    )
  ) 

OceanSODA_temp_extreme_grid <- OceanSODA_temp_extreme_grid %>%
  mutate(temp_extreme = fct_relevel(temp_extreme, "H", "N", "L"))

# combine with regression coefficients
OceanSODA_temp_extreme_grid <-
  full_join(OceanSODA_temp_extreme_grid,
            OceanSODA_temp_regression_tidied) 

OceanSODA_temp_extreme_grid <- OceanSODA_temp_extreme_grid %>%
  mutate(year = year(date),
         month = month(date),
         .after = decimal_year)


# Write anomalies to file
# if (opt_extreme_determination == 1){
#   OceanSODA_temp_extreme_grid %>%
#     write_rds(file = paste0(
#       path_argo_preprocessed,
#       "/OceanSODA_global_SST_anomaly_field_01.rds"
#     ))
# } else if (opt_extreme_determination == 2){
#   OceanSODA_temp_extreme_grid %>%
#     write_rds(file = paste0(
#       path_argo_preprocessed,
#       "/OceanSODA_global_SST_anomaly_field_02.rds"
#     ))
# }

Anomaly maps

# anomaly maps on a 1x1 grid 

OceanSODA_temp_extreme_grid %>% 
  filter(year >= 2013) %>% 
  group_split(month) %>% 
  #head(1) %>% 
  map(
    ~map +
      geom_tile(data = .x,
                aes(x = lon_raw,
                    y = lat_raw,
                    fill = temp_extreme),
                width = 1,
                height = 1)+
      scale_fill_manual(values = HNL_colors_map)+
      facet_wrap(~year, ncol = 2)+
      labs(title = paste('month:', unique(.x$month)),
           fill = 'temperature')
  )
[[1]]

Version Author Date
4942ace ds2n19 2023-12-06
c00711b ds2n19 2023-12-06
cf5dd20 ds2n19 2023-12-04
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
ca30beb pasqualina-vonlanthendinenna 2022-05-05
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
749e005 jens-daniel-mueller 2022-03-28

[[2]]

Version Author Date
4942ace ds2n19 2023-12-06
c00711b ds2n19 2023-12-06
cf5dd20 ds2n19 2023-12-04
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
ca30beb pasqualina-vonlanthendinenna 2022-05-05
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
749e005 jens-daniel-mueller 2022-03-28

[[3]]

Version Author Date
4942ace ds2n19 2023-12-06
c00711b ds2n19 2023-12-06
cf5dd20 ds2n19 2023-12-04
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
ca30beb pasqualina-vonlanthendinenna 2022-05-05
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
749e005 jens-daniel-mueller 2022-03-28

[[4]]

Version Author Date
4942ace ds2n19 2023-12-06
c00711b ds2n19 2023-12-06
cf5dd20 ds2n19 2023-12-04
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
ca30beb pasqualina-vonlanthendinenna 2022-05-05
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
749e005 jens-daniel-mueller 2022-03-28

[[5]]

Version Author Date
4942ace ds2n19 2023-12-06
c00711b ds2n19 2023-12-06
cf5dd20 ds2n19 2023-12-04
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
ca30beb pasqualina-vonlanthendinenna 2022-05-05
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
749e005 jens-daniel-mueller 2022-03-28

[[6]]

Version Author Date
4942ace ds2n19 2023-12-06
c00711b ds2n19 2023-12-06
cf5dd20 ds2n19 2023-12-04
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
ca30beb pasqualina-vonlanthendinenna 2022-05-05
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
749e005 jens-daniel-mueller 2022-03-28

[[7]]

Version Author Date
4942ace ds2n19 2023-12-06
c00711b ds2n19 2023-12-06
cf5dd20 ds2n19 2023-12-04
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
ca30beb pasqualina-vonlanthendinenna 2022-05-05
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
749e005 jens-daniel-mueller 2022-03-28

[[8]]

Version Author Date
4942ace ds2n19 2023-12-06
c00711b ds2n19 2023-12-06
cf5dd20 ds2n19 2023-12-04
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
ca30beb pasqualina-vonlanthendinenna 2022-05-05
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
749e005 jens-daniel-mueller 2022-03-28

[[9]]

Version Author Date
4942ace ds2n19 2023-12-06
c00711b ds2n19 2023-12-06
cf5dd20 ds2n19 2023-12-04
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
ca30beb pasqualina-vonlanthendinenna 2022-05-05
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29

[[10]]

Version Author Date
4942ace ds2n19 2023-12-06
c00711b ds2n19 2023-12-06
cf5dd20 ds2n19 2023-12-04
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
ca30beb pasqualina-vonlanthendinenna 2022-05-05
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29

[[11]]

Version Author Date
4942ace ds2n19 2023-12-06
c00711b ds2n19 2023-12-06
cf5dd20 ds2n19 2023-12-04
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
ca30beb pasqualina-vonlanthendinenna 2022-05-05
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29

[[12]]

Version Author Date
4942ace ds2n19 2023-12-06
c00711b ds2n19 2023-12-06
cf5dd20 ds2n19 2023-12-04
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
ca30beb pasqualina-vonlanthendinenna 2022-05-05
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29

Anomaly timeseries

# calculate a regional mean temperature for each biome, basin, and temp extreme (H/L/N) and plot a timeseries 

OceanSODA_temp_SO_extreme_grid %>% 
  group_by(year, biome_name, basin_AIP, temp_extreme) %>% 
  summarise(temp_regional = mean(temperature, na.rm = TRUE)) %>% 
  ungroup() %>% 
  ggplot(aes(x = year, y = temp_regional, col = temp_extreme))+
  geom_point(size = 0.3)+
  geom_line()+
  scale_color_manual(values = HNL_colors) +
  facet_grid(basin_AIP~biome_name)+
  theme(legend.position = 'bottom')

Version Author Date
cf5dd20 ds2n19 2023-12-04
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
8173cdb jens-daniel-mueller 2022-03-28
650ef68 pasqualina-vonlanthendinenna 2022-03-18
1ffe07f pasqualina-vonlanthendinenna 2022-03-11
5ef4df2 pasqualina-vonlanthendinenna 2022-03-01
8ef1277 pasqualina-vonlanthendinenna 2022-03-01
c68163a pasqualina-vonlanthendinenna 2022-02-22
f2fa56a pasqualina-vonlanthendinenna 2022-02-10

Anomaly histogram

# histograms for each extreme level 

OceanSODA_temp_SO_extreme_grid %>%
  ggplot(aes(temperature, col = temp_extreme)) +
  geom_density() +
  scale_color_manual(values = HNL_colors) +
  facet_grid(basin_AIP ~ biome_name) +
  coord_cartesian(xlim = c(-2, 28)) +
  labs(x = 'value',
       y = 'density',
       col = 'temp anomaly') +
  theme(legend.position = 'bottom')

Version Author Date
cf5dd20 ds2n19 2023-12-04
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
8173cdb jens-daniel-mueller 2022-03-28
650ef68 pasqualina-vonlanthendinenna 2022-03-18
1ffe07f pasqualina-vonlanthendinenna 2022-03-11
5ef4df2 pasqualina-vonlanthendinenna 2022-03-01
8ef1277 pasqualina-vonlanthendinenna 2022-03-01
c68163a pasqualina-vonlanthendinenna 2022-02-22
f2fa56a pasqualina-vonlanthendinenna 2022-02-10

Argo (BGC-temperature)

Grid reduction

# Note: While reducing lon x lat grid,
# we keep the original number of observations

# full_argo_2x2 <- full_argo %>%
#   mutate(
#     lat_raw = lat,
#     lon_raw = lon,
#     lat = cut(lat, seq(-90, 90, 2), seq(-89, 89, 2)),
#     lat = as.numeric(as.character(lat)),
#     lon = cut(lon, seq(20, 380, 2), seq(21, 379, 2)),
#     lon = as.numeric(as.character(lon)))  # re-grid to 2x2

full_argo <- full_argo %>%
  mutate(
    lat_raw = lat,
    lon_raw = lon)

Apply region masks

# add in new Mayot biome information
full_argo_2x2_SO <- inner_join(full_argo_2x2, nm_biomes_2x2)

# add in basin separations
full_argo_2x2_SO <- inner_join(full_argo_2x2_SO, basinmask_2x2)

Join OceanSODA

# revert OceanSODA to regular 1x1 grid
OceanSODA_temp_SO_extreme_grid <- OceanSODA_temp_SO_extreme_grid %>%
  select(-c(lon, lat)) %>%
  rename(OceanSODA_temp = temperature,
         lon = lon_raw,
         lat = lat_raw) %>% 
  filter(year >=2013)
# 925 056 obs 

# combine the argo profile data to the surface extreme data
profile_temp_extreme <- inner_join(
  full_argo %>%
    select(
      file_id, 
      year, 
      month, 
      date, 
      lon, 
      lat, 
      depth, 
      temp
      ),
  OceanSODA_temp_SO_extreme_grid %>% 
    select(c(year, month, date, lon, lat,
           OceanSODA_temp, temp_extreme,
           clim_temp, clim_diff,
           basin_AIP, biome_name)))

# profile_temp_extreme <- profile_temp_extreme %>% 
#   unite('platform_cycle', platform_number:cycle_number, sep = '_', remove = FALSE)

Location of BGC-temperature profiles

OceanSODA_temp_SO_extreme_grid %>%
  group_split(month) %>%
  # head(1) %>%
  map(
    ~ map +
      geom_tile(
        data = .x,
        aes(x = lon,
            y = lat,
            fill = temp_extreme),
        alpha = 0.5
      ) +
      scale_fill_manual(values = HNL_colors_map) +
      new_scale_fill() +
      geom_tile(
        data = profile_temp_extreme %>%
          distinct(lon, lat, file_id, year, month),
        aes(
          x = lon,
          y = lat,
          fill = 'argo\nprofiles',
          height = 1,
          width = 1
        ),
        alpha = 0.5
      ) +
      scale_fill_manual(values = "springgreen4",
                        name = "") +
      facet_wrap(~ year, ncol = 1) +
      lims(y = c(-85, -30)) +
      labs(title = paste('month:', unique(.x$month))
      )
  )
[[1]]

Version Author Date
f9de50e ds2n19 2024-01-01
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
71e58d6 jens-daniel-mueller 2022-05-12
b917bd0 jens-daniel-mueller 2022-05-11
ca30beb pasqualina-vonlanthendinenna 2022-05-05
4cf88e4 pasqualina-vonlanthendinenna 2022-05-05
f46b9da pasqualina-vonlanthendinenna 2022-05-05
2d44f8a pasqualina-vonlanthendinenna 2022-04-29

[[2]]

Version Author Date
f9de50e ds2n19 2024-01-01
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
71e58d6 jens-daniel-mueller 2022-05-12
b917bd0 jens-daniel-mueller 2022-05-11
ca30beb pasqualina-vonlanthendinenna 2022-05-05
4cf88e4 pasqualina-vonlanthendinenna 2022-05-05
2751f13 pasqualina-vonlanthendinenna 2022-05-05
f46b9da pasqualina-vonlanthendinenna 2022-05-05
2d44f8a pasqualina-vonlanthendinenna 2022-04-29

[[3]]

Version Author Date
f9de50e ds2n19 2024-01-01
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
71e58d6 jens-daniel-mueller 2022-05-12
b917bd0 jens-daniel-mueller 2022-05-11
ca30beb pasqualina-vonlanthendinenna 2022-05-05
4cf88e4 pasqualina-vonlanthendinenna 2022-05-05
2751f13 pasqualina-vonlanthendinenna 2022-05-05
f46b9da pasqualina-vonlanthendinenna 2022-05-05
2d44f8a pasqualina-vonlanthendinenna 2022-04-29

[[4]]

Version Author Date
f9de50e ds2n19 2024-01-01
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
71e58d6 jens-daniel-mueller 2022-05-12
b917bd0 jens-daniel-mueller 2022-05-11
ca30beb pasqualina-vonlanthendinenna 2022-05-05
4cf88e4 pasqualina-vonlanthendinenna 2022-05-05
2751f13 pasqualina-vonlanthendinenna 2022-05-05
f46b9da pasqualina-vonlanthendinenna 2022-05-05
2d44f8a pasqualina-vonlanthendinenna 2022-04-29

[[5]]

Version Author Date
f9de50e ds2n19 2024-01-01
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
71e58d6 jens-daniel-mueller 2022-05-12
b917bd0 jens-daniel-mueller 2022-05-11
ca30beb pasqualina-vonlanthendinenna 2022-05-05
4cf88e4 pasqualina-vonlanthendinenna 2022-05-05
2751f13 pasqualina-vonlanthendinenna 2022-05-05
f46b9da pasqualina-vonlanthendinenna 2022-05-05
2d44f8a pasqualina-vonlanthendinenna 2022-04-29

[[6]]

Version Author Date
f9de50e ds2n19 2024-01-01
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
71e58d6 jens-daniel-mueller 2022-05-12
b917bd0 jens-daniel-mueller 2022-05-11
ca30beb pasqualina-vonlanthendinenna 2022-05-05
4cf88e4 pasqualina-vonlanthendinenna 2022-05-05
2751f13 pasqualina-vonlanthendinenna 2022-05-05
f46b9da pasqualina-vonlanthendinenna 2022-05-05
2d44f8a pasqualina-vonlanthendinenna 2022-04-29

[[7]]

Version Author Date
f9de50e ds2n19 2024-01-01
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
71e58d6 jens-daniel-mueller 2022-05-12
b917bd0 jens-daniel-mueller 2022-05-11
ca30beb pasqualina-vonlanthendinenna 2022-05-05
4cf88e4 pasqualina-vonlanthendinenna 2022-05-05
2751f13 pasqualina-vonlanthendinenna 2022-05-05
f46b9da pasqualina-vonlanthendinenna 2022-05-05
2d44f8a pasqualina-vonlanthendinenna 2022-04-29

[[8]]

Version Author Date
f9de50e ds2n19 2024-01-01
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
71e58d6 jens-daniel-mueller 2022-05-12
b917bd0 jens-daniel-mueller 2022-05-11
ca30beb pasqualina-vonlanthendinenna 2022-05-05
4cf88e4 pasqualina-vonlanthendinenna 2022-05-05
2751f13 pasqualina-vonlanthendinenna 2022-05-05
f46b9da pasqualina-vonlanthendinenna 2022-05-05
2d44f8a pasqualina-vonlanthendinenna 2022-04-29

[[9]]

Version Author Date
f9de50e ds2n19 2024-01-01
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
71e58d6 jens-daniel-mueller 2022-05-12
b917bd0 jens-daniel-mueller 2022-05-11
ca30beb pasqualina-vonlanthendinenna 2022-05-05
4cf88e4 pasqualina-vonlanthendinenna 2022-05-05
2751f13 pasqualina-vonlanthendinenna 2022-05-05
f46b9da pasqualina-vonlanthendinenna 2022-05-05
2d44f8a pasqualina-vonlanthendinenna 2022-04-29

[[10]]

Version Author Date
f9de50e ds2n19 2024-01-01
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
71e58d6 jens-daniel-mueller 2022-05-12
b917bd0 jens-daniel-mueller 2022-05-11
ca30beb pasqualina-vonlanthendinenna 2022-05-05
4cf88e4 pasqualina-vonlanthendinenna 2022-05-05
2751f13 pasqualina-vonlanthendinenna 2022-05-05
f46b9da pasqualina-vonlanthendinenna 2022-05-05
2d44f8a pasqualina-vonlanthendinenna 2022-04-29

[[11]]

Version Author Date
f9de50e ds2n19 2024-01-01
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
71e58d6 jens-daniel-mueller 2022-05-12
b917bd0 jens-daniel-mueller 2022-05-11
ca30beb pasqualina-vonlanthendinenna 2022-05-05
4cf88e4 pasqualina-vonlanthendinenna 2022-05-05
2751f13 pasqualina-vonlanthendinenna 2022-05-05
f46b9da pasqualina-vonlanthendinenna 2022-05-05
2d44f8a pasqualina-vonlanthendinenna 2022-04-29

[[12]]

Version Author Date
f9de50e ds2n19 2024-01-01
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
71e58d6 jens-daniel-mueller 2022-05-12
b917bd0 jens-daniel-mueller 2022-05-11
ca30beb pasqualina-vonlanthendinenna 2022-05-05
4cf88e4 pasqualina-vonlanthendinenna 2022-05-05
2751f13 pasqualina-vonlanthendinenna 2022-05-05
f46b9da pasqualina-vonlanthendinenna 2022-05-05
2d44f8a pasqualina-vonlanthendinenna 2022-04-29

Plot profiles

Argo profiles plotted according to the surface OceanSODA temperature

L profiles correspond to a low surface temperature event, as recorded in OceanSODA

H profiles correspond to an event of high surface temperature, as recorded in OceanSODA

N profiles correspond to normal surface OceanSODA temperature

Raw

By Mayot biomes

profile_temp_extreme %>%
  group_split(biome_name, basin_AIP, year) %>% 
  head(6) %>%
  map(
    ~ ggplot() +
      geom_path(data = .x %>% filter(temp_extreme == 'N'),
                aes(x = temp, 
                    y = depth,
                    group = file_id,
                    col = temp_extreme),
                linewidth = 0.3) +
      geom_path(data = .x %>% filter(temp_extreme == 'H' | temp_extreme == 'L'),
                aes(x = temp,
                    y = depth,
                    group = file_id,
                    col = temp_extreme),
                linewidth = 0.5)+
      scale_y_reverse() +
      scale_color_manual(values = HNL_colors) +
      facet_wrap(~ month, ncol = 6) +
      labs(
        x = 'Argo temperature (ºC)',
        y = 'depth (m)',
        title = paste(
          unique(.x$basin_AIP),
          "|",
          unique(.x$year),
          "| biome:",
          unique(.x$biome_name)
        ),
        col = 'OceanSODA temp \nanomaly'
      )
  )
[[1]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
879821d ds2n19 2023-10-18
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31

[[2]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
879821d ds2n19 2023-10-18
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31

[[3]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31

[[4]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31

[[5]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
48573c4 pasqualina-vonlanthendinenna 2022-03-31

[[6]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31

Atl, STSS biome, Oct17

# Temperature extreme: 
# Atlantic biome 1, 2018, months 2 and 3 

OceanSODA_temp_SO_extreme_grid_2017 <- OceanSODA_temp_SO_extreme_grid %>% 
  filter(date == '2017-10-15')  

map+
  geom_tile(data = OceanSODA_temp_SO_extreme_grid_2017,
            aes(x = lon,
                y = lat,
                fill = temp_extreme))+
  scale_fill_manual(values = HNL_colors_map)+
  lims(y = c(-85, -30)) +
  labs(title = 'October 2017',
       fill = 'OceanSODA SST \nextreme')

Version Author Date
cf5dd20 ds2n19 2023-12-04
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
ca30beb pasqualina-vonlanthendinenna 2022-05-05
c541171 pasqualina-vonlanthendinenna 2022-04-07
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29
profile_temp_Atl_2017 <- profile_temp_extreme %>% 
  filter(date == '2017-10-15',
         basin_AIP == 'Atlantic',
         biome_name == 'STSS') 

profile_temp_Atl_2017 %>% 
  ggplot(aes(x = temp,
             y = depth,
             group = file_id,
             col = temp_extreme))+
  geom_path(data = profile_temp_Atl_2017 %>% filter(temp_extreme == 'N'),
            aes(x = temp,
                y = depth,
                group = file_id,
                col = temp_extreme),
            linewidth = 0.3)+
  geom_path(data = profile_temp_Atl_2017 %>% filter(temp_extreme == 'H'| temp_extreme == 'L'),
            aes(x = temp,
                y = depth,
                group = file_id,
                col = temp_extreme),
            linewidth = 0.5)+
  scale_y_reverse()+
  scale_color_manual(values = HNL_colors)+
  labs(title = 'Atlantic, STSS biome, October 2017',
       col = 'OceanSODA SST\nextreme',
       x = 'Argo temperature (ºC)')

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
879821d ds2n19 2023-10-18
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
dfd75e9 pasqualina-vonlanthendinenna 2022-03-29
rm(profile_temp_Atl_2017, OceanSODA_temp_SO_extreme_grid_2017)

Atl, SPSS biome, Jul16

# Atlantic biome 2, 2016 month 7 

OceanSODA_temp_SO_extreme_grid_2016 <- OceanSODA_temp_SO_extreme_grid %>% 
  filter(date == '2016-07-15')  

map+
  geom_tile(data = OceanSODA_temp_SO_extreme_grid_2016,
            aes(x = lon,
                y = lat,
                fill = temp_extreme))+
  scale_fill_manual(values = HNL_colors_map)+
  lims(y = c(-85, -30)) +
  labs(title = 'July 2016',
       fill = 'OceanSODA SST \nextreme')

profile_temp_Atl_2016 <- profile_temp_extreme %>% 
  filter(date == '2016-07-15',
         basin_AIP == 'Atlantic',
         biome_name == 'SPSS') 

profile_temp_Atl_2016 %>% 
  ggplot(aes(x = temp,
             y = depth,
             group = file_id,
             col = temp_extreme))+
  geom_path(data = profile_temp_Atl_2016 %>% filter(temp_extreme == 'N'),
            aes(x = temp,
                y = depth, 
                group = file_id,
                col = temp_extreme),
            linewidth = 0.3)+
  geom_path(data = profile_temp_Atl_2016 %>% filter(temp_extreme == 'H'|temp_extreme == 'L'),
            aes(x = temp,
                y = depth, 
                group = file_id,
                col = temp_extreme),
            linewidth = 0.5)+
  scale_y_reverse()+
  scale_color_manual(values = HNL_colors)+
  labs(title = 'Atlantic, SPSS biome, July 2016',
       col = 'OceanSODA SST\nextreme',
       x = 'Argo temperature (ºC)')

rm(profile_temp_Atl_2016, OceanSODA_temp_SO_extreme_grid_2016)

Averaged profiles

# cut depth levels at 10, 20, .... etc m
# add seasons 
# Dec, Jan, Feb <- summer 
# Mar, Apr, May <- autumn 
# Jun, Jul, Aug <- winter 
# Sep, Oct, Nov <- spring 

profile_temp_extreme <- profile_temp_extreme %>%
  # mutate(
  #   depth = Hmisc::cut2(
  #     depth,
  #     cuts = c(10, 20, 30, 50, 70, 100, 300, 500, 800, 1000, 1500, 2000, 2500),
  #     levels.mean = TRUE,
  #     digits = 3
  #   ),
  #   depth = as.numeric(as.character(depth))
  # ) %>%
  mutate(
    season = case_when(
      between(month, 3, 5) ~ 'autumn',
      between(month, 6, 8) ~ 'winter',
      between(month, 9, 11) ~ 'spring',
      month == 12 | 1 | 2 ~ 'summer'
    ),
    season_order = case_when(
      between(month, 3, 5) ~ 2,
      between(month, 6, 8) ~ 3,
      between(month, 9, 11) ~ 4,
      month == 12 | 1 | 2 ~ 1
    ),
    .after = date
  )

Overall mean

profile_temp_extreme_mean <- profile_temp_extreme %>%
  group_by(temp_extreme, depth) %>%
  summarise(temp_mean = mean(temp, na.rm = TRUE),
            temp_std = sd(temp, na.rm = TRUE)) %>%
  ungroup()

profile_temp_extreme_mean %>%
  arrange(depth) %>%
  ggplot(aes(y = depth)) +
  geom_ribbon(aes(xmin = temp_mean - temp_std,
                  xmax = temp_mean + temp_std,
                  fill = temp_extreme), 
              alpha = 0.2)+
  geom_path(aes(x = temp_mean,
                col = temp_extreme))+
  scale_color_manual(values = HNL_colors) +
  scale_fill_manual(values = HNL_colors)+
  labs(title = "Overall mean",
       col = 'OceanSODA\ntemp anomaly \n(mean ± st dev)',
       fill = 'OceanSODA\ntemp anomaly \n(mean ± st dev)',
       y = 'depth (m)',
       x = 'mean Argo temperature (ºC)') +
  scale_y_continuous(trans = trans_reverser("sqrt"),
                     breaks = c(10, 100, 250, 500, seq(1000, 5000, 500)))

Version Author Date
f9de50e ds2n19 2024-01-01
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
8173cdb jens-daniel-mueller 2022-03-28
650ef68 pasqualina-vonlanthendinenna 2022-03-18
e12a216 pasqualina-vonlanthendinenna 2022-03-15
1ffe07f pasqualina-vonlanthendinenna 2022-03-11
7540ae4 pasqualina-vonlanthendinenna 2022-03-08
5ef4df2 pasqualina-vonlanthendinenna 2022-03-01
8ef1277 pasqualina-vonlanthendinenna 2022-03-01
7d7874c pasqualina-vonlanthendinenna 2022-02-24
c68163a pasqualina-vonlanthendinenna 2022-02-22
19aa73d pasqualina-vonlanthendinenna 2022-02-16
f2fa56a pasqualina-vonlanthendinenna 2022-02-10
rm(profile_temp_extreme_mean)

Number of profiles

profile_temp_count_mean <- profile_temp_extreme %>% 
  distinct(temp_extreme, file_id) %>% 
  count(temp_extreme)

profile_temp_count_mean %>% 
  ggplot(aes(x = temp_extreme, y = n, fill = temp_extreme))+
  geom_col(width = 0.5)+
  scale_y_continuous(trans = 'log10')+
  labs(y = 'log(number of profiles)',
       title = 'Number of profiles')

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
8173cdb jens-daniel-mueller 2022-03-28
650ef68 pasqualina-vonlanthendinenna 2022-03-18
e12a216 pasqualina-vonlanthendinenna 2022-03-15
1ffe07f pasqualina-vonlanthendinenna 2022-03-11
7540ae4 pasqualina-vonlanthendinenna 2022-03-08
5ef4df2 pasqualina-vonlanthendinenna 2022-03-01
8ef1277 pasqualina-vonlanthendinenna 2022-03-01
c68163a pasqualina-vonlanthendinenna 2022-02-22
19aa73d pasqualina-vonlanthendinenna 2022-02-16
f2fa56a pasqualina-vonlanthendinenna 2022-02-10
# rm(profile_temp_count_mean)

Surface Argo temperature vs surface OceanSODA temperature (20 m)

# calculate surface-mean argo SST, for each profile 
surface_temp_mean <- profile_temp_extreme %>% 
  filter(depth <= 20) %>% 
  group_by(temp_extreme, file_id) %>% 
  summarise(argo_surf_temp = mean(temp, na.rm = TRUE),
            OceanSODA_surf_temp = mean(OceanSODA_temp, na.rm = TRUE))

surface_temp_mean %>% 
  group_by(temp_extreme) %>%
  group_split() %>% 
  # head(1) %>%
  map(
  ~ggplot(data = .x, aes(x = OceanSODA_surf_temp, 
             y = argo_surf_temp))+
  geom_bin2d(data = .x, aes(x = OceanSODA_surf_temp, 
                 y = argo_surf_temp), size = 0.3, bins = 60) +
  scale_fill_viridis_c()+
  geom_abline(slope = 1, intercept = 0)+
  coord_fixed(ratio = 1,
              xlim = c(-3, 28),
              ylim = c(-3, 28))+
    labs(title = paste('temp extreme:', unique(.x$temp_extreme)),
         x = 'OceanSODA temp',
         y = 'Argo temp')
  )
[[1]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
8173cdb jens-daniel-mueller 2022-03-28
650ef68 pasqualina-vonlanthendinenna 2022-03-18
e12a216 pasqualina-vonlanthendinenna 2022-03-15
1ffe07f pasqualina-vonlanthendinenna 2022-03-11
7540ae4 pasqualina-vonlanthendinenna 2022-03-08
5ef4df2 pasqualina-vonlanthendinenna 2022-03-01
8ef1277 pasqualina-vonlanthendinenna 2022-03-01
fd521d1 pasqualina-vonlanthendinenna 2022-02-25
c68163a pasqualina-vonlanthendinenna 2022-02-22
19aa73d pasqualina-vonlanthendinenna 2022-02-16
f2fa56a pasqualina-vonlanthendinenna 2022-02-10

[[2]]

Version Author Date
f9de50e ds2n19 2024-01-01
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
8173cdb jens-daniel-mueller 2022-03-28
650ef68 pasqualina-vonlanthendinenna 2022-03-18
e12a216 pasqualina-vonlanthendinenna 2022-03-15
1ffe07f pasqualina-vonlanthendinenna 2022-03-11
7540ae4 pasqualina-vonlanthendinenna 2022-03-08
5ef4df2 pasqualina-vonlanthendinenna 2022-03-01
8ef1277 pasqualina-vonlanthendinenna 2022-03-01
fd521d1 pasqualina-vonlanthendinenna 2022-02-25
c68163a pasqualina-vonlanthendinenna 2022-02-22
19aa73d pasqualina-vonlanthendinenna 2022-02-16
f2fa56a pasqualina-vonlanthendinenna 2022-02-10

[[3]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
8173cdb jens-daniel-mueller 2022-03-28
650ef68 pasqualina-vonlanthendinenna 2022-03-18
e12a216 pasqualina-vonlanthendinenna 2022-03-15
1ffe07f pasqualina-vonlanthendinenna 2022-03-11
7540ae4 pasqualina-vonlanthendinenna 2022-03-08
5ef4df2 pasqualina-vonlanthendinenna 2022-03-01
8ef1277 pasqualina-vonlanthendinenna 2022-03-01
fd521d1 pasqualina-vonlanthendinenna 2022-02-25
c68163a pasqualina-vonlanthendinenna 2022-02-22
19aa73d pasqualina-vonlanthendinenna 2022-02-16
f2fa56a pasqualina-vonlanthendinenna 2022-02-10
rm(surface_temp_mean)

January overall mean profiles

profile_temp_extreme_mean_jan <- profile_temp_extreme %>%
  filter(month == 1) %>% 
  group_by(temp_extreme, depth) %>%
  summarise(temp_mean = mean(temp, na.rm = TRUE),
            temp_std = sd(temp, na.rm = TRUE)) %>%
  ungroup()

profile_temp_extreme_mean_jan %>%
  arrange(depth) %>%
  ggplot(aes(y = depth)) +
  geom_ribbon(aes(xmin = temp_mean - temp_std,
                  xmax = temp_mean + temp_std,
                  fill = temp_extreme), 
              alpha = 0.2)+
  geom_path(aes(x = temp_mean,
                col = temp_extreme))+
  scale_color_manual(values = HNL_colors) +
  scale_fill_manual(values = HNL_colors)+
  labs(title = "January mean",
       col = 'OceanSODA\ntemp anomaly \n(mean ± st dev)',
       fill = 'OceanSODA\ntemp anomaly \n(mean ± st dev)',
       y = 'depth (m)',
       x = 'mean Argo temperature (ºC)') +
  scale_y_continuous(trans = trans_reverser("sqrt"),
                     breaks = c(10, 100, 250, 500, seq(1000, 5000, 500)))

rm(profile_temp_extreme_mean_jan)

Season x Mayot biome

profile_temp_extreme_biome <- profile_temp_extreme %>% 
  group_by(season_order, season, biome_name, temp_extreme, depth) %>% 
  summarise(temp_biome = mean(temp, na.rm = TRUE),
            temp_std_biome = sd(temp, na.rm = TRUE)) %>% 
  ungroup()
  
facet_label <- as_labeller(c("1"="summer", 
                             "2"="autumn", 
                             "3"="winter", 
                             "4"="spring", 
                             "ICE" = "ICE", 
                             "SPSS" = "SPSS",
                             "STSS" = "STSS",
                             "Atlantic" = "Atlantic",
                             "Indian" = "Indian",
                             "Pacific" = "Pacific"
                             ))

profile_temp_extreme_biome %>%
  ggplot(aes(
    x = temp_biome,
    y = depth,
    group = temp_extreme,
    col = temp_extreme
  )) +
  geom_ribbon(aes(xmax = temp_biome + temp_std_biome,
                  xmin = temp_biome - temp_std_biome,
                  group = temp_extreme,
                  fill = temp_extreme),
              col = NA, 
              alpha = 0.2)+
  geom_path() +
  scale_color_manual(values = HNL_colors) +
  scale_fill_manual(values = HNL_colors)+
  labs(col = 'OceanSODA\ntemp anomaly \n(mean ± st dev)',
       fill = 'OceanSODA\ntemp anomaly \n(mean ± st dev)',
       y = 'depth (m)',
       x = 'biome mean Argo temperature (ºC)') +
  scale_y_continuous(trans = trans_reverser("sqrt"),
                     breaks = c(10, 100, 250, 500, seq(1000, 5000, 500))) +
  lims(x = c(-3, 18))+
  facet_grid(season_order ~ biome_name, labeller = facet_label)

Version Author Date
f9de50e ds2n19 2024-01-01
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
rm(profile_temp_extreme_biome)

Number of profiles per season per Mayot biome

profile_temp_count_biome <- profile_temp_extreme %>% 
  distinct(season_order, season, biome_name, temp_extreme, file_id) %>%
  group_by(season_order, season, biome_name, temp_extreme) %>% 
  count(temp_extreme)

profile_temp_count_biome %>% 
  ggplot(aes(x = temp_extreme, y = n, fill = temp_extreme))+
  geom_col(width = 0.5)+
  facet_grid(season_order ~ biome_name, labeller = facet_label)+
  scale_y_continuous(trans = 'log10')+
  labs(y = 'log(number of profiles)',
       title = 'Number of profiles season x Mayot biome')

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
# rm(profile_temp_count_biome)

Surface Argo temp vs surface OceanSODA temp season x Mayot biome (20 m)

surface_temp_biome <- profile_temp_extreme %>% 
  filter(depth <= 20) %>% 
  group_by(season_order, season, biome_name, temp_extreme, file_id) %>% 
  summarise(argo_surf_temp = mean(temp, na.rm=TRUE),
            OceanSODA_surf_temp = mean(OceanSODA_temp, na.rm = TRUE))

surface_temp_biome %>% 
  group_by(temp_extreme) %>% 
  group_split(temp_extreme) %>% 
  map(
  ~ggplot(data = .x, aes(x = OceanSODA_surf_temp, 
             y = argo_surf_temp))+
  geom_bin2d(data = .x, aes(x = OceanSODA_surf_temp, 
                 y = argo_surf_temp)) +
  scale_fill_viridis_c()+
  geom_abline(slope = 1, intercept = 0)+
  coord_fixed(ratio = 1, 
              xlim = c(-3, 25),
              ylim = c(-3, 25))+
  facet_grid(season_order~biome_name, labeller = facet_label) +
    labs(title = paste( 'Temp extreme:', unique(.x$temp_extreme)),
         x = 'OceanSODA temp',
         y = 'Argo temp')
  )
[[1]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31

[[2]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31

[[3]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
rm(surface_temp_biome)

Season x basin

profile_temp_extreme_basin <- profile_temp_extreme %>% 
  group_by(season_order, season, basin_AIP, temp_extreme, depth) %>% 
  summarise(temp_basin = mean(temp, na.rm = TRUE),
            temp_basin_std = sd(temp, na.rm = TRUE)) %>% 
  ungroup()

profile_temp_extreme_basin %>% 
  ggplot(aes(x = temp_basin, 
             y = depth, 
             group = temp_extreme, 
             col = temp_extreme))+
  geom_ribbon(aes(xmin = temp_basin - temp_basin_std,
                  xmax = temp_basin + temp_basin_std,
                  group = temp_extreme, 
                  fill = temp_extreme),
              col = NA, 
              alpha = 0.2)+
  geom_path()+
  scale_color_manual(values = HNL_colors)+
  scale_fill_manual(values = HNL_colors)+
  labs(col = 'OceanSODA\ntemp anomaly\n(mean ± st dev)',
       fill = 'OceanSODA\ntemp anomaly\n(mean ± st dev)',
       y = 'depth (m)',
       x = 'basin-mean Argo temperature (ªC)')+
  scale_y_continuous(trans = trans_reverser("sqrt"),
                     breaks = c(10, 100, 250, 500, seq(1000, 5000, 500))) +
  facet_grid(season_order~basin_AIP, labeller = facet_label)

Version Author Date
f9de50e ds2n19 2024-01-01
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
8173cdb jens-daniel-mueller 2022-03-28
650ef68 pasqualina-vonlanthendinenna 2022-03-18
e12a216 pasqualina-vonlanthendinenna 2022-03-15
1ffe07f pasqualina-vonlanthendinenna 2022-03-11
7540ae4 pasqualina-vonlanthendinenna 2022-03-08
5ef4df2 pasqualina-vonlanthendinenna 2022-03-01
8ef1277 pasqualina-vonlanthendinenna 2022-03-01
7d7874c pasqualina-vonlanthendinenna 2022-02-24
c68163a pasqualina-vonlanthendinenna 2022-02-22
19aa73d pasqualina-vonlanthendinenna 2022-02-16
f2fa56a pasqualina-vonlanthendinenna 2022-02-10
rm(profile_temp_extreme_basin)

Number of profiles season x basin

profile_temp_count_basin <- profile_temp_extreme %>% 
  distinct(season_order, season, basin_AIP, temp_extreme, file_id) %>% 
  group_by(season_order, season, basin_AIP, temp_extreme) %>% 
  count(temp_extreme)

profile_temp_count_basin %>% 
  ggplot(aes(x = temp_extreme, y = n, fill = temp_extreme))+
  geom_col(width = 0.5)+
  facet_grid(season_order~basin_AIP, labeller = facet_label)+
  scale_y_continuous(trans = 'log10')+
  labs(y = 'log(number of profiles)',
       title = 'Number of profiles season x basin')

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
8173cdb jens-daniel-mueller 2022-03-28
650ef68 pasqualina-vonlanthendinenna 2022-03-18
e12a216 pasqualina-vonlanthendinenna 2022-03-15
1ffe07f pasqualina-vonlanthendinenna 2022-03-11
7540ae4 pasqualina-vonlanthendinenna 2022-03-08
5ef4df2 pasqualina-vonlanthendinenna 2022-03-01
8ef1277 pasqualina-vonlanthendinenna 2022-03-01
c68163a pasqualina-vonlanthendinenna 2022-02-22
19aa73d pasqualina-vonlanthendinenna 2022-02-16
f2fa56a pasqualina-vonlanthendinenna 2022-02-10
# rm(profile_temp_count_basin)

Surface Argo temperature vs surface OceanSODA temperature (20 m) season x basin

# calculate surface-mean argo temp to compare against OceanSODA surface temp (one value)
surface_temp_basin <- profile_temp_extreme %>% 
  filter(depth <= 20) %>% 
  group_by(season_order, season, basin_AIP, temp_extreme, file_id) %>% 
  summarise(surf_argo_temp = mean(temp, na.rm=TRUE),
            surf_OceanSODA_temp = mean(OceanSODA_temp, na.rm = TRUE)) 

surface_temp_basin %>% 
  group_by(temp_extreme) %>% 
  group_split(temp_extreme) %>% 
  map(
  ~ggplot(data = .x, aes(x = surf_OceanSODA_temp, 
             y = surf_argo_temp))+
  geom_bin2d(data = .x, aes(x = surf_OceanSODA_temp, 
                 y = surf_argo_temp)) +
    scale_fill_viridis_c()+
  geom_abline(slope = 1, intercept = 0)+
  coord_fixed(ratio = 1, 
              xlim = c(-3, 25),
              ylim = c(-3, 25))+
  facet_grid(season_order~basin_AIP, labeller = facet_label) +
    labs(title = paste('Temp extreme:', unique(.x$temp_extreme)),
         x = 'OceanSODA temp',
         y = 'Argo temp')
  )
[[1]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
8173cdb jens-daniel-mueller 2022-03-28
650ef68 pasqualina-vonlanthendinenna 2022-03-18
e12a216 pasqualina-vonlanthendinenna 2022-03-15
1ffe07f pasqualina-vonlanthendinenna 2022-03-11
7540ae4 pasqualina-vonlanthendinenna 2022-03-08
5ef4df2 pasqualina-vonlanthendinenna 2022-03-01
8ef1277 pasqualina-vonlanthendinenna 2022-03-01
fd521d1 pasqualina-vonlanthendinenna 2022-02-25
c68163a pasqualina-vonlanthendinenna 2022-02-22
19aa73d pasqualina-vonlanthendinenna 2022-02-16
f2fa56a pasqualina-vonlanthendinenna 2022-02-10

[[2]]

Version Author Date
f9de50e ds2n19 2024-01-01
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
8173cdb jens-daniel-mueller 2022-03-28
650ef68 pasqualina-vonlanthendinenna 2022-03-18
e12a216 pasqualina-vonlanthendinenna 2022-03-15
1ffe07f pasqualina-vonlanthendinenna 2022-03-11
7540ae4 pasqualina-vonlanthendinenna 2022-03-08
5ef4df2 pasqualina-vonlanthendinenna 2022-03-01
8ef1277 pasqualina-vonlanthendinenna 2022-03-01
fd521d1 pasqualina-vonlanthendinenna 2022-02-25
c68163a pasqualina-vonlanthendinenna 2022-02-22
19aa73d pasqualina-vonlanthendinenna 2022-02-16
f2fa56a pasqualina-vonlanthendinenna 2022-02-10

[[3]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
8173cdb jens-daniel-mueller 2022-03-28
650ef68 pasqualina-vonlanthendinenna 2022-03-18
e12a216 pasqualina-vonlanthendinenna 2022-03-15
1ffe07f pasqualina-vonlanthendinenna 2022-03-11
7540ae4 pasqualina-vonlanthendinenna 2022-03-08
5ef4df2 pasqualina-vonlanthendinenna 2022-03-01
8ef1277 pasqualina-vonlanthendinenna 2022-03-01
fd521d1 pasqualina-vonlanthendinenna 2022-02-25
c68163a pasqualina-vonlanthendinenna 2022-02-22
19aa73d pasqualina-vonlanthendinenna 2022-02-16
f2fa56a pasqualina-vonlanthendinenna 2022-02-10
rm(surface_temp_basin)

Season x Mayot biome x Basin

profile_temp_extreme_season <- profile_temp_extreme %>%
  group_by(season_order, season, biome_name, basin_AIP, temp_extreme, depth) %>%
  summarise(temp_mean = mean(temp, na.rm = TRUE),
            temp_std = sd(temp, na.rm = TRUE)) %>%
  ungroup()

profile_temp_extreme_season %>%
  arrange(depth) %>%
  group_split(season_order) %>%
  # head(1) %>%
  map(
    ~ ggplot(
      data = .x,
      aes(x = temp_mean,
          y = depth,
          group = temp_extreme,
          col = temp_extreme)) +
      geom_ribbon(aes(xmax = temp_mean + temp_std,
                      xmin = temp_mean - temp_std,
                      group = temp_extreme,
                      fill = temp_extreme),
                  col = NA,
                  alpha = 0.2)+
      geom_path() +
      scale_color_manual(values = HNL_colors) +
      scale_fill_manual(values = HNL_colors) +
      labs(title = paste("season:", unique(.x$season)),
           col = 'OceanSODA\ntemp anomaly \n(mean ± st dev)',
           fill = 'OceanSODA\ntemp anomaly \n(mean ± st dev)',
           y = 'depth (m)',
           x = 'mean Argo temperature (ºC)') +
      scale_y_continuous(
        trans = trans_reverser("sqrt"),
        breaks = c(10, 100, 250, 500, seq(1000, 5000, 500))
      ) +
      facet_grid(basin_AIP ~ biome_name)
  )
[[1]]

Version Author Date
f9de50e ds2n19 2024-01-01
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31

[[2]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31

[[3]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31

[[4]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31

Number of profiles season x Mayot biome x basin

profile_temp_count_season <- profile_temp_extreme %>% 
  distinct(season_order, season, biome_name, basin_AIP,
           temp_extreme, file_id) %>% 
  group_by(season_order, season, biome_name, basin_AIP, temp_extreme) %>% 
  count(temp_extreme)


profile_temp_count_season %>% 
  group_by(season_order) %>% 
  group_split(season_order) %>% 
  map(
    ~ggplot()+
      geom_col(data =.x, 
               aes(x = temp_extreme,
                   y = n,
                   fill = temp_extreme),
               width = 0.5)+
      facet_grid(basin_AIP ~ biome_name)+
      scale_y_continuous(trans = 'log10')+
      labs(y = 'log(number of profiles)',
           title = paste('season:', unique(.x$season)))
  )
[[1]]

Version Author Date
f9de50e ds2n19 2024-01-01
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05

[[2]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05

[[3]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05

[[4]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
# rm(profile_temp_count_season)

Surface Argo temperature vs surface OceanSODA temperature (20m) in each season, Mayot biome, basin

# calculate surface-mean argo temp, for each season x biome x basin x temp extreme 
surface_temp_season <- profile_temp_extreme %>% 
  filter(depth <= 20) %>% 
  group_by(season_order, 
           season, 
           basin_AIP, 
           biome_name, 
           temp_extreme,  
           file_id) %>%  
  summarise(surf_argo_temp = mean(temp, na.rm=TRUE),
            surf_OceanSODA_temp = mean(OceanSODA_temp, na.rm = TRUE)) 

surface_temp_season %>% 
  group_by(season_order, temp_extreme) %>% 
  group_split(season_order, temp_extreme) %>% 
  map(
  ~ggplot(data = .x, aes(x = surf_OceanSODA_temp, 
             y = surf_argo_temp))+
  geom_bin2d(data = .x, aes(x = surf_OceanSODA_temp, 
                 y = surf_argo_temp)) +
  scale_fill_viridis_c()+
  geom_abline(slope = 1, intercept = 0)+
  coord_fixed(ratio = 1, 
              xlim = c(-3, 25),
              ylim = c(-3, 25))+
  facet_grid(basin_AIP ~ biome_name) +
    labs(title = paste('season:', unique(.x$season), 
                        '| temp extreme:', unique(.x$temp_extreme)),
         x = 'OceanSODA temp',
         y = 'Argo temp')
  )
[[1]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05

[[2]]

Version Author Date
f9de50e ds2n19 2024-01-01
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05

[[3]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05

[[4]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05

[[5]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05

[[6]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05

[[7]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05

[[8]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05

[[9]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05

[[10]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05

[[11]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05

[[12]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
rm(surface_temp_season)

Atlantic, SPSS biome, winter

profile_temp_extreme_season %>%
  filter(basin_AIP == 'Atlantic',
         biome_name == 'SPSS',
         season == 'winter') %>% 
  arrange(depth) %>%
  ggplot(aes(x = temp_mean,
             y = depth,
             group = temp_extreme,
             col = temp_extreme)) +
  geom_ribbon(aes(xmax = temp_mean + temp_std,
                  xmin = temp_mean - temp_std,
                  group = temp_extreme,
                  fill = temp_extreme),
              col = NA,
              alpha = 0.2)+
  geom_path() +
  scale_color_manual(values = HNL_colors) +
  scale_fill_manual(values = HNL_colors) +
  labs(title = 'Atlantic basin, SPSS biome, winter',
       col = 'OceanSODA\ntemp anomaly \n(mean ± st dev)',
       fill = 'OceanSODA\ntemp anomaly \n(mean ± st dev)',
       y = 'depth (m)',
       x = 'mean Argo temperature (ºC)') +
  scale_y_continuous(
  trans = trans_reverser("sqrt"),
  breaks = c(10, 100, 250, 500, seq(1000, 5000, 500))) 

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
a2271df pasqualina-vonlanthendinenna 2022-03-30
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
8173cdb jens-daniel-mueller 2022-03-28
650ef68 pasqualina-vonlanthendinenna 2022-03-18
e12a216 pasqualina-vonlanthendinenna 2022-03-15
1ffe07f pasqualina-vonlanthendinenna 2022-03-11
7540ae4 pasqualina-vonlanthendinenna 2022-03-08
e4188d2 pasqualina-vonlanthendinenna 2022-03-01
5ef4df2 pasqualina-vonlanthendinenna 2022-03-01

Atlantic, STSS biome, spring

profile_temp_extreme_season %>%
  filter(basin_AIP == 'Atlantic',
         biome_name == 'STSS',
         season == 'spring') %>% 
  arrange(depth) %>%
  ggplot(aes(x = temp_mean,
             y = depth,
             group = temp_extreme,
             col = temp_extreme)) +
  geom_ribbon(aes(xmax = temp_mean + temp_std,
                  xmin = temp_mean - temp_std,
                  group = temp_extreme,
                  fill = temp_extreme),
              col = NA,
              alpha = 0.2)+
  geom_path() +
  scale_color_manual(values = HNL_colors) +
  scale_fill_manual(values = HNL_colors) +
  labs(title = 'Atlantic basin, STSS biome, spring',
       col = 'OceanSODA\ntemp anomaly \n(mean ± st dev)',
       fill = 'OceanSODA\ntemp anomaly \n(mean ± st dev)',
       y = 'depth (m)',
       x = 'mean Argo temperature (ºC)') +
  scale_y_continuous(
  trans = trans_reverser("sqrt"),
  breaks = c(10, 100, 250, 500, seq(1000, 5000, 500))) 

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
a2271df pasqualina-vonlanthendinenna 2022-03-30
8173cdb jens-daniel-mueller 2022-03-28
650ef68 pasqualina-vonlanthendinenna 2022-03-18
rm(profile_temp_extreme_season)

Mayot biome - basin January mean profiles

profile_temp_extreme_biome_basin_jan <- profile_temp_extreme %>%
  filter(month == 1) %>% 
  group_by(biome_name, basin_AIP, temp_extreme, depth) %>%
  summarise(temp_mean = mean(temp, na.rm = TRUE),
            temp_std = sd(temp, na.rm = TRUE)) %>%
  ungroup()

profile_temp_extreme_biome_basin_jan %>%
  arrange(depth) %>%
  ggplot(aes(x = temp_mean,
             y = depth)) +
  geom_ribbon(aes(xmin = temp_mean - temp_std,
                  xmax = temp_mean + temp_std,
                  fill = temp_extreme), 
              alpha = 0.2)+
  geom_path(aes(x = temp_mean,
                col = temp_extreme))+
  facet_grid(basin_AIP~biome_name)+
  scale_color_manual(values = HNL_colors) +
  scale_fill_manual(values = HNL_colors)+
  labs(title = "Basin-Mayot biome-mean January profiles",
       col = 'OceanSODA\ntemp anomaly \n(mean ± st dev)',
       fill = 'OceanSODA\ntemp anomaly \n(mean ± st dev)',
       y = 'depth (m)',
       x = 'mean Argo temperature (ºC)') +
  scale_y_continuous(trans = trans_reverser("sqrt"),
                     breaks = c(10, 100, 250, 500, seq(1000, 5000, 500)))

Remove climatology

Plot the H/L/N profiles as anomalies relative to the CSIO-MNR Argo temperature climatology

Argo profiles

# profile_temp_extreme_binned <- profile_temp_extreme %>%
#   group_by(lon, lat, year, month, file_id,
#            biome_name, basin_AIP, temp_extreme,
#            depth) %>%
#   summarize(temp_adjusted_binned = mean(temp_adjusted, na.rm = TRUE)) %>%
#   ungroup()

ARGO climatology

# boa_temp_clim <- read_rds(file = paste0(path_argo_preprocessed, '/boa_temp_clim.rds'))
# 
# # compatibility with profile_temp_extreme_jan
# boa_temp_clim_SO <- boa_temp_clim %>% 
#   filter(lat <= -30) %>% 
#   mutate(depth_boa = depth)
# 
# # grid average climatological temp into the argo depth bins 
# boa_temp_clim_SO <- boa_temp_clim_SO %>%
#   mutate(
#     depth = cut(
#       depth_boa,
#       breaks = c(0, 10, 20, 30, 50, 70, 100, 300, 500, 800, 1000, 1500, 2000),
#       include.lowest = TRUE,
#       labels = as.factor(unique(profile_temp_extreme$depth))[1:12]
#     ),
#     depth = as.numeric(as.character(depth))
#   )


# calculate mean climatological pH per depth bin
# boa_temp_clim_SO_binned <- boa_temp_clim_SO %>% 
#   group_by(lon, lat, depth, month) %>% 
#   summarise(clim_temp_binned = mean(clim_temp, na.rm = TRUE)) %>%
#   ungroup()
# 
# 
# # join climatology and ARGO profiles
# 
# remove_clim <- inner_join(profile_temp_extreme_binned,
#                               boa_temp_clim_SO_binned)

remove_clim <-
  read_rds(file = paste0(path_argo_preprocessed, "/temp_anomaly_va.rds")) %>%
  filter(profile_range >= opt_min_profile_range) %>%
  mutate(date = ymd(format(date, "%Y-%m-15")))

remove_clim <- inner_join(
  remove_clim %>%
    select(
      file_id, 
      year, 
      month, 
      date, 
      lon, 
      lat, 
      depth, 
      temp,
      clim_temp,
      anomaly
      ),
  OceanSODA_temp_SO_extreme_grid %>%
    select(
      year,
      month,
      date,
      lon,
      lat,
      OceanSODA_temp,
      temp_extreme,
      biome_name,
      basin_AIP
    )
)

remove_clim <- remove_clim %>%
  mutate(
    season = case_when(
      between(month, 3, 5) ~ 'autumn',
      between(month, 6, 8) ~ 'winter',
      between(month, 9, 11) ~ 'spring',
      month == 12 | 1 | 2 ~ 'summer'
    ),
    season_order = case_when(
      between(month, 3, 5) ~ 2,
      between(month, 6, 8) ~ 3,
      between(month, 9, 11) ~ 4,
      month == 12 | 1 | 2 ~ 1
    ),
    .after = date
  ) 

Profiles

Points are the climatological temperature, lines are the depth-binned Argo profiles colored by H/N/L classification

Absolute

remove_clim %>%
  group_split(biome_name, basin_AIP, year) %>%
  head(6) %>%
  map(
    ~ ggplot() +
      geom_path(
        data = .x %>%
          filter(temp_extreme == 'N'),
        aes(
          x = temp,
          y = depth,
          group = file_id,
          col = temp_extreme
        ),
        size = 0.3
      ) +
      geom_path(
        data = .x %>%
          filter(temp_extreme == 'H' | temp_extreme == 'L'),
        aes(
          x = temp,
          y = depth,
          group = file_id,
          col = temp_extreme
        ),
        size = 0.5
      ) +
      geom_point(
        data = .x,
        aes(x = clim_temp,
            y = depth,
            col = temp_extreme),
        size = 0.5
      ) +
      scale_y_reverse() +
      scale_color_manual(values = HNL_colors) +
      labs(
        x = 'Argo temperature (ºC)',
        y = 'depth (m)',
        title = paste(
          "Biome:",
          unique(.x$biome_name),
          "| basin:",
          unique(.x$basin_AIP),
          " | ",
          unique(.x$year)
        ),
        col = 'OceanSODA temp \nanomaly'
      )
  )
[[1]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
e61c08e pasqualina-vonlanthendinenna 2022-04-27
f5f6b3f pasqualina-vonlanthendinenna 2022-04-14
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
749e005 jens-daniel-mueller 2022-03-28
8173cdb jens-daniel-mueller 2022-03-28
7f5c5c6 pasqualina-vonlanthendinenna 2022-03-25
d9caaae pasqualina-vonlanthendinenna 2022-03-22

[[2]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
e61c08e pasqualina-vonlanthendinenna 2022-04-27
f5f6b3f pasqualina-vonlanthendinenna 2022-04-14
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
749e005 jens-daniel-mueller 2022-03-28
8173cdb jens-daniel-mueller 2022-03-28
7f5c5c6 pasqualina-vonlanthendinenna 2022-03-25
d9caaae pasqualina-vonlanthendinenna 2022-03-22

[[3]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
e61c08e pasqualina-vonlanthendinenna 2022-04-27
f5f6b3f pasqualina-vonlanthendinenna 2022-04-14
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
749e005 jens-daniel-mueller 2022-03-28
8173cdb jens-daniel-mueller 2022-03-28
7f5c5c6 pasqualina-vonlanthendinenna 2022-03-25
d9caaae pasqualina-vonlanthendinenna 2022-03-22

[[4]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
e61c08e pasqualina-vonlanthendinenna 2022-04-27
f5f6b3f pasqualina-vonlanthendinenna 2022-04-14
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
749e005 jens-daniel-mueller 2022-03-28
8173cdb jens-daniel-mueller 2022-03-28
7f5c5c6 pasqualina-vonlanthendinenna 2022-03-25
d9caaae pasqualina-vonlanthendinenna 2022-03-22

[[5]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
e61c08e pasqualina-vonlanthendinenna 2022-04-27
f5f6b3f pasqualina-vonlanthendinenna 2022-04-14
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
749e005 jens-daniel-mueller 2022-03-28
8173cdb jens-daniel-mueller 2022-03-28
7f5c5c6 pasqualina-vonlanthendinenna 2022-03-25
d9caaae pasqualina-vonlanthendinenna 2022-03-22

[[6]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
e61c08e pasqualina-vonlanthendinenna 2022-04-27
f5f6b3f pasqualina-vonlanthendinenna 2022-04-14
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
749e005 jens-daniel-mueller 2022-03-28
8173cdb jens-daniel-mueller 2022-03-28
7f5c5c6 pasqualina-vonlanthendinenna 2022-03-25
d9caaae pasqualina-vonlanthendinenna 2022-03-22
# calculate the difference between the binned climatological argo and in-situ argo for each depth level and grid cell 

# remove_clim <- remove_clim %>% 
#   mutate(argo_temp_anomaly = temp_adjusted_binned - clim_temp_binned,
#           season = case_when(
#                 between(month, 3, 5) ~ 'autumn',
#                 between(month, 6, 8) ~ 'winter',
#                 between(month, 9, 11) ~ 'spring',
#                 month == 12 | 1 | 2 ~ 'summer'),
#           season_order = case_when(
#                 between(month, 3, 5) ~ 2,
#                 between(month, 6, 8) ~ 3,
#                 between(month, 9, 11) ~ 4,
#                 month == 12 | 1 | 2 ~ 1
#           )
#          )

Anomaly

remove_clim %>% 
  group_split(month) %>% 
  #head(6) %>% 
  map(
    ~ggplot()+
      geom_path(data = .x %>% filter(temp_extreme == 'N'),
                aes(x = anomaly,
                    y = depth,
                    group = file_id,
                    col = temp_extreme),
                size = 0.2)+
      geom_path(data = .x %>% filter(temp_extreme == 'H'| temp_extreme == 'L'),
                 aes(x = anomaly,
                     y = depth,
                     group = file_id,
                     col = temp_extreme),
                 size = 0.3)+
      geom_vline(xintercept = 0)+
      scale_y_continuous(trans = trans_reverser("sqrt"),
                         breaks = c(10, 100, 250, 500, seq(1000, 5000, 500)))+
      scale_color_manual(values = HNL_colors)+
      scale_fill_manual(values = HNL_colors)+
      facet_grid(basin_AIP~biome_name)+
      labs(title = paste0('month: ', unique(.x$month)))
  )
[[1]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
7b3d8c5 pasqualina-vonlanthendinenna 2022-08-29

[[2]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
7b3d8c5 pasqualina-vonlanthendinenna 2022-08-29

[[3]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
7b3d8c5 pasqualina-vonlanthendinenna 2022-08-29

[[4]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
7b3d8c5 pasqualina-vonlanthendinenna 2022-08-29

[[5]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
7b3d8c5 pasqualina-vonlanthendinenna 2022-08-29

[[6]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
7b3d8c5 pasqualina-vonlanthendinenna 2022-08-29

[[7]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
7b3d8c5 pasqualina-vonlanthendinenna 2022-08-29

[[8]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
7b3d8c5 pasqualina-vonlanthendinenna 2022-08-29

[[9]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
7b3d8c5 pasqualina-vonlanthendinenna 2022-08-29

[[10]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
7b3d8c5 pasqualina-vonlanthendinenna 2022-08-29

[[11]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
7b3d8c5 pasqualina-vonlanthendinenna 2022-08-29

[[12]]

Version Author Date
f9de50e ds2n19 2024-01-01
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
7b3d8c5 pasqualina-vonlanthendinenna 2022-08-29

Overall mean anomaly

remove_clim_overall_mean <- remove_clim %>% 
  group_by(temp_extreme, depth) %>% 
  summarise(temp_anomaly_mean = mean(anomaly, na.rm = TRUE),
            temp_anomaly_sd = sd(anomaly, na.rm = TRUE))

remove_clim_overall_mean %>% 
  ggplot()+
  geom_path(aes(x = temp_anomaly_mean,
                y = depth,
                group = temp_extreme,
                col = temp_extreme))+
  geom_ribbon(aes(xmax = temp_anomaly_mean + temp_anomaly_sd,
                  xmin = temp_anomaly_mean - temp_anomaly_sd,
                  y = depth,
                  group = temp_extreme,
                  fill = temp_extreme),
              col = NA,
              alpha = 0.2)+
  geom_vline(xintercept = 0)+
  scale_y_continuous(trans = trans_reverser("sqrt"),
                     breaks = c(10, 100, 250, 500, seq(1000, 5000, 500)))+
  scale_color_manual(values = HNL_colors)+
  scale_fill_manual(values = HNL_colors)+
  geom_text(data = profile_temp_count_mean[2,],
          aes(x = -4.0, 
              y = 1200, 
              label = paste0(n), 
              col = temp_extreme),
          size = 6)+
  geom_text(data = profile_temp_count_mean[1,],
          aes(x = -4.0, 
              y = 1400, 
              label = paste0(n), 
              col = temp_extreme),
          size = 6)+
  geom_text(data = profile_temp_count_mean[3,],
          aes(x = -4.0, 
              y = 1600, 
              label = paste0(n), 
              col = temp_extreme),
          size = 6)+
  coord_cartesian(xlim = c(-4.5, 4.5))+
  scale_x_continuous(breaks = c(-4, -2, 0, 2, 4))+
  labs(title = 'Overall mean anomaly profiles')

Version Author Date
f9de50e ds2n19 2024-01-01
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
708f923 pasqualina-vonlanthendinenna 2022-05-04
e61c08e pasqualina-vonlanthendinenna 2022-04-27
f5f6b3f pasqualina-vonlanthendinenna 2022-04-14
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
a2271df pasqualina-vonlanthendinenna 2022-03-30
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
749e005 jens-daniel-mueller 2022-03-28
8173cdb jens-daniel-mueller 2022-03-28
7f5c5c6 pasqualina-vonlanthendinenna 2022-03-25
d9caaae pasqualina-vonlanthendinenna 2022-03-22
rm(remove_clim_overall_mean, profile_temp_count_mean)

Biome x season mean anomaly

remove_clim_biome_mean <- remove_clim %>% 
  group_by(temp_extreme, depth, season_order, season, biome_name) %>% 
  summarise(temp_anomaly_mean = mean(anomaly, na.rm = TRUE),
            temp_anomaly_sd = sd(anomaly, na.rm = TRUE))

remove_clim_biome_mean %>% 
  ggplot(aes(x = temp_anomaly_mean,
                y = depth,
                group = temp_extreme,
                col = temp_extreme))+
  geom_path()+
  geom_ribbon(aes(xmax = temp_anomaly_mean + temp_anomaly_sd,
                  xmin = temp_anomaly_mean - temp_anomaly_sd,
                  group = temp_extreme,
                  fill = temp_extreme),
              col = NA,
              alpha = 0.2)+
  geom_vline(xintercept = 0)+
  scale_y_continuous(trans = trans_reverser("sqrt"),
                     breaks = c(10, 100, 250, 500, seq(1000, 5000, 500)))+
  scale_fill_manual(values = HNL_colors)+
  scale_color_manual(values = HNL_colors)+
  labs(title = 'Biome-mean anomaly profiles')+
  geom_text(data = profile_temp_count_biome %>% filter (temp_extreme == 'N'),
                  aes(x = -4,
                      y = 800,
                      label = paste0(n),
                      col = temp_extreme),
                  size = 4)+
  geom_text(data = profile_temp_count_biome %>% filter (temp_extreme == 'H'),
                  aes(x = -4,
                      y = 1200,
                      label = paste0(n),
                      col = temp_extreme),
                  size = 4)+
  geom_text(data = profile_temp_count_biome %>% filter (temp_extreme == 'L'),
                  aes(x = -4,
                      y = 1600,
                      label = paste0(n),
                      col = temp_extreme),
                  size = 4)+
  coord_cartesian(xlim = c(-4.5, 4.5))+
  scale_x_continuous(breaks = c(-4, -2, 0, 2, 4))+
  facet_grid(season_order~biome_name, labeller = facet_label)

Version Author Date
f9de50e ds2n19 2024-01-01
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
6572988 pasqualina-vonlanthendinenna 2022-05-04
708f923 pasqualina-vonlanthendinenna 2022-05-04
e61c08e pasqualina-vonlanthendinenna 2022-04-27
f5f6b3f pasqualina-vonlanthendinenna 2022-04-14
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
a2271df pasqualina-vonlanthendinenna 2022-03-30
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
749e005 jens-daniel-mueller 2022-03-28
8173cdb jens-daniel-mueller 2022-03-28
7f5c5c6 pasqualina-vonlanthendinenna 2022-03-25
d9caaae pasqualina-vonlanthendinenna 2022-03-22
rm(remove_clim_biome_mean, profile_temp_count_biome)

Basin x season mean anomaly

remove_clim_basin_mean <- remove_clim %>% 
  group_by(basin_AIP, temp_extreme, depth, season_order, season) %>% 
  summarise(temp_anomaly_mean = mean(anomaly, na.rm = TRUE),
            temp_anomaly_sd = sd(anomaly, na.rm = TRUE))

remove_clim_basin_mean %>% 
  ggplot(aes(x = temp_anomaly_mean,
             y = depth, 
             group = temp_extreme,
             col = temp_extreme))+
  geom_path()+
  geom_ribbon(aes(xmax = temp_anomaly_mean + temp_anomaly_sd,
                  xmin = temp_anomaly_mean - temp_anomaly_sd,
                  group = temp_extreme,
                  fill = temp_extreme),
              col = NA,
              alpha = 0.2)+
  geom_vline(xintercept = 0)+
  facet_grid(season~basin_AIP)+
  scale_y_continuous(trans = trans_reverser("sqrt"),
                     breaks = c(10, 100, 250, 500, seq(1000, 5000, 500)))+
  scale_color_manual(values = HNL_colors)+
  scale_fill_manual(values = HNL_colors)+
  # geom_text_repel(data = profile_temp_count_basin,
  #                 aes(x = 2,
  #                     y = 1500,
  #                     label = paste0(n),
  #                     col = temp_extreme),
  #                 size = 4,
  #                 segment.color = 'transparent')+
  geom_text(data = profile_temp_count_basin %>% filter (temp_extreme == 'N'),
                  aes(x = -4,
                      y = 800,
                      label = paste0(n),
                      col = temp_extreme),
                  size = 4)+
  geom_text(data = profile_temp_count_basin %>% filter (temp_extreme == 'H'),
                  aes(x = -4,
                      y = 1200,
                      label = paste0(n),
                      col = temp_extreme),
                  size = 4)+
  geom_text(data = profile_temp_count_basin %>% filter (temp_extreme == 'L'),
                  aes(x = -4,
                      y = 1600,
                      label = paste0(n),
                      col = temp_extreme),
                  size = 4)+
  coord_cartesian(xlim = c(-4.5, 4.5))+
  scale_x_continuous(breaks = c(-4, -2, 0, 2, 4))+
  labs(title = 'Basin-mean anomaly profiles')

Version Author Date
f9de50e ds2n19 2024-01-01
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
708f923 pasqualina-vonlanthendinenna 2022-05-04
e61c08e pasqualina-vonlanthendinenna 2022-04-27
f5f6b3f pasqualina-vonlanthendinenna 2022-04-14
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
a2271df pasqualina-vonlanthendinenna 2022-03-30
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
749e005 jens-daniel-mueller 2022-03-28
8173cdb jens-daniel-mueller 2022-03-28
7f5c5c6 pasqualina-vonlanthendinenna 2022-03-25
d9caaae pasqualina-vonlanthendinenna 2022-03-22
rm(remove_clim_basin_mean, profile_temp_count_basin)

Basin x biome x season mean anomaly

remove_clim_basin_biome_mean <- remove_clim %>% 
  group_by(basin_AIP, biome_name, temp_extreme, season_order, season, depth) %>% 
  summarise(temp_anomaly_mean = mean(anomaly, na.rm = TRUE),
            temp_anomaly_sd = sd(anomaly, na.rm = TRUE))

remove_clim_basin_biome_mean %>% 
  group_by(season_order) %>% 
  group_split(season_order) %>% 
  map(
    ~ggplot(data = .x, 
            aes(x = temp_anomaly_mean,
                y = depth,
                group = temp_extreme,
                col = temp_extreme))+
      geom_path()+
      geom_ribbon(data = .x,
                  aes(xmax = temp_anomaly_mean + temp_anomaly_sd,
                  xmin = temp_anomaly_mean - temp_anomaly_sd,
                  group = temp_extreme,
                  fill = temp_extreme),
              col = NA,
              alpha = 0.2)+
      geom_vline(xintercept = 0)+
      facet_grid(basin_AIP~biome_name)+
      scale_y_continuous(trans = trans_reverser("sqrt"),
                         breaks = c(10, 100, 250, 500, seq(1000, 5000, 500)))+
      scale_color_manual(values = HNL_colors)+
      scale_fill_manual(values = HNL_colors)+
      # geom_text_repel(data = profile_temp_count_season,
      #                 aes(x = 1,
      #                     y = 1400,
      #                     label = paste0(n),
      #                     col = temp_extreme,
      #                     group = temp_extreme),
      #                 size = 4,
      #                 segment.color = 'transparent')+
      geom_text(data = profile_temp_count_season %>% filter (temp_extreme == 'N' & season == unique(.x$season)),
                      aes(x = -4,
                          y = 800,
                          label = paste0(n),
                          col = temp_extreme),
                      size = 4)+
      geom_text(data = profile_temp_count_season %>% filter (temp_extreme == 'H' & season == unique(.x$season)),
                      aes(x = -4,
                          y = 1200,
                          label = paste0(n),
                          col = temp_extreme),
                      size = 4)+
      geom_text(data = profile_temp_count_season %>% filter (temp_extreme == 'L' & season == unique(.x$season)),
                      aes(x = -4,
                          y = 1600,
                          label = paste0(n),
                          col = temp_extreme),
                      size = 4)+
      coord_cartesian(xlim = c(-4.5, 4.5))+
      scale_x_continuous(breaks = c(-4, -2, 0, 2, 4))+
      labs(title = paste0('biome-basin mean anomaly profiles ', unique(.x$season)))
    )
[[1]]

Version Author Date
f9de50e ds2n19 2024-01-01
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
e61c08e pasqualina-vonlanthendinenna 2022-04-27
f5f6b3f pasqualina-vonlanthendinenna 2022-04-14
9875dd0 pasqualina-vonlanthendinenna 2022-04-05
48573c4 pasqualina-vonlanthendinenna 2022-03-31
eb8e3be pasqualina-vonlanthendinenna 2022-03-31
a2271df pasqualina-vonlanthendinenna 2022-03-30
cbb2360 jens-daniel-mueller 2022-03-28
fa1b6de jens-daniel-mueller 2022-03-28
749e005 jens-daniel-mueller 2022-03-28

[[2]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
15c1d68 ds2n19 2023-10-19
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
e61c08e pasqualina-vonlanthendinenna 2022-04-27
f5f6b3f pasqualina-vonlanthendinenna 2022-04-14

[[3]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
e61c08e pasqualina-vonlanthendinenna 2022-04-27
f5f6b3f pasqualina-vonlanthendinenna 2022-04-14

[[4]]

Version Author Date
cf5dd20 ds2n19 2023-12-04
cec2a2a ds2n19 2023-11-24
2f4ea7e ds2n19 2023-10-19
879821d ds2n19 2023-10-18
7004f76 ds2n19 2023-10-17
4b55c43 ds2n19 2023-10-12
1ae81b3 ds2n19 2023-10-11
44f5720 ds2n19 2023-10-09
b917bd0 jens-daniel-mueller 2022-05-11
e61c08e pasqualina-vonlanthendinenna 2022-04-27
f5f6b3f pasqualina-vonlanthendinenna 2022-04-14
rm(remove_clim_basin_biome_mean, profile_temp_count_season)

Argo (BGC-temperature irrespective of pH)

all_profile_temp_extreme <- inner_join(
  argo_temp %>% 
    select(c(year, month, date, lon, lat, depth,
           temp_adjusted,
           file_id)),                 # 567 327 obs 
  OceanSODA_temp_SO_extreme_grid %>% 
    select(c(year, month, date, lon, lat,
           OceanSODA_temp, temp_extreme,
           clim_temp, clim_diff,
           basin_AIP, biome_name)))

all_profile_temp_extreme <- profile_temp_extreme %>% 
  unite('platform_cycle', platform_number:cycle_number, sep = '_', remove = FALSE)

Location of all BGC-temp profiles (regardless of pH)

OceanSODA_temp_SO_extreme_grid %>%
  group_split(month) %>%
  # head(1) %>%
  map(
    ~ map +
      geom_tile(
        data = .x,
        aes(x = lon,
            y = lat,
            fill = temp_extreme),
        alpha = 0.5
      ) +
      scale_fill_manual(values = HNL_colors_map) +
      new_scale_fill() +
      geom_tile(
        data = all_profile_temp_extreme %>%
          distinct(lon, lat, platform_cycle, year, month),
        aes(
          x = lon,
          y = lat,
          fill = 'argo\nprofiles',
          height = 1,
          width = 1
        ),
        alpha = 0.5
      ) +
      scale_fill_manual(values = "springgreen4",
                        name = "") +
      facet_wrap(~ year, ncol = 1) +
      lims(y = c(-85, -30)) +
      labs(title = paste('month:', unique(.x$month))
      )
  )

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] ggnewscale_0.4.8  ggrepel_0.9.2     oce_1.7-10        gsw_1.1-1        
 [5] ggforce_0.4.1     metR_0.13.0       scico_1.3.1       ggOceanMaps_1.3.4
 [9] ggspatial_1.1.7   broom_1.0.5       lubridate_1.9.0   timechange_0.1.1 
[13] forcats_0.5.2     stringr_1.5.0     dplyr_1.1.3       purrr_1.0.2      
[17] readr_2.1.3       tidyr_1.3.0       tibble_3.2.1      ggplot2_3.4.4    
[21] tidyverse_1.3.2  

loaded via a namespace (and not attached):
 [1] googledrive_2.0.0   colorspace_2.0-3    ellipsis_0.3.2     
 [4] class_7.3-20        rprojroot_2.0.3     fs_1.5.2           
 [7] rstudioapi_0.15.0   proxy_0.4-27        farver_2.1.1       
[10] bit64_4.0.5         fansi_1.0.3         xml2_1.3.3         
[13] codetools_0.2-18    cachem_1.0.6        knitr_1.41         
[16] polyclip_1.10-4     jsonlite_1.8.3      workflowr_1.7.0    
[19] dbplyr_2.2.1        rgeos_0.5-9         compiler_4.2.2     
[22] httr_1.4.4          backports_1.4.1     assertthat_0.2.1   
[25] fastmap_1.1.0       gargle_1.2.1        cli_3.6.1          
[28] later_1.3.0         tweenr_2.0.2        htmltools_0.5.8.1  
[31] tools_4.2.2         gtable_0.3.1        glue_1.6.2         
[34] Rcpp_1.0.10         cellranger_1.1.0    jquerylib_0.1.4    
[37] raster_3.6-11       vctrs_0.6.4         xfun_0.35          
[40] rvest_1.0.3         lifecycle_1.0.3     googlesheets4_1.0.1
[43] terra_1.7-65        MASS_7.3-58.1       scales_1.2.1       
[46] vroom_1.6.0         hms_1.1.2           promises_1.2.0.1   
[49] parallel_4.2.2      RColorBrewer_1.1-3  yaml_2.3.6         
[52] memoise_2.0.1       sass_0.4.4          stringi_1.7.8      
[55] highr_0.9           e1071_1.7-12        checkmate_2.1.0    
[58] rlang_1.1.1         pkgconfig_2.0.3     evaluate_0.18      
[61] lattice_0.20-45     sf_1.0-9            labeling_0.4.2     
[64] bit_4.0.5           tidyselect_1.2.0    magrittr_2.0.3     
[67] R6_2.5.1            generics_0.1.3      DBI_1.2.2          
[70] pillar_1.9.0        haven_2.5.1         whisker_0.4        
[73] withr_2.5.0         units_0.8-0         sp_1.5-1           
[76] modelr_0.1.10       crayon_1.5.2        KernSmooth_2.23-20 
[79] utf8_1.2.2          tzdb_0.3.0          rmarkdown_2.18     
[82] grid_4.2.2          readxl_1.4.1        data.table_1.14.6  
[85] git2r_0.30.1        reprex_2.0.2        digest_0.6.30      
[88] classInt_0.4-8      httpuv_1.6.6        munsell_0.5.0      
[91] viridisLite_0.4.1   bslib_0.4.1