@@ -848,6 +848,7 @@ def _recursive_merging(gdirs, gdir_main, glcdf=None, dem_source=None,
848848@global_task (log )
849849def merge_gridded_data (gdirs , output_folder = None ,
850850 output_filename = 'gridded_data_merged' ,
851+ output_grid = None ,
851852 input_file = 'gridded_data' ,
852853 input_filesuffix = '' ,
853854 included_variables = 'all' ,
@@ -884,6 +885,10 @@ def merge_gridded_data(gdirs, output_folder=None,
884885 should be stored. Default is cfg.PATHS['working_dir']
885886 output_filename : str
886887 The name for the resulting file. Default is 'gridded_data_merged'.
888+ output_grid : salem.gis.Grid
889+ You can provide a custom grid on which the gridded data should be
890+ merged on. If None, a combined grid of all gdirs will be constructed.
891+ Default is None.
887892 input_file : str or list
888893 The file(s) which should be merged. If a list is provided the data of
889894 all files is merged into the same dataset. Default is 'gridded_data'.
@@ -970,9 +975,10 @@ def merge_gridded_data(gdirs, output_folder=None,
970975 # into a list of lists
971976 included_variables = [included_variables ]
972977
973- # create a combined salem.Grid object, which serves as canvas/boundaries of
974- # the combined glacier region
975- combined_grid = utils .combine_grids (gdirs )
978+ if output_grid is None :
979+ # create a combined salem.Grid object, which serves as canvas/boundaries of
980+ # the combined glacier region
981+ output_grid = utils .combine_grids (gdirs )
976982
977983 if add_topography :
978984 # ok, lets get a DEM and add it to the final file
@@ -982,11 +988,11 @@ def merge_gridded_data(gdirs, output_folder=None,
982988 else :
983989 dem_source = None
984990 dem_gdir = gdirs [0 ]
985- gis .get_dem_for_grid (combined_grid , output_folder ,
991+ gis .get_dem_for_grid (output_grid , output_folder ,
986992 source = dem_source , gdir = dem_gdir )
987993 # unwrapped is needed to execute process_dem without the entity_task
988994 # overhead (this would need a valid gdir)
989- gis .process_dem .unwrapped (gdir = None , grid = combined_grid ,
995+ gis .process_dem .unwrapped (gdir = None , grid = output_grid ,
990996 fpath = output_folder ,
991997 output_filename = output_filename )
992998 if not keep_dem_file :
@@ -999,7 +1005,7 @@ def merge_gridded_data(gdirs, output_folder=None,
9991005 if os .path .exists (fpath ):
10001006 os .remove (fpath )
10011007
1002- with gis .GriddedNcdfFile (grid = combined_grid , fpath = output_folder ,
1008+ with gis .GriddedNcdfFile (grid = output_grid , fpath = output_folder ,
10031009 basename = output_filename ) as nc :
10041010
10051011 # adding the data of one file after another to the merged dataset
@@ -1036,9 +1042,9 @@ def merge_gridded_data(gdirs, output_folder=None,
10361042 dim_lengths = []
10371043 for dim in dims :
10381044 if dim == 'y' :
1039- dim_lengths .append (combined_grid .ny )
1045+ dim_lengths .append (output_grid .ny )
10401046 elif dim == 'x' :
1041- dim_lengths .append (combined_grid .nx )
1047+ dim_lengths .append (output_grid .nx )
10421048 else :
10431049 if slice_of_var is not None :
10441050 # only keep selected part of the variable
@@ -1088,7 +1094,7 @@ def merge_gridded_data(gdirs, output_folder=None,
10881094
10891095 kwargs_reproject = dict (
10901096 variable = var ,
1091- target_grid = combined_grid ,
1097+ target_grid = output_grid ,
10921098 filename = in_file ,
10931099 filesuffix = in_filesuffix ,
10941100 use_glacier_mask = use_glacier_mask ,
0 commit comments