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)
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)
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)
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)
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)
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)
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)
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)