Project

General

Profile

« Previous | Next » 

Revision 4d70d57b

Added by Benoit Parmentier about 8 years ago

D
generate_raster_number_of_prediction_by_day

View differences:

climate/research/oregon/interpolation/global_product_assessment_part0_functions.R
9 9
#
10 10
#AUTHOR: Benoit Parmentier 
11 11
#CREATED ON: 10/31/2016  
12
#MODIFIED ON: 11/04/2016            
12
#MODIFIED ON: 11/15/2016            
13 13
#Version: 1
14 14
#PROJECT: Environmental Layers project     
15 15
#COMMENTS: removing unused functions and clean up for part0 global prodduct assessment part0 
......
137 137
  month_str <- format(list_dates_produced_date_val, "%b") ## Month, char, abbreviated
138 138
  year_str <- format(list_dates_produced_date_val, "%Y") ## Year with century
139 139
  day_str <- as.numeric(format(list_dates_produced_date_val, "%d")) ## numeric month
140
  df_files <- data.frame(lf = basename(lf),
140
  df_files <- data.frame(lf =lf,
141 141
                         date = list_dates_produced_date_val,
142 142
                         month_str = month_str,
143 143
                         year = year_str,
......
242 242
  return(raster_name)
243 243
}
244 244

  
245
generate_raster_number_of_prediction_by_day <- function(i,list_param){
246
  
247
  ##This function generates raster of missing pixels and number of predictions for days with missing tiles for a given region.
248
  #INPUTS
249
  #1) list_tiles_predicted_masked 
250
  #2) df_missing_tiles_day     
251
  #3) r_overlap_m 
252
  #4) num_cores
253
  #5) region_name 
254
  #6) NA_flag_val 
255
  #7) out_suffix 
256
  #8) out_dir 
257
    
258
    
259
  ###### Start script #####
260
    
261
  #### read in paramters    
262
  list_tiles_predicted_masked <- list_param$list_tiles_predicted_masked
263
  df_missing_tiles_day <- list_param$df_missing_tiles_day    
264
  r_overlap_m <- list_param$r_overlap_m
265
  num_cores <- list_param$num_cores # 6 #PARAM 14
266
  region_name <- list_param$region_name #<- "world" #PARAM 15
267
  NA_flag_val <-list_param$NA_flag_val
268
  out_suffix  <- list_param$out_suffix
269
  out_dir  <- list_param$out_dir
270
    
271
  ### To add or explore later...could have differences between predictions and rmse
272
  layers_option <- c("var_pred") #arg 17 ,param 17, options are:#res_training, res_testing,ac_training, ac_testing, var_pred
273
  NA_value <- NA_flag_val 
274
  #metric_name <- "rmse" #to be added to the code later...
275

  
276
  ##### Select relevant day and create stack of missing tiles
277
    
278
  missing_tiles <- df_missing_tiles_day[i,]
279
  date_str <- missing_tiles$date
280
  selected_col <- names(list_tiles_predicted_masked)
281
  missing_tiles_subset <- subset(missing_tiles,select=selected_col)
282
  selected_missing <- missing_tiles_subset==1
283

  
284
  list_missing_tiles_raster <- list_tiles_predicted_masked[selected_missing]
285
  r_tiles_s <- stack(list_missing_tiles_raster)
286
    
287
  ##### Sum missing tiles in the stack and generate number of predictions by pixels
288
    
289
  datasum <- stackApply(r_tiles_s, 1:nlayers(r_tiles_s), fun = sum)
290
     
291
  ### then substract missing tiles...
292
  r_day_predicted <- r_overlap_m - datasum
293
  raster_name_number_prediction <- file.path(out_dir_str,paste("r_day_number_of_prediction_sum_day_mosaiced","_",region_name,"_masked_",date_str,file_format,sep=""))
294
  writeRaster(r_day_predicted, NAflag=NA_flag_val,filename=raster_name_number_prediction,overwrite=TRUE)  
295

  
296
  r_table <- ratify(r_day_predicted) # build the Raster Attibute table
297
  rat <- levels(r_table)[[1]]#get the values of the unique cell frot the attribute table
298
  #rat$legend <- paste0("tile_",1:26)
299
  tb_freq <- as.data.frame(freq(r_table))
300
  rat$legend <- tb_freq$value
301
  levels(r_table) <- rat
302

  
303
  res_pix <- 800
304
  #res_pix <- 480
305
  col_mfrow <- 1
306
  row_mfrow <- 1
307
  
308
  png_filename <-  file.path(out_dir,paste("Figure_number_of_predictionds_by_pixel_",date_str,"_",region_name,"_",out_suffix,".png",sep =""))
309
    
310
  title_str <-  paste("Number of predicted pixels for ",variable_name," on ",date_str, sep = "")
311
  
312
  png(filename=png_filename,width = col_mfrow * res_pix,height = row_mfrow * res_pix)
313
  #my_col=c('blue','red','green')
314
  my_col <- rainbow(length(tb_freq$value))
315
  plot(r_table,col=my_col,legend=F,box=F,axes=F,main=title_str)
316
  legend(x='topright', legend =rat$legend,fill = my_col,cex=0.8)
317
  
318
  dev.off()
319

  
320
  ### Day missing reclass above
321
    
322
  ## do this in gdalcalc or overlay function to go faster?
323
  r_missing_day <- r_day_predicted == 0
324
    
325
  res_pix <- 800
326
  #res_pix <- 480
327
  col_mfrow <- 1
328
  row_mfrow <- 1
329
  
330
  png_filename <-  file.path(out_dir,paste("Figure_missing_predictionds_by_pixel_",date_str,"_",region_name,"_",out_suffix,".png",sep =""))
331
    
332
  title_str <-  paste("Number of predicted pixels for ",variable_name," on ",date_str, sep = "")
333
  
334
  png(filename=png_filename,width = col_mfrow * res_pix,height = row_mfrow * res_pix)
335
  #my_col=c('blue','red','green')
336
  my_col <- c("black","red")
337
  plot(r_missing_day,col=my_col,legend=F,box=F,axes=F,main=title_str)
338
  legend(x='topright', legend =c("prediced","missing"),fill = my_col,cex=0.8)
339
  
340
  dev.off()
341

  
342
  ### writeout data
343
  #extension_str <- extension(lf_files)
344
  #raster_name_tmp <- gsub(extension_str,"",basename(lf_files))
345
  #out_suffix_str <- paste0(region_name,"_",out_suffix)
346
  raster_name_missing <- file.path(out_dir_str,paste("r_missing_day_mosaiced","_",region_name,"_masked_",date_str,file_format,sep=""))
347
  writeRaster(r_missing_day, NAflag=NA_flag_val,filename=raster_name_missing,overwrite=TRUE)  
348
    
349
  ### generate return object
350
  obj_number_day_predicted <- list(raster_name_number_prediction,raster_name_missing)
351
  names(obj_number_day_predicted) <- c("raster_name_number_prediction","raster_name_missing")
352
    
353
  return(r_day_predicted)
354
}
355

  
356

  
357

  
245 358
############################ END OF SCRIPT ##################################

Also available in: Unified diff