示例#1
0
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)
示例#2
0
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)
示例#3
0
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)
示例#4
0
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)