Revision 76807d3b
Added by Benoit Parmentier almost 11 years ago
climate/research/oregon/interpolation/global_run_scalingup_assessment_part1.R | ||
---|---|---|
5 | 5 |
#Analyses, figures, tables and data are also produced in the script. |
6 | 6 |
#AUTHOR: Benoit Parmentier |
7 | 7 |
#CREATED ON: 03/23/2014 |
8 |
#MODIFIED ON: 05/01/2014
|
|
9 |
#Version: 2
|
|
8 |
#MODIFIED ON: 05/02/2014
|
|
9 |
#Version: 3
|
|
10 | 10 |
#PROJECT: Environmental Layers project |
11 | 11 |
################################################################################################# |
12 | 12 |
|
... | ... | |
645 | 645 |
names(robj1$validation_mod_day_obj[[1]]$data_s) # daily for January with predictions |
646 | 646 |
dim(robj1$validation_mod_month_obj[[1]]$data_s) # daily for January with predictions |
647 | 647 |
|
648 |
#data_day_s_list <- lapply(1:length(list_raster_obj_files),x=list_raster_obj_files, |
|
649 |
# FUN=function(i,x){x<-load_obj(x[[i]]); |
|
650 |
# _ extract_from_list_obj(x$validation_mod_month_obj,"data_s")}) |
|
651 |
|
|
652 | 648 |
use_day=TRUE |
653 | 649 |
use_month=TRUE |
654 | 650 |
|
... | ... | |
662 | 658 |
pred_data_month_info <- do.call(rbind,lapply(pred_data_info,function(x){x$pred_data_month_info})) |
663 | 659 |
pred_data_day_info <- do.call(rbind,lapply(pred_data_info,function(x){x$pred_data_day_info})) |
664 | 660 |
|
665 |
|
|
666 |
extract_daily_training_testing_info<- function(i,list_param){ |
|
667 |
#This function extracts training and testing information from the raster object produced for each tile |
|
668 |
#This is looping through tiles... |
|
669 |
|
|
670 |
### Function: |
|
671 |
pred_data_info_fun <- function(k,list_data,pred_mod,sampling_dat_info){ |
|
672 |
|
|
673 |
data <- list_data[[k]] |
|
674 |
sampling_dat <- sampling_dat_info[[k]] |
|
675 |
if(data_day!="try-error"){ |
|
676 |
n <- nrow(data) |
|
677 |
n_mod <- vector("numeric",length(pred_mod)) |
|
678 |
for(j in 1:length(pred_mod)){ |
|
679 |
n_mod[j] <- sum(!is.na(data[[pred_mod[j]]])) |
|
680 |
} |
|
681 |
n <- rep(n,length(pred_mod)) |
|
682 |
sampling_dat <- sampling_dat[rep(seq_len(nrow(sampling_dat)), each=length(pred_mod)),] |
|
683 |
row.names(sampling_dat) <- NULL |
|
684 |
df_n <- data.frame(n,n_mod,pred_mod) |
|
685 |
df_n <- cbind(df_n,sampling_dat) |
|
686 |
}else{ |
|
687 |
n <- rep(NA,length(pred_mod)) |
|
688 |
n_mod <- vector("numeric",length(pred_mod)) |
|
689 |
n_mod <- rep(NA,length(pred_mod)) |
|
690 |
df_n <- data.frame(n,n_mod,pred_mod) |
|
691 |
sampling_dat <- sampling_dat[rep(seq_len(nrow(sampling_dat)), each=length(pred_mod)),] |
|
692 |
row.names(sampling_dat) <- NULL |
|
693 |
df_n <- data.frame(n,n_mod,pred_mod) |
|
694 |
df_n <- cbind(df_n,sampling_dat) |
|
695 |
|
|
696 |
} |
|
697 |
return(df_n) |
|
698 |
} |
|
699 |
|
|
700 |
##### Parse parameters and arguments #### |
|
701 |
|
|
702 |
raster_obj_file <- list_param$list_raster_obj_files[i] |
|
703 |
use_month <- list_param$use_month |
|
704 |
use_day <- list_param$use_day |
|
705 |
tile_id <- list_param$list_names_tile_id[i] |
|
706 |
|
|
707 |
### Start script ## |
|
708 |
|
|
709 |
raster_obj <- load_obj(unlist(raster_obj_file)) #may not need unlist |
|
710 |
nb_models <- length((raster_obj$clim_method_mod_obj[[1]]$formulas)) |
|
711 |
pred_mod <- paste("mod",c(1:nb_models,"_kr"),sep="") |
|
712 |
#we are assuming no monthly hold out... |
|
713 |
#we are assuming only one specific daily prop? |
|
714 |
nb_models <- length(pred_mod) |
|
715 |
#names(raster_obj$method_mod_obj[[1]]) |
|
716 |
var_interp <- unique(raster_obj$tb_diagnostic_s$var_interp) |
|
717 |
method_interp <- unique(raster_obj$tb_diagnostic_s$method_interp) |
|
718 |
|
|
719 |
if(use_day==TRUE){ |
|
720 |
|
|
721 |
list_data_day_v <- try(extract_list_from_list_obj(raster_obj$validation_mod_obj,"data_v")) |
|
722 |
list_data_day_s <- try(extract_list_from_list_obj(raster_obj$validation_mod_obj,"data_s")) |
|
723 |
sampling_dat_day <- extract_list_from_list_obj(raster_obj$method_mod_obj,"daily_dev_sampling_dat") |
|
724 |
list_pred_data_day_s_info <- lapply(1:length(sampling_dat_day),FUN=pred_data_info_fun, |
|
725 |
list_data=list_data_day_s,pred_mod=pred_mod,sampling_dat_info=sampling_dat_day) |
|
726 |
list_pred_data_day_v_info <- lapply(1:length(sampling_dat_day),FUN=pred_data_info_fun, |
|
727 |
list_data=list_data_day_v,pred_mod=pred_mod,sampling_dat_info=sampling_dat_day) |
|
728 |
pred_data_day_s_info <- do.call(rbind,list_pred_data_day_s_info) |
|
729 |
pred_data_day_v_info <- do.call(rbind,list_pred_data_day_v_info) |
|
730 |
pred_data_day_s_info$training <- rep(1,nrow(pred_data_day_s_info)) |
|
731 |
pred_data_day_v_info$training <- rep(0,nrow(pred_data_day_v_info)) |
|
732 |
pred_data_day_info <-rbind(pred_data_day_v_info,pred_data_day_s_info) |
|
733 |
|
|
734 |
pred_data_day_info$method_interp <- rep(method_interp,nrow(pred_data_day_info)) |
|
735 |
pred_data_day_info$var_interp <- rep(var_interp,nrow(pred_data_day_info)) |
|
736 |
pred_data_day_info$tile_id <- rep(tile_id,nrow(pred_data_day_info)) |
|
737 |
|
|
738 |
#pred_data_day_s_info$method_interp <- rep(method_interp,nrow(pred_data_day_s_info)) |
|
739 |
#pred_data_day_s_info$var_interp <- rep(var_interp,nrow(pred_data_day_s_info)) |
|
740 |
#pred_data_day_s_info$tile_id <- rep(tile_id,nrow(pred_data_day_s_info)) |
|
741 |
#pred_data_day_v_info <- do.call(rbind,list_pred_data_day_v_info) |
|
742 |
#pred_data_day_v_info$method_interp <- rep(method_interp,nrow(pred_data_day_v_info)) |
|
743 |
#pred_data_day_v_info$var_interp <- rep(var_interp,nrow(pred_data_day_v_info)) |
|
744 |
#pred_data_day_v_info$tile_id <- rep(tile_id,nrow(pred_data_day_v_info)) |
|
745 |
|
|
746 |
} |
|
747 |
if(use_month==TRUE){ |
|
748 |
|
|
749 |
list_data_month_s <- try(extract_list_from_list_obj(raster_obj$validation_mod_month_obj,"data_s")) |
|
750 |
list_data_month_v <- try(extract_list_from_list_obj(raster_obj$validation_mod_month_obj,"data_v")) |
|
751 |
sampling_dat_month <- extract_list_from_list_obj(raster_obj$clim_method_mod_obj,"sampling_month_dat") |
|
752 |
list_pred_data_month_s_info <- lapply(1:length(sampling_dat_month),FUN=pred_data_info_fun, |
|
753 |
list_data=list_data_month_s,pred_mod=pred_mod,sampling_dat_info=sampling_dat_month) |
|
754 |
list_pred_data_month_v_info <- lapply(1:length(sampling_dat_month),FUN=pred_data_info_fun, |
|
755 |
list_data=list_data_month_v,pred_mod=pred_mod,sampling_dat_info=sampling_dat_month) |
|
756 |
|
|
757 |
#combine training and testing later? also combined with accuracy |
|
758 |
pred_data_month_s_info <- do.call(rbind,list_pred_data_month_s_info) |
|
759 |
pred_data_month_v_info <- do.call(rbind,list_pred_data_month_v_info) |
|
760 |
|
|
761 |
pred_data_month_v_info$training <- rep(0,nrow(pred_data_month_v_info)) |
|
762 |
pred_data_month_s_info$training <- rep(1,nrow(pred_data_month_v_info)) |
|
763 |
pred_data_month_info <- rbind(pred_data_month_v_info,pred_data_month_s_info) |
|
764 |
|
|
765 |
pred_data_month_info$method_interp <- rep(method_interp,nrow(pred_data_month_info)) |
|
766 |
pred_data_month_info$var_interp <- rep(var_interp,nrow(pred_data_month_info)) |
|
767 |
pred_data_month_info$tile_id <- rep(tile_id,nrow(pred_data_month_info)) |
|
768 |
|
|
769 |
#pred_data_month_s_info$method_interp <- rep(method_interp,nrow(pred_data_month_s_info)) |
|
770 |
#pred_data_month_s_info$var_interp <- rep(var_interp,nrow(pred_data_month_s_info)) |
|
771 |
#pred_data_month_s_info$tile_id <- rep(tile_id,nrow(pred_data_month_s_info)) |
|
772 |
#pred_data_month_v_info$method_interp <- rep(method_interp,nrow(pred_data_month_v_info)) |
|
773 |
#pred_data_month_v_info$var_interp <- rep(var_interp,nrow(pred_data_month_v_info)) |
|
774 |
#pred_data_month_v_info$tile_id <- rep(tile_id,nrow(pred_data_month_v_info)) |
|
775 |
|
|
776 |
} |
|
777 |
|
|
778 |
if(use_month==FALSE){ |
|
779 |
pred_data_month_info <- NULL |
|
780 |
} |
|
781 |
if(use_day==FALSE){ |
|
782 |
pred_data_day_info <- NULL |
|
783 |
} |
|
784 |
|
|
785 |
#prepare object to return |
|
786 |
pred_data_info_obj <- list(pred_data_month_info,pred_data_day_info) |
|
787 |
names(pred_data_info_obj) <- c("pred_data_month_info","pred_data_day_info") |
|
788 |
#could add data.frame data_s and data_v later... |
|
789 |
|
|
790 |
return(pred_data_info_obj) |
|
791 |
} |
|
661 |
##################### END OF SCRIPT ###################### |
Also available in: Unified diff
assessing sclaling up North America runs, clean up