Esempio n. 1
0
   # time_axis = api.FixedIntervalTimeAxis(t_start, delta_t, n_steps)
    time_axis = api.TimeAxis(t_start, delta_t, n_steps)
    config._target = make_fake_target(config.model_config, time_axis, config.catchment_index[0]['catch_id'])
    calibrator = ShyftCalibrator(config)
    calibrator.init(time_axis)
    print calibrator.calibrate(tol=1.0e-5)
    print "Exit.."

if __name__ == "__main__":
    import sys
    import os
    from shyft.orchestration.utils.ShyftRunner import ShyftRunner
    from shyft.orchestration.utils.ShyftConfig import ShyftConfig
    enki_root=os.path.join("D:\\","Users","sih","enki_config_for_test")
    config_file = os.path.join(enki_root, "runner_configurations.yaml")
    config= ShyftConfig(config_file,'NeaNidelva')
    simulator = ShyftRunner(config)
    simulator.build_model(config.t_start, config.dt, config.n_steps)
    simulator.run_model()
    discharge_0=simulator.get_calculated_discharge(38)
    if "shapes" in simulator.cell_data_types():
        extractor = {'Total discharge': lambda x: x.response.total_discharge,
                     'Snow storage': lambda x: x.response.gs.storage*(1.0 - (x.lake_frac + x.reservoir_frac)),
                     'Temperature': lambda x: x.temperature[len(x.temperature)-1],
                     'Precipitation': lambda x: x.precipitation[len(x.precipitation)-1]}
        simulator.plot_distributed_data(simulator.cell_data("shapes"), simulator.model.get_cells(), extractor)
    print "Exit.."
    #default_config_file = os.path.join(os.path.dirname(__file__), "config\NeaNidelva_calibration.yaml")
    #filename = sys.argv[1] if len(sys.argv) == 2 else default_config_file
    #_main_calibration_runner(filename)