def calibrate_model(run_name, simulation_folder, outlet_ID, runoff_file, calibration_parameters, initial_numerical_values=""): """ Parameters ---------- calibration_parameters: a list, of calibration parameters. [fac_L, fac_Ks, fac_n_o, fac_n_c, fac_th_s] initial_numerical_values: a list, of initial numeric values [pvs_t0,vo_t0,qc_t0, kc ] simulation_folder: folder where results and everything are there Returns: a list. [Runname, date_time, nash value,\t, [Q_sim]] ------- """ fac_L = calibration_parameters[0] fac_Ks = calibration_parameters[1] fac_n_o = calibration_parameters[2] fac_n_c = calibration_parameters[3] fac_th_s = calibration_parameters[4] create_config_files_TOPKAPI_ini(simulation_folder, 'False', 'False', fac_L, fac_Ks, fac_n_o, fac_n_c, fac_th_s) # make changes to numerical value section in cell_param.dat if initial_numerical_values != "": cell_param_array = np.genfromtxt(simulation_folder + '/cell_param.dat', delimiter=' ') pvs_t0 = initial_numerical_values[0] # located at col-16 (15 in index) vo_t0 = initial_numerical_values[1] # located at col-17 (16 in index) qc_t0 = initial_numerical_values[2] # located at col-18 (17 in index) kc = initial_numerical_values[3] # located at col-19 (18 in index) # change the values that exist cell_param_array[:, 15] = np.zeros( (int(cell_param_array[:, 15].shape[0]), )) + pvs_t0 cell_param_array[:, 16] = np.zeros( (int(cell_param_array[:, 16].shape[0]), )) + vo_t0 cell_param_array[:, 17] = np.zeros( (int(cell_param_array[:, 17].shape[0]), )) + qc_t0 cell_param_array[:, 18] = np.zeros( (int(cell_param_array[:, 18].shape[0]), )) + kc np.savetxt(simulation_folder + '/cell_param.dat', cell_param_array, delimiter=' ') # run the program now pytopkapi.run(simulation_folder + '/TOPKAPI.ini') error_checking_param, ar_Q_sim = plot_sim_observed(run_name, simulation_folder, runoff_file, outlet_ID) return error_checking_param, ar_Q_sim
def calibrate_model(run_name, simulation_folder, outlet_ID, runoff_file, calibration_parameters,initial_numerical_values= ""): """ Parameters ---------- calibration_parameters: a list, of calibration parameters. [fac_L, fac_Ks, fac_n_o, fac_n_c, fac_th_s] initial_numerical_values: a list, of initial numeric values [pvs_t0,vo_t0,qc_t0, kc ] simulation_folder: folder where results and everything are there Returns: a list. [Runname, date_time, nash value,\t, [Q_sim]] ------- """ fac_L = calibration_parameters[0] fac_Ks = calibration_parameters[1] fac_n_o = calibration_parameters[2] fac_n_c = calibration_parameters[3] fac_th_s = calibration_parameters[4] create_config_files_TOPKAPI_ini(simulation_folder, 'False', 'False', fac_L, fac_Ks, fac_n_o, fac_n_c, fac_th_s) # make changes to numerical value section in cell_param.dat if initial_numerical_values != "": cell_param_array = np.genfromtxt(simulation_folder + '/cell_param.dat', delimiter=' ') pvs_t0 = initial_numerical_values[0] # located at col-16 (15 in index) vo_t0 = initial_numerical_values[1] # located at col-17 (16 in index) qc_t0 = initial_numerical_values[2] # located at col-18 (17 in index) kc = initial_numerical_values[3] # located at col-19 (18 in index) # change the values that exist cell_param_array[:, 15] = np.zeros((int(cell_param_array[:, 15].shape[0]),)) + pvs_t0 cell_param_array[:, 16] = np.zeros((int(cell_param_array[:, 16].shape[0]),)) + vo_t0 cell_param_array[:, 17] = np.zeros((int(cell_param_array[:, 17].shape[0]),)) + qc_t0 cell_param_array[:, 18] = np.zeros((int(cell_param_array[:, 18].shape[0]),)) + kc np.savetxt(simulation_folder + '/cell_param.dat',cell_param_array , delimiter=' ') # run the program now pytopkapi.run(simulation_folder+'/TOPKAPI.ini') error_checking_param ,ar_Q_sim = plot_sim_observed(run_name, simulation_folder, runoff_file, outlet_ID) return error_checking_param, ar_Q_sim
import sys sys.path.append('../../PyTOPKAPI') import pytopkapi from pytopkapi.results_analysis import plot_Qsim_Qobs_Rain, plot_soil_moisture_maps import os import h5py # from PIL import Image os.chdir("./run_the_model") pytopkapi.run('TOPKAPI.ini') plot_Qsim_Qobs_Rain.run('plot-flow-precip.ini') # plot_soil_moisture_maps.run('plot-soil-moisture-maps.ini') # # # results # result_sim5 = h5py.File("../../simulations/TEST SIMULAITON5/run_the_model/results/results.h5") # channel_flows = result_sim5['Channel/Qc_out'][...] # flow = channel_flows[:,0] # # soil_stores = result_sim5['Soil/V_s'][...] # soil = soil_stores[:, :10] # # # channel_flow = result_sim5['Channel']['Qc_out'][:] # # w, h = channel_flow.shape # # img = Image.fromarray(channel_flow, 'RGB')
def run_pyTOPKAPI(ini_fname): import ConfigParser from ConfigParser import SafeConfigParser # initializing config = SafeConfigParser() config.read(ini_fname) print 'Reading initializing file: ', ini_fname # # Pre-processing # # preprocessing_input = config.getboolean('preprocessing', 'preprocessing_input') # # Create Parameter file (cell_param.dat) # # create_param_files = config.getboolean('create_param_files', 'create_param_files') if create_param_files: simulation_folder = config.get('create_param_files', 'simulation_folder') in_tiff_folder = config.get('create_param_files', 'in_tiff_folder') areaThreshold = config.getfloat('create_param_files', 'areaThreshold') cell_size = config.getfloat('create_param_files', 'cell_size') pVs_t0 = config.getfloat('create_param_files_parameters', 'pVs_t0') Vo_t0 = config.getfloat('create_param_files_parameters', 'Vo_t0') # # Simulation # # run_simulation = config.getboolean('simulation', 'run_simulation') if run_simulation: simulation_folder = config.get('simulation_forcing_files', 'simulation_folder') create_forcing_files = config.get('simulation_forcing_files', 'create_forcing_files') if create_forcing_files: # path to the forcing files precipitation_file = config.get('simulation_forcing_files', 'precipitation_file') ET_file = config.get('simulation_forcing_files', 'ET_file') # Simulations Results draw_hydrograph = config.getboolean('simulation_results', 'draw_hydrograph') draw_maps = config.getboolean('simulation_results', 'draw_maps') Q_observed_file = config.get('simulation_results', 'Q_observed_file') variable_id_for_maps = config.getfloat('simulation_results', 'variable_id_for_maps') # Calibration # # Do Calibration or not calibrate_the_model = config.getboolean('calibration', 'calibrate_the_model') if calibrate_the_model: # only executes if run_simulation is to be done pass ## MAIN PROGRAM ## if preprocessing_input: preprocess_input_tiffs(ini_fname) if create_param_files: if in_tiff_folder == '': in_tiff_folder = simulation_folder + '/TIFFS' # get cell size, input a tiff, if not given as input if cell_size == '': cell_size = get_cellSize(in_tiff_folder + '/mask_r.tif') # create ini : create_file.ini create_config_files_create_file(simulation_folder, in_tiff_folder, pVs_t0=pVs_t0, Vo_t0=Vo_t0) # create ini : zero_slope_management.ini create_config_files_zero_slope_mngmt(simulation_folder, cell_size) # create global parameter files # todo: automate Dt, and try W_min and W_max create_global_param(simulation_folder, A_thres=areaThreshold, X=cell_size, Dt=86400, W_min=5., W_Max=30.) # create the parameter file # using the built in create_file script # Also executes the zero slope corrections create_cell_param(simulation_folder + '/create_file.ini', simulation_folder + '/zero_slope_management.ini') if run_simulation: # create forcing files outlet_ID, no_of_cell = get_outletID_noOfCell(simulation_folder + '/cell_param.dat') if create_forcing_files: # create hdf5 rainfall and ET files # get total number of cells, and the # todo: ET is right now all zero. Change this. create_rain_ET_file(simulation_folder, no_of_cell, ppt_file_txt=precipitation_file) create_config_files_TOPKAPI_ini(simulation_folder, append_output_binary='False', fac_L=1., fac_Ks=1., fac_n_o=1., fac_n_c=1., fac_th_s=1) # create ini: plot-flow-precip.ini create_config_files_plot_flow_precip(simulation_folder, Q_observed_file, outlet_ID) # create ini: plot-soil-moisture-map.ini create_config_files_plot_soil_moisture_map(simulation_folder) # RUN THE MODEL pytopkapi.run(simulation_folder + '/TOPKAPI.ini') if draw_hydrograph: plot_sim_observed(simulation_folder, Q_observed_file, outlet_ID) if draw_maps: from pytopkapi.results_analysis import plot_soil_moisture_maps plot_soil_moisture_maps.run(simulation_folder + '/plot-soil-moisture-maps.ini') if calibrate_the_model: simulation_folder = config.get('simulation_forcing_files', 'simulation_folder') Q_observed_file = config.get('simulation_results', 'Q_observed_file') if not os.path.exists(simulation_folder + '/results'): os.mkdir(simulation_folder + '/results') if not os.path.exists(simulation_folder + '/results/calibration'): os.mkdir(simulation_folder + '/results/calibration') # # create a blank file # open(simulation_folder + "/results/calibration/run_log.txt", 'a').close() # add headers to it, sort of metadata with open(simulation_folder + "/results/calibration/run_log.txt", 'a') as f: f.write( 'Calib param: fac_L|fac_Ks|fac_n_o|fac_n_c|fac_th_s ' '\t Numeric Param: pvs_t0|vo_t0|qc_t0|kc ' '\t Errors: nash_value|RMSE|RMSE_norm|Bias_cumul|Diff_cumul|Abs_cumul|Err_cumul\n' ) # get the outlet_ID config = SafeConfigParser() config.read(simulation_folder + '/plot-flow-precip.ini') # outlet_ID outlet_id = config.getint('parameters', 'outlet_id') calib_factor_range = [x / 100. for x in range(10, 300, 50)] i = 1 # following 4 lines are for NUMERICAL PARAMETER for pvs_t0 in [30., 95.]: for vo_t0 in [100., 2000.]: for qc_t0 in [0.]: for kc in [1]: # following 5 lines are for CALIBRATION PARAMETER for fac_L in [0.1, 1., 4.]: for fac_Ks in [1., 4.]: for fac_n_o in [1.]: for fac_n_c in [1.]: for fac_th_s in [1]: calib_param = [ fac_L, fac_Ks, fac_n_o, fac_n_c, fac_th_s ] numeric_param = [ pvs_t0, vo_t0, qc_t0, kc ] run_name = str(i) + "_" + "-".join( str(item) for item in calib_param) + "-".join( str(item) for item in numeric_param) # get the error parameters (nash_value, RMSE, RMSE_norm, Bias_cumul, Diff_cumul, Abs_cumul, Err_cumul) # and the simulated discharge for each timestep # the model run using this function takes calibration parameter and numeric parameter as input error_checking_param, Q_sim = calibrate_model( run_name, simulation_folder, outlet_id, Q_observed_file, calib_param, numeric_param) with open( simulation_folder + '/results/calibration/run_log.txt', "a+") as run_log: run_log.write( '\n' + run_name + '\t' + "|".join( str(item) for item in calib_param) + '\t' + "|".join( str(item) for item in numeric_param) + '\t' + "|".join( str(item) for item in error_checking_param) + '\tQ_sim: ' + " ".join( str(item) for item in Q_sim)) i = i + 1
import pytopkapi from pytopkapi.results_analysis import plot_Qsim_Qobs_Rain, \ plot_soil_moisture_maps if __name__ == '__main__': # Run a model simulation using the configuration in # model-simulation.ini pytopkapi.run('model-simulation.ini') # Plot the simulation results (rainfall-runoff graphics) using the # config in plot-flow-precip.ini plot_Qsim_Qobs_Rain.run('plot-flow-precip.ini') # Plot the simulation results (soil moisture maps) using the config in # plot-soil-moisture-maps.ini plot_soil_moisture_maps.run('plot-soil-moisture-maps.ini')
import pytopkapi from pytopkapi.results_analysis import plot_Qsim_Qobs_Rain, \ plot_soil_moisture_maps # Run a model simulation using the configuration in # model-simulation.ini pytopkapi.run('model-simulation.ini') # Plot the simulation results (rainfall-runoff graphics) using the # config in plot-flow-precip.ini plot_Qsim_Qobs_Rain.run('plot-flow-precip.ini') # Plot the simulation results (soil moisture maps) using the config in # plot-soil-moisture-maps.ini plot_soil_moisture_maps.run('plot-soil-moisture-maps.ini')
def continuity_error(ini_fname, delta_t, cell_id, X, channel_indices): # run the model using the supplied configuration pytopkapi.run(ini_fname) # parse the config file config = SafeConfigParser() config.read(ini_fname) precip_fname = config.get('input_files', 'file_rain') ET_fname = config.get('input_files', 'file_ET') group_name = config.get('groups', 'group_name') result_fname = config.get('output_files', 'file_out') # write model version print 'PyTOPKAPI version = %s' % pytopkapi.__version__ # compute the terms in the continuity eqn. initial_storage, final_storage = compute_storage(result_fname) print 'Initial storage = ', initial_storage print 'Final storage = ', final_storage precip_vol = compute_precip_volume(precip_fname, group_name, X) print 'Precipitation = ', precip_vol evapo_vol = compute_evapot_volume(result_fname, X) print 'Evapotranspiration = ', evapo_vol open_water_evap_vol = compute_evap_volume(result_fname, channel_indices) print 'Channel evaporation = ', open_water_evap_vol channel_runoff_vol = compute_channel_runoff(result_fname, delta_t, cell_id) print 'Channel runoff (outlet) = ', channel_runoff_vol overland_runoff_vol = compute_overland_runoff(result_fname, delta_t, cell_id) print 'Overland runoff (outlet) = ', overland_runoff_vol soil_drainage_vol = compute_soil_drainage(result_fname, delta_t, cell_id) print 'Soil drainage (outlet) = ', soil_drainage_vol down_drainage_vol = compute_down_drainage(result_fname, delta_t, cell_id) print 'Non-channel drainage (outlet) = ', down_drainage_vol input = precip_vol output = evapo_vol \ + open_water_evap_vol \ + channel_runoff_vol \ + down_drainage_vol delta_storage = final_storage - initial_storage error = delta_storage - (input - output) if precip_vol > 0: precip_error = abs((error / precip_vol) * 100.0) else: precip_error = None stor_error = abs((error / initial_storage) * 100.0) print 'Continuity error = ', error print 'Error as % precip. = ', precip_error print 'Error as % initial storage = ', stor_error os.remove(result_fname) return error, precip_error, stor_error
import sys sys.path.append('../../PyTOPKAPI') import pytopkapi from pytopkapi.results_analysis import plot_Qsim_Qobs_Rain, plot_soil_moisture_maps from pytopkapi.parameter_utils.create_file import generate_param_file from pytopkapi.parameter_utils import modify_file import os fn_ini = 'create_the_parameter_files/create_file.ini' # # # Generate Parameter Files # generate_param_file(fn_ini, isolated_cells=False) # print "Cell Parameter file created" # # # slope corrections # modify_file.zero_slope_management('create_the_parameter_files/zero_slope_management.ini') # print "Zero Slope corrections made" # # run the model pytopkapi.run('./run_the_model/TOPKAPI.ini') # Plot the hydrograph plot_Qsim_Qobs_Rain.run('./run_the_model/plot-flow-precip.ini') # # # Plot soil moisture # plot_soil_moisture_maps.run('./run_the_model/plot-soil-moisture-maps.ini')
def continuity_error(ini_fname, delta_t, cell_id, X, channel_indices): # run the model using the supplied configuration pytopkapi.run(ini_fname) # parse the config file config = SafeConfigParser() config.read(ini_fname) precip_fname = config.get('input_files', 'file_rain') ET_fname = config.get('input_files', 'file_ET') group_name = config.get('groups', 'group_name') result_fname = config.get('output_files', 'file_out') # write model version print('PyTOPKAPI version = %s' % pytopkapi.__version__) # compute the terms in the continuity eqn. initial_storage, final_storage = compute_storage(result_fname) print('Initial storage = ', initial_storage) print('Final storage = ', final_storage) precip_vol = compute_precip_volume(precip_fname, group_name, X) print('Precipitation = ', precip_vol) evapo_vol = compute_evapot_volume(result_fname, X) print('Evapotranspiration = ', evapo_vol) open_water_evap_vol = compute_evap_volume(result_fname, channel_indices) print('Channel evaporation = ', open_water_evap_vol) channel_runoff_vol = compute_channel_runoff(result_fname, delta_t, cell_id) print('Channel runoff (outlet) = ', channel_runoff_vol) overland_runoff_vol = compute_overland_runoff(result_fname, delta_t, cell_id) print('Overland runoff (outlet) = ', overland_runoff_vol) soil_drainage_vol = compute_soil_drainage(result_fname, delta_t, cell_id) print('Soil drainage (outlet) = ', soil_drainage_vol) down_drainage_vol = compute_down_drainage(result_fname, delta_t, cell_id) print('Non-channel drainage (outlet) = ', down_drainage_vol) input = precip_vol output = evapo_vol \ + open_water_evap_vol \ + channel_runoff_vol \ + down_drainage_vol delta_storage = final_storage - initial_storage error = delta_storage - (input - output) if precip_vol > 0: precip_error = abs((error/precip_vol)*100.0) else: precip_error = None stor_error = abs((error/initial_storage)*100.0) print('Continuity error = ', error) print('Error as % precip. = ', precip_error) print('Error as % initial storage = ', stor_error) os.remove(result_fname) return error, precip_error, stor_error
def run_pyTOPKAPI(ini_fname): import ConfigParser from ConfigParser import SafeConfigParser # initializing config = SafeConfigParser() config.read(ini_fname) print 'Reading initializing file: ', ini_fname # # Pre-processing # # preprocessing_input = config.getboolean('preprocessing', 'preprocessing_input') # # Create Parameter file (cell_param.dat) # # create_param_files = config.getboolean('create_param_files', 'create_param_files') if create_param_files: simulation_folder = config.get('create_param_files', 'simulation_folder') in_tiff_folder = config.get('create_param_files', 'in_tiff_folder') areaThreshold = config.getfloat('create_param_files', 'areaThreshold') cell_size = config.getfloat('create_param_files', 'cell_size') pVs_t0 = config.getfloat('create_param_files_parameters', 'pVs_t0') Vo_t0 = config.getfloat('create_param_files_parameters', 'Vo_t0') # # Simulation # # run_simulation = config.getboolean('simulation', 'run_simulation') if run_simulation: simulation_folder = config.get('simulation_forcing_files', 'simulation_folder') create_forcing_files = config.get('simulation_forcing_files', 'create_forcing_files') if create_forcing_files: # path to the forcing files precipitation_file = config.get('simulation_forcing_files', 'precipitation_file') ET_file = config.get('simulation_forcing_files', 'ET_file') # Simulations Results draw_hydrograph = config.getboolean('simulation_results', 'draw_hydrograph') draw_maps = config.getboolean('simulation_results', 'draw_maps') Q_observed_file = config.get('simulation_results', 'Q_observed_file') variable_id_for_maps = config.getfloat('simulation_results', 'variable_id_for_maps') # Calibration # # Do Calibration or not calibrate_the_model = config.getboolean('calibration', 'calibrate_the_model') if calibrate_the_model: # only executes if run_simulation is to be done pass ## MAIN PROGRAM ## if preprocessing_input: preprocess_input_tiffs(ini_fname) if create_param_files: if in_tiff_folder == '': in_tiff_folder = simulation_folder+'/TIFFS' # get cell size, input a tiff, if not given as input if cell_size == '': cell_size = get_cellSize(in_tiff_folder + '/mask_r.tif') # create ini : create_file.ini create_config_files_create_file(simulation_folder,in_tiff_folder,pVs_t0=pVs_t0, Vo_t0=Vo_t0) # create ini : zero_slope_management.ini create_config_files_zero_slope_mngmt(simulation_folder, cell_size) # create global parameter files # todo: automate Dt, and try W_min and W_max create_global_param(simulation_folder, A_thres=areaThreshold, X=cell_size, Dt=86400, W_min=5., W_Max=30.) # create the parameter file # using the built in create_file script # Also executes the zero slope corrections create_cell_param(simulation_folder+'/create_file.ini', simulation_folder+'/zero_slope_management.ini') if run_simulation: # create forcing files outlet_ID, no_of_cell = get_outletID_noOfCell(simulation_folder+'/cell_param.dat') if create_forcing_files: # create hdf5 rainfall and ET files # get total number of cells, and the # todo: ET is right now all zero. Change this. create_rain_ET_file(simulation_folder, no_of_cell, ppt_file_txt=precipitation_file) create_config_files_TOPKAPI_ini(simulation_folder, append_output_binary='False', fac_L=1., fac_Ks=1., fac_n_o=1., fac_n_c=1., fac_th_s=1) # create ini: plot-flow-precip.ini create_config_files_plot_flow_precip(simulation_folder,Q_observed_file,outlet_ID) # create ini: plot-soil-moisture-map.ini create_config_files_plot_soil_moisture_map(simulation_folder) # RUN THE MODEL pytopkapi.run(simulation_folder + '/TOPKAPI.ini') if draw_hydrograph: plot_sim_observed(simulation_folder,Q_observed_file,outlet_ID) if draw_maps: from pytopkapi.results_analysis import plot_soil_moisture_maps plot_soil_moisture_maps.run(simulation_folder+'/plot-soil-moisture-maps.ini') if calibrate_the_model: simulation_folder = config.get('simulation_forcing_files', 'simulation_folder') Q_observed_file = config.get('simulation_results', 'Q_observed_file') if not os.path.exists(simulation_folder+'/results'): os.mkdir(simulation_folder+'/results') if not os.path.exists(simulation_folder + '/results/calibration'): os.mkdir(simulation_folder + '/results/calibration') # # create a blank file # open(simulation_folder + "/results/calibration/run_log.txt", 'a').close() # add headers to it, sort of metadata with open(simulation_folder + "/results/calibration/run_log.txt", 'a') as f: f.write('Calib param: fac_L|fac_Ks|fac_n_o|fac_n_c|fac_th_s ' '\t Numeric Param: pvs_t0|vo_t0|qc_t0|kc ' '\t Errors: nash_value|RMSE|RMSE_norm|Bias_cumul|Diff_cumul|Abs_cumul|Err_cumul\n') # get the outlet_ID config = SafeConfigParser() config.read(simulation_folder+'/plot-flow-precip.ini') # outlet_ID outlet_id = config.getint('parameters', 'outlet_id') calib_factor_range = [x/100. for x in range(10,300,50)] i = 1 # following 4 lines are for NUMERICAL PARAMETER for pvs_t0 in [ 30., 95.]: for vo_t0 in [100.,2000.]: for qc_t0 in [0. ]: for kc in [1]: # following 5 lines are for CALIBRATION PARAMETER for fac_L in [0.1, 1., 4. ]: for fac_Ks in [1., 4.]: for fac_n_o in [1.]: for fac_n_c in [1.]: for fac_th_s in [1]: calib_param = [fac_L,fac_Ks,fac_n_o,fac_n_c,fac_th_s ] numeric_param = [pvs_t0,vo_t0,qc_t0, kc ] run_name = str(i)+"_" + "-".join(str(item) for item in calib_param) + "-".join(str(item) for item in numeric_param) # get the error parameters (nash_value, RMSE, RMSE_norm, Bias_cumul, Diff_cumul, Abs_cumul, Err_cumul) # and the simulated discharge for each timestep # the model run using this function takes calibration parameter and numeric parameter as input error_checking_param, Q_sim = calibrate_model(run_name,simulation_folder, outlet_id, Q_observed_file, calib_param,numeric_param) with open(simulation_folder+'/results/calibration/run_log.txt', "a+") as run_log: run_log.write('\n'+run_name + '\t' + "|".join(str(item) for item in calib_param)+ '\t' +"|".join(str(item) for item in numeric_param)+ '\t' +"|".join(str(item) for item in error_checking_param) + '\tQ_sim: ' + " ".join(str(item) for item in Q_sim)) i = i +1
import sys sys.path.append('../../PyTOPKAPI') import pytopkapi from pytopkapi.results_analysis import plot_Qsim_Qobs_Rain, plot_soil_moisture_maps from pytopkapi.parameter_utils.create_file import generate_param_file from pytopkapi.parameter_utils import modify_file import os fn_ini = 'create_the_parameter_files/create_file.ini' # # Generate Parameter Files # generate_param_file(fn_ini, isolated_cells=False) # print "Cell Parameter file created" # # # slope corrections # modify_file.zero_slope_management('create_the_parameter_files/zero_slope_management.ini') # print "Zero Slope corrections made" # run the model pytopkapi.run('./run_the_model/TOPKAPI.ini') # Plot the hydrograph plot_Qsim_Qobs_Rain.run('./run_the_model/plot-flow-precip.ini') # # # Plot soil moisture # plot_soil_moisture_maps.run('./run_the_model/plot-soil-moisture-maps.ini')