extract_stations_dict = {
        }  # keys: station_name , value: [latitude, longitude, target_method]

        for obs_index in range(len(extract_stations)):
            extract_stations_dict[extract_stations[obs_index][0]] = [
                extract_stations[obs_index][1], extract_stations[obs_index][2],
                extract_stations[obs_index][3]
            ]

        for station_name in extract_stations_dict.keys():
            fcst_station_name = None

            methods = []
            if station_name in ('colombo', 'mattakkuliya'):
                fcst_station_name = 'colombo'  #temporary#
                methods.append(MethodEnum.getAbbreviation(MethodEnum.TSF))
                methods.append(MethodEnum.getAbbreviation(MethodEnum.MGF))
            elif station_name in ('wellawatta'):
                fcst_station_name = 'wellawatta'
                methods.append(MethodEnum.getAbbreviation(MethodEnum.TSF))
                methods.append(MethodEnum.getAbbreviation(MethodEnum.MGF))
            else:
                continue  #skip current iteration

            for method in methods:

                meta_data = {
                    'latitude':
                    float('%.6f' %
                          float(extract_stations_dict.get(station_name)[0])),
                    'longitude':
                                  db=CURW_FCST_DATABASE)

        TS = Timeseries(pool=curw_sim_pool)

        # [station_name,latitude,longitude,target,model,version,sim_tag,station]
        extract_stations = read_csv(
            'grids/discharge_stations/mike_stations.csv')

        for i in range(len(extract_stations)):
            station_name = extract_stations[i][0]
            latitude = extract_stations[i][1]
            longitude = extract_stations[i][2]
            target_model = extract_stations[i][3]

            if station_name in ('ambatale'):
                method = MethodEnum.getAbbreviation(MethodEnum.MME)
            else:
                continue  ## skip the current station and move to next iteration

            meta_data = {
                'latitude': float('%.6f' % float(latitude)),
                'longitude': float('%.6f' % float(longitude)),
                'model': target_model,
                'method': method,
                'grid_id': 'discharge_{}'.format(station_name)
            }

            tms_id = TS.get_timeseries_id_if_exists(meta_data=meta_data)

            if tms_id is None:
                tms_id = TS.generate_timeseries_id(meta_data=meta_data)
Beispiel #3
0
            if opt in ("-h", "--help"):
                usage()
                sys.exit()
            elif opt in ("-m", "--flo2d_model"):
                flo2d_model = arg.strip()
            elif opt in ("-s", "--start_time"):
                start_time = arg.strip()
            elif opt in ("-e", "--end_time"):
                end_time = arg.strip()
            elif opt in ("-g", "--grid_tag"):
                grid_tag = arg.strip()

        if grid_tag == "MDPA":
            grid_interpolation = GridInterpolationEnum.getAbbreviation(
                GridInterpolationEnum.MDPA)
            method = MethodEnum.getAbbreviation(MethodEnum.OBS)
        else:
            exit(0)

        if flo2d_model is None:
            print("Flo2d model is not specified.")
            exit(1)
        elif flo2d_model not in ("flo2d_250", "flo2d_150", "flo2d_150_v2"):
            print(
                "Flo2d model should be either \"flo2d_250\" or \"flo2d_150\" or \"flo2d_150_v2\""
            )
            exit(1)

        if start_time is None:
            start_time = (datetime.now() -
                          timedelta(days=3)).strftime('%Y-%m-%d 23:30:00')