diff --git a/modules/Indices/R/plot_deterministic_forecast.R b/modules/Indices/R/plot_deterministic_forecast.R index da107e4732ec027f60729b7520a8d4264787a1a0..30f13b78db1654bcb35fa7a86b6f4ad93d7c6393 100644 --- a/modules/Indices/R/plot_deterministic_forecast.R +++ b/modules/Indices/R/plot_deterministic_forecast.R @@ -16,8 +16,13 @@ plot_deterministic_forecast <- function(obs, fcst, title = NULL, n_fcst <- as.numeric(dim(fcst)[time_dim]) if (is.null(ylims)) { - ylims <- c(-max(abs(fcst) + 0.1, abs(obs) + 0.1, na.rm = TRUE), - max(abs(fcst) + 0.1, abs(obs) + 0.1, na.rm = TRUE)) + if (all(is.na(fcst)) && all(is.na(obs))) { + # No data, return random ylims + ylims <- c(-1, 1) + } else { + ylims <- c(-max(abs(fcst) + 0.1, abs(obs) + 0.1, na.rm = TRUE), + max(abs(fcst) + 0.1, abs(obs) + 0.1, na.rm = TRUE)) + } } if (is.null(xlabs)) { xlabs <- 1:n_fcst diff --git a/modules/Visualization/R/tmp/PlotRobinson.R b/modules/Visualization/R/tmp/PlotRobinson.R index d8210258275d481c9e2724e0e860281fc2e6e048..bd427448fad9bdc9482c3e13b161f05e2fd6c1a7 100644 --- a/modules/Visualization/R/tmp/PlotRobinson.R +++ b/modules/Visualization/R/tmp/PlotRobinson.R @@ -251,7 +251,26 @@ PlotRobinson <- function(data, lon, lat, lon_dim = NULL, lat_dim = NULL, # Color bar ## Check: brks, cols, bar_limits, color_fun, bar_extra_margin, units ## Build: brks, cols, bar_limits, col_inf, col_sup - var_limits <- c(min(data, na.rm = TRUE), max(data, na.rm = TRUE)) + if (!all(is.na(data))) { + var_limits <- c(min(data[!is.infinite(data)], na.rm = TRUE), + max(data[!is.infinite(data)], na.rm = TRUE)) + } else { + warning("All the data are NAs. The map will be filled with colNA.") + if (!is.null(brks) && length(brks) > 1) { + #NOTE: var_limits be like this to avoid warnings from ColorBar + var_limits <- c(min(brks, na.rm = TRUE) + diff(brks)[1], + max(brks, na.rm = TRUE)) + } else if (!is.null(bar_limits)) { + var_limits <- c(bar_limits[1] + 0.01, bar_limits[2]) + } else { + var_limits <- c(-0.5, 0.5) # random range since colorbar is not going to be plotted + if (!is.null(legend)) { + legend <- NULL + warning("All data are NAs. Color bar won't be drawn. If you want to have ", + "color bar still, define parameter 'brks' or 'bar_limits'.") + } + } + } colorbar <- ColorBar(brks = brks, cols = cols, vertical = vertical, subsampleg = NULL, bar_limits = bar_limits, var_limits = var_limits, triangle_ends = triangle_ends, col_inf = col_inf, col_sup = col_sup, color_fun = color_fun, @@ -317,12 +336,12 @@ PlotRobinson <- function(data, lon, lat, lon_dim = NULL, lat_dim = NULL, # Add triangles to brks brks_ggplot <- brks - if (max(data, na.rm = T) > tail(brks, 1)) { + if (var_limits[2] > tail(brks, 1)) { brks_ggplot <- c(brks_ggplot, max(data, na.rm = T)) } else { brks_ggplot <- c(brks_ggplot, tail(brks, 1) + diff(tail(brks, 2))) } - if (min(data, na.rm = T) < brks[1]) { + if (var_limits[1] < brks[1]) { brks_ggplot <- c(min(data, na.rm = T), brks_ggplot) } else { brks_ggplot <- c(brks[1] - diff(brks[1:2]), brks_ggplot)