Project

General

Profile

« Previous | Next » 

Revision 76807d3b

Added by Benoit Parmentier almost 11 years ago

assessing sclaling up North America runs, clean up

View differences:

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