in data-access/nexustiles/backends/nexusproto/dao/ElasticsearchProxy.py [0:0]
def get_data_series_stats(self, ds):
params = {
"size": 0,
"query": {
"term":{
"dataset_s": {
"value": ds
}
}
},
"aggs": {
"available_dates": {
"composite": {
"size": 100,
"sources": [
{"terms_tile_max_time_dt": {"terms": {"field": "tile_max_time_dt"}}}
]
}
}
}
}
aggregations = self.do_aggregation_all(params, 'available_dates')
stats = {}
stats['available_dates'] = []
for dt in aggregations:
stats['available_dates'].append(dt['key']['terms_tile_max_time_dt'] / 1000)
stats['available_dates'] = sorted(stats['available_dates'])
params = {
"size": 0,
"query": {
"term":{
"dataset_s": {
"value": ds
}
}
},
"aggs": {
"min_tile_min_val_d": {
"min": {
"field": "tile_min_val_d"
}
},
"min_tile_max_time_dt": {
"min": {
"field": "tile_max_time_dt"
}
},
"max_tile_max_time_dt": {
"max": {
"field": "tile_max_time_dt"
}
},
"max_tile_max_val_d": {
"max": {
"field": "tile_max_val_d"
}
}
}
}
aggregations = self.do_aggregation(*(None, None, None, False, None), **params)
stats["start"] = int(aggregations["min_tile_max_time_dt"]["value"]) / 1000
stats["end"] = int(aggregations["max_tile_max_time_dt"]["value"]) / 1000
stats["minValue"] = aggregations["min_tile_min_val_d"]["value"]
stats["maxValue"] = aggregations["max_tile_max_val_d"]["value"]
return stats