def rank_barriers(request: Request, extractor: BarriersRecordExtractor = Depends()): """Rank a subset of small barriers data. Path parameters: <layer> : one of LAYERS Query parameters: * id: list of ids * filters are defined using a lowercased version of column name and a comma-delimited list of values """ log_request(request) df = extractor.extract(ranked_barriers).copy() log.info(f"selected {len(df)} barriers for ranking") # just return tiers and lat/lon cols = ["lat", "lon"] + TIER_FIELDS + CUSTOM_TIER_FIELDS df = df.join(calculate_tiers(df))[cols] # extract extent bounds = df[["lon", "lat"]].agg(["min", "max"]).values.flatten().round(3) return csv_response(df, bounds=bounds)
def query_removed_dams(request: Request, ): """Return dams that were removed for conservation""" log_request(request) df = unpack_domains(get_removed_dams()) return csv_response(df)
def query_barriers(request: Request, extractor: StateRecordExtractor = Depends()): """Return subset of barriers based on state abbreviations. Query parameters: id: list of state abbreviations """ log_request(request) df = extractor.extract(barriers)[SB_PUBLIC_EXPORT_FIELDS].copy() df = df.sort_values(by="HasNetwork", ascending=False) df = unpack_domains(df) log.info(f"public query selected {len(df.index)} barriers") return csv_response(df)
def query_dams(request: Request, extractor: DamsRecordExtractor = Depends()): """Return subset of dams based on summary unit ids within layer. Path parameters: layer : one of LAYERS Query parameters: id: list of ids """ log_request(request) df = extractor.extract(ranked_dams) # extract extent bounds = df[["lon", "lat"]].agg(["min", "max"]).values.flatten().round(3) df = df[DAM_FILTER_FIELDS].copy() log.info(f"query selected {len(df)} dams") return csv_response(df, bounds)