Exemple #1
0
def comparative_flow():
    try:
        request_data = request.get_json()
        mongo_client = get_db()
        cama = CamaConvert(mongo_client)
        mandatory_keys = [
            "pre_path", "post_path", "year", "lat", "lon", "return_period"
        ]
        numeric_keys = ["lat", "lon", "year", "return_period"]
        given_keys = request_data.keys()
        for this_key in mandatory_keys:
            if this_key not in given_keys:
                abort(400, "Missing required input key: " + this_key)

        for this_key in numeric_keys:
            if not cama.is_number(request_data[this_key]):
                abort(
                    400, "Expected number, received: " + this_key + "=" +
                    request_data[this_key])

        request_data["request"] = "plot_hydrograph_deltas"
        response = cama.do_request(request_data)
        return response
    except Exception as e:
        abort(500, e)
Exemple #2
0
def came_run_post():
    try:
        mongo_client = get_db()
        cama = CamaConvert(mongo_client)
        request_data = request.get_json()
        mandatory_keys = [
            "lat", "lon", "riv_base", "riv_new", "fld_base", "fld_new",
            "size_wetland", "start_year", "end_year", "folder_name"
        ]
        numeric_keys = [
            "lat", "lon", "riv_base", "riv_new", "fld_base", "fld_new",
            "size_wetland"
        ]
        given_keys = request_data.keys()
        for this_key in mandatory_keys:
            if this_key not in given_keys:
                abort(400, "Missing required input key: " + this_key)

        for this_key in numeric_keys:
            if not cama.is_number(request_data[this_key]):
                abort(
                    400, "Expected number, received: " + this_key + "=" +
                    request[this_key])

        request_data["request"] = "cama_run_post"
        response = cama.do_request(request_data)
        return response
    except Exception as e:
        abort(500, e)
Exemple #3
0
def get_flow():
    # TODO: Work in progress
    try:
        mongo_client = get_db()
        cama = CamaConvert(mongo_client)
        request_data = request.get_json()
        request_data["request"] = "get_flow"
        response = cama.do_request(request_data)
        return response
    except Exception as e:
        abort(500, e)
Exemple #4
0
def remove_output_folder():
    try:
        request_data = request.get_json()
        mongo_client = get_db()
        cama = CamaConvert(mongo_client)
        mandatory_keys = ["folder_name"]
        given_keys = request_data.keys()
        for this_key in mandatory_keys:
            if this_key not in given_keys:
                abort(400, "Missing required input key: " + this_key)

        request_data["request"] = "remove_output_folder"
        response = cama.do_request(request_data)
        return response
    except Exception as e:
        abort(500, e)
Exemple #5
0
def vegetation_lookup():
    try:
        request_data = request.get_json()
        mongo_client = get_db()
        cama = CamaConvert(mongo_client)
        mandatory_keys = ["veg_type"]
        given_keys = request_data.keys()
        for this_key in mandatory_keys:
            if this_key not in given_keys:
                abort(400, "Missing required input key: " + this_key)

        request_data["request"] = "veg_lookup"
        response = cama.do_request(request_data)
        return response
    except Exception as e:
        abort(500, e)
Exemple #6
0
def came_run_pre():
    try:
        mongo_client = get_db()
        cama = CamaConvert(mongo_client)
        request_data = request.get_json()
        mandatory_keys = ["folder_name", "start_year", "end_year"]
        given_keys = request_data.keys()
        for this_key in mandatory_keys:
            if this_key not in given_keys:
                abort(400, "Missing required input key: " + this_key)

        request_data["request"] = "cama_run_pre"
        response = cama.do_request(request_data)
        return response
    except Exception as e:
        abort(500, e)
Exemple #7
0
def came_run_post():
    try:
        mongo_client = get_db()
        cama = CamaConvert(mongo_client)
        request_data = request.get_json()
        mandatory_keys = [
            "start_day", "end_day", "start_month", "end_month", "start_year",
            "end_year", "flow_values", "wetland_loc_multiple"
        ]
        numeric_keys = [
            "start_day", "end_day", "start_month", "end_month", "start_year",
            "end_year"
        ]
        wetland_loc_multiple_list = request_data["wetland_loc_multiple"]
        given_keys = request_data.keys()
        for this_key in mandatory_keys:
            if this_key not in given_keys:
                abort(400, "Missing required input key: " + this_key)

        for this_key in numeric_keys:
            if not cama.is_number(request_data[this_key]):
                abort(
                    400, "Expected number, received: " + this_key + "=" +
                    request[this_key])

        for wetland_loc in wetland_loc_multiple_list:
            for loc in wetland_loc:
                if not cama.is_number(loc):
                    abort(
                        400,
                        "Expected number, received: wetland_loc_multiple=" +
                        request_data["wetland_loc_multiple"])

        request_data["request"] = "cama_run_post"
        if "folder_name" not in given_keys:
            request_data["folder_name"] = None
        response = cama.do_request(request_data)
        return response
    except Exception as e:
        abort(500, e)
Exemple #8
0
def peak_flow():
    try:
        mongo_client = get_db()
        cama = CamaConvert(mongo_client)
        request_data = request.get_json()
        mandatory_keys = ["folder_name", "lat", "lon", "return_period"]
        numeric_keys = ["lat", "lon", "return_period"]
        given_keys = request_data.keys()
        for this_key in mandatory_keys:
            if this_key not in given_keys:
                abort(400, "Missing required input key: " + this_key)

        for this_key in numeric_keys:
            if not cama.is_number(request_data[this_key]):
                abort(
                    400, "Expected number, received: " + this_key + "=" +
                    request_data[this_key])

        request_data["request"] = "peak_flow"
        response = cama.do_request(request_data)
        return response
    except Exception as e:
        abort(500, e)