2323# ' @param dimPCoA numeric. number of dimensions of PCoA
2424# ' @param progressbar boolean. set true for progress bar during clustering
2525# ' @param filetype character. driver for output diversity raster data
26+ # ' @param moving_window boolean. should diversity be computed on moving window?
2627# '
2728# ' @return Kmeans_info and Beta_info
2829# ' @export
@@ -36,7 +37,8 @@ biodivMapR_full <- function(input_raster_path, output_dir, window_size,
3637 Hill_order = 1 , FDmetric = NULL , pcelim = 0.02 ,
3738 nbCPU = 1 , nb_iter = 10 , min_sun = 0.25 ,
3839 nb_samples_alpha = 1e5 , dimPCoA = 3 ,
39- progressbar = TRUE , filetype = ' GTiff' ){
40+ progressbar = TRUE , filetype = ' GTiff' ,
41+ moving_window = FALSE ){
4042
4143 dir.create(output_dir , showWarnings = FALSE , recursive = TRUE )
4244 # read input rasters
@@ -80,28 +82,67 @@ biodivMapR_full <- function(input_raster_path, output_dir, window_size,
8082 # input_rasters <- list('main' = input_raster_path,
8183 # 'mask' = input_mask_path)
8284 options(fundiversity.memoise = FALSE )
83- ab_div_metrics <- get_raster_diversity(input_raster_path = input_raster_path ,
84- input_mask_path = input_mask_path ,
85- Kmeans_info = Kmeans_info ,
86- Beta_info = Beta_info ,
87- selected_bands = selected_bands ,
88- window_size = window_size ,
89- alphametrics = alphametrics ,
90- Hill_order = Hill_order ,
91- FDmetric = FDmetric ,
92- pcelim = pcelim ,
93- maxRows = maxRows , nbCPU = nbCPU ,
94- min_sun = min_sun )
9585
96- # save diversity metrics as raster data
97- save_diversity_maps(ab_div_metrics = ab_div_metrics ,
98- alphametrics = alphametrics ,
99- Hill_order = Hill_order ,
100- FDmetric = FDmetric ,
101- input_rast = input_rast ,
102- output_dir = output_dir ,
103- window_size = window_size ,
104- filetype = filetype )
105- return (list (' Kmeans_info' = Kmeans_info ,
86+ if (! moving_window ){
87+ message(' compute raster diversity using moving window' )
88+ message(' please set "moving_window = FALSE" if this takes too much time' )
89+ ab_div_metrics <- get_raster_diversity(input_raster_path = input_raster_path ,
90+ input_mask_path = input_mask_path ,
91+ Kmeans_info = Kmeans_info ,
92+ Beta_info = Beta_info ,
93+ selected_bands = selected_bands ,
94+ window_size = window_size ,
95+ alphametrics = alphametrics ,
96+ Hill_order = Hill_order ,
97+ FDmetric = FDmetric ,
98+ pcelim = pcelim ,
99+ maxRows = maxRows , nbCPU = nbCPU ,
100+ min_sun = min_sun )
101+
102+ # save diversity metrics as raster data
103+ diversity_maps <- save_diversity_maps(ab_div_metrics = ab_div_metrics ,
104+ alphametrics = alphametrics ,
105+ Hill_order = Hill_order ,
106+ FDmetric = FDmetric ,
107+ input_rast = input_rast ,
108+ output_dir = output_dir ,
109+ window_size = window_size ,
110+ filetype = filetype )
111+ }
112+
113+ if (moving_window ){
114+ ab_div_metrics <- get_raster_diversity_mw(input_raster_path = input_raster_path ,
115+ input_mask_path = input_mask_path ,
116+ Kmeans_info = Kmeans_info ,
117+ Beta_info = Beta_info ,
118+ selected_bands = selected_bands ,
119+ window_size = window_size ,
120+ alphametrics = alphametrics ,
121+ Hill_order = Hill_order ,
122+ FDmetric = FDmetric ,
123+ pcelim = pcelim ,
124+ maxRows = maxRows , nbCPU = nbCPU ,
125+ min_sun = min_sun )
126+
127+ betanames <- ' beta_mw'
128+ alphanames <- paste0(alphametrics ,' _mw' )
129+ functionalname <- NULL
130+ if (! is.null(FDmetric ))
131+ functionalname <- paste0(FDmetric ,' _mw' )
132+ output_raster_name <- as.list(c(betanames , alphanames , functionalname ))
133+ names(output_raster_name ) <- c(' beta' , alphametrics , FDmetric )
134+ diversity_maps <- save_diversity_maps_mw(input_raster_path = input_raster_path ,
135+ ab_div_metrics = ab_div_metrics ,
136+ alphametrics = alphametrics ,
137+ Hill_order = Hill_order ,
138+ FDmetric = FDmetric ,
139+ input_rast = input_rast ,
140+ output_dir = output_dir ,
141+ output_raster_name = output_raster_name ,
142+ window_size = window_size ,
143+ filetype = filetype )
144+ }
145+ return (list (' diversity_maps' = diversity_maps ,
146+ ' Kmeans_info' = Kmeans_info ,
106147 ' Beta_info' = Beta_info ))
107148}
0 commit comments