¶meters ! if set, separate files can be used to supply the namelist data for each of these namelists ! training_file = "downscale_options.nml" ! observation_file = "downscale_options.nml" ! prediction_file = "downscale_options.nml" output_file = "output/gard_out_" ! prefix for output files start_date = "2000-01-01 00:00:00" ! start time for the output data (only needs to exist in the prediction dataset) end_date = "2000-01-31 23:00:00" ! end time for the output data start_train = "1980-01-01 00:00:00" ! start time for the training period (must exist in training and observed datasets) end_train = "1999-12-31 23:00:00" ! end time for the training period start_transform = "1990-01-01 00:00:00" ! start time for any transformations (e.g. quantile mapping) (must exist in both the training and the prediction datasets) end_transform = "1999-01-01 23:00:00" ! end time for the transformation period start_post = "1990-01-01 00:00:00" ! start time for any post processing transformations (e.g. quantile mapping) (must exist in the prediction dataset) end_post = "1999-01-01 23:00:00" ! end time for the post-proc transformation period ! model types pure_regression = False ! set to true (and others to false) to compute a single regression (no analogs) between training variables and observations to be applied to all predictor data pure_analog = False ! set to true (and others to false) to use the selected analogs (no regression) to predict the output analog_regression = True ! set to true (and others to false) to perform a regression only on the selected analog days when predicting the output ! Non-model type pass_through = False ! set to true to simply pass a predictor variable through instead of computing regressions or analogs pass_through_var = 1 ! Option to select which predictor variable is passed through ! analog selection parameters n_analogs = 200 ! set the number of analogs to find for each time step ! n_log_analogs = 20 ! set to the number of analogs to use for the logistic_from_analog_exceedance calculation if using something other than n_analogs ! analog_threshold = 0.25 ! set to use a threshold distance when selecting analogs instead of a fixed number (in units of standard deviations averaged across input variables) ! model options sample_analog = False ! when using pure_analog this will sample randomly from the selection of analogs instead of using the mean logistic_from_analog_exceedance = False ! when true the logistic probability is calculated from the number of analogs that exceed the threshold instead of from a logistic regression logistic_threshold = 0 ! when set, the probability of exceeding this value will be calculated and the standard output will be trained only for the data that exceed this value weight_analogs = True ! when calculating analog_mean, analog_error, or logistic_from_analog, weight each analog by it's inverse square distance from the current input ! output post processing transformation post_correction_transform = 0 ! post processing to apply (e.g. quantile mapping to entire input obs period) (one entry for every output variable) debug = False ! prints more output at runtime and outputs files including the coefficients used in each analog regression (or analog values) as well as the predictor data interactive = False ! Print downscaling status as a percentage on the command line / ! define the input atmospheric model data to be used when training the model &training_parameters name = "ERA-interim" ! name preloaded = "preloaded/training_" ! set to a location to store the data to make future runs faster (most important for GEFS data) interpolation_method = 2 ! interpolation method to use (nearest neighbor = 1, bilinear interpolation = 2) nvars = 4 ! number of variables to read data_type = "GCM" ! type of input data (GEFS or GCM) lat_name = "XLAT" ! name of a variable in the input data that contains the latitude of each grid cell (can be a 1D or 2D variable) lon_name = "XLONG" ! name of a variable in the input data that contains the longitude of each grid cell (can be a 1D or 2D variable) time_name = "XTIME" ! name of a variable in the input data that contains the time data (must be a number ideally with a units attribute such as "days since YYYY-MM-DD hh:mm:ss") nfiles = 21 ! the number of files to be read selected_level = -1 ! If the input data have 4 dimensions (e.g. one dimension is elevation) this is the index that will be used ! this assumes that the z dimension is the 2nd (time, z, y, x) in the NetCDF file ! if -1, the first level will be used. ! Controls normalization applied to training data. ! 0 = don't normalize, 1 = normalize based on the training data mean and standard deviation normalization_method = 1 ! the following are arrays with one element for each input variable input_transformations = 0, 0, 3, 3 ! transformations to apply to each input variable (0=none, 1=qm?, 2=log, 3=cuberoot, 4=fifthroot) ! variable name in the input file var_names = "T2", "PSFC", "PREC_ACC_NC", "PREC_ACC_C" ! name of a text file containing a list of nfiles that contain the input data file_list = "filelists/erai_files_19xx.txt", "filelists/erai_files_19xx.txt", "filelists/erai_files_19xx.txt", "filelists/erai_files_19xx.txt" ! calendar to be used when interpreting the time variable, "gregorian", "standard", "noleap", "365-day","360-day" all work calendar = "gregorian" calendar_start_year = 1900 ! set this to the year the time data use as time 0, will be read from the NetCDF units attribute if possible timezone_offset = 0 ! offset (in hours) to add to the time data to permit a better match with the local obs. data ! the following options are primarily for forecasting ! GEFS data have n time-steps per file, corresponding to the n-forecast lead times selected_time = -1 ! if set, only this time step will be read from each input file time_indices = -1, -1, -1 ! this can be a list of time steps to read and average over instead / ! Define the input atmospheric model data to be used when applying the model for future predictions ! This can be the same format or different from training data, but must have matching variables &prediction_parameters name = "ERA-interim" preloaded = "preloaded/predict_" interpolation_method = 2 nvars = 4 data_type = "GCM" lat_name = "XLAT" lon_name = "XLONG" time_name = "XTIME" nfiles = 10 input_transformations = 0, 0, 3, 3 ! Here is the main difference between training and prediction data ! This permits an additional transformation to e.g. quantile map (transformation=1) each variable to match the training data ! this is primarily for climate simulations transformations = 0, 0, 0, 0 ! Also, if normalization_method = 2, the means and standard deviations from the training data will be used to normalize the predictors ! this is primarily for forecasting applications. 1=Normalize based on prediction data, 0=no normalization applied normalization_method = 1 var_names = "T2", "PSFC", "PREC_ACC_NC", "PREC_ACC_C" file_list = "filelists/erai_files_200x.txt", "filelists/erai_files_200x.txt", "filelists/erai_files_200x.txt", "filelists/erai_files_200x.txt" calendar = "gregorian" calendar_start_year = 1900 timezone_offset = 0 selected_time = -1 time_indices = -1, -1, -1 / ! Define the input observation data to be used when training the model ! most parameters as in the atmospheric input namelists &obs_parameters name = "Maurer data" nvars = 1 ! theoretically this might work with more variables, but it hasn't been fully implemented yet nfiles = 20 data_type = "obs" lat_name = "lat" lon_name = "lon" time_name = "time" ! this transformation will be applied to the obs before e.g. performing regressions, and the inverse transformation will be applied to the model output input_transformations = 3 var_names = "pr" file_list = "filelists/obs_files_complete.txt" calendar = "gregorian" calendar_start_year = 1900 ! specify a variable to use to find which grid cells should be masked mask_variable = 1 ! specify a value to use to in that variable to define masked gridcells mask_value = 1e20 /