示例#1
0
def stats(dataset_id):
    """Queries the stats for a certain raster, with an optional mask"""
    logging.info('[StatsRouter] Obtaining stats for dataset_id: ' + dataset_id)
    logging.info("REQUEST")
    logging.info(request.json)

    dataset = {'datasetId': dataset_id}

    geostore = {
        'geostore': request.json['geostore']
    } if request.json['geostore'] else {
        'geostore': None
    }

    additional_axes = {
        'additionalAxes': request.json['additionalAxes']
    } if 'additionalAxes' in request.json else {
        'additionalAxes': None
    }

    options = {**dataset, **geostore, **additional_axes}
    logging.info("Options: " + str(options))
    try:
        stats = query_service.get_stats(options)
    except GeostoreNotFoundError:
        return error(status=404, detail="Geostore not found")
    except DimensionalityError:
        return error(status=400,
                     detail="Raster dimensionality needs to be strictly 2")
    return json.dumps({"data": stats})
示例#2
0
 def wrapper(*args, **kwargs):
     logging.info(
         "[Rasdamanstats Validator] Validating the presence of geostore")
     if 'geostore' in request.json:
         geostore = request.json['geostore']
     try:
         geostore
     except NameError:
         geostore = None
         return error(status=400, detail='Geostore needed')
     return func(*args, **kwargs)
示例#3
0
def internal_server_error(e):
    return error(status=500, detail='Internal Server Error')
示例#4
0
def gone(e):
    return error(status=410, detail='Gone')
示例#5
0
def method_not_allowed(e):
    return error(status=405, detail='Method Not Allowed')
示例#6
0
def page_not_found(e):
    return error(status=404, detail='Not Found')
示例#7
0
def forbidden(e):
    return error(status=403, detail='Forbidden')