in data-access/nexustiles/dao/ElasticsearchProxy.py [0:0]
def find_all_tiles_in_polygon(self, bounding_polygon, ds, start_time=0, end_time=-1, **kwargs):
nums = re.findall(r'\d+(?:\.\d*)?', bounding_polygon.wkt.rpartition(',')[0])
polygon_coordinates = list(zip(*[iter(nums)] * 2))
max_lat = bounding_polygon.bounds[3]
min_lon = bounding_polygon.bounds[0]
min_lat = bounding_polygon.bounds[1]
max_lon = bounding_polygon.bounds[2]
params = {
"size": 1000,
"query": {
"bool": {
"filter": [
{
"term": {
"dataset_s": {
"value": ds
}
}
},
{
"geo_shape": {
"geo": {
"shape": {
"type": "envelope",
"coordinates": [[min_lon, max_lat], [max_lon, min_lat]]
},
"relation": "intersects"
}
}
},
{
"range": {
"tile_count_i": {
"gte": 1
}
}
}
]
}
}
}
try:
if 'fl' in list(kwargs.keys()):
params["_source"] = kwargs["fl"].split(',')
except KeyError:
pass
if 0 < start_time <= end_time:
params["query"]["bool"]["should"] = self.get_formatted_time_clause(start_time, end_time)
params["query"]["bool"]["minimum_should_match"] = 1
self._merge_kwargs(params, **kwargs)
return self.do_query_all(*(None, None, None, False, None), **params)