def find_days_in_range_asc()

in data-access/nexustiles/dao/ElasticsearchProxy.py [0:0]


    def find_days_in_range_asc(self, min_lat, max_lat, min_lon, max_lon, ds, start_time, end_time, **kwargs):

        search_start_s = datetime.utcfromtimestamp(start_time).strftime(ELASTICSEARCH_FORMAT)
        search_end_s = datetime.utcfromtimestamp(end_time).strftime(ELASTICSEARCH_FORMAT)

        params = {
            "size": "0",
            "_source": "tile_min_time_dt",
            "query": {
                "bool": {
                    "filter": [
                        {
                            "term": {
                                "dataset_s": {
                                    "value": ds
                                }
                            }
                        },
                        {
                            "range": {
                                "tile_min_time_dt": {
                                    "gte": search_start_s,
                                    "lte": search_end_s
                                }
                            }
                        },
                        {
                            "geo_shape": {
                                "geo": {
                                    "shape": {
                                        "type": "envelope",
                                        "coordinates": [[min_lon, max_lat],[max_lon, min_lat]]
                                    },
                                    "relation": "intersects"
                                }
                            }
                        }
                    ]
                }
            },
            "aggs": {
                "days_range_agg": {
                    "composite": {
                        "size":100,
                        "sources": [
                            {
                                "tile_min_time_dt": {
                                    "terms": {
                                        "field": "tile_min_time_dt"
                                    }
                                }
                            }
                        ]
                    }
                }
            }
        }

        aggregations = self.do_aggregation_all(params, 'days_range_agg')
        results = [res['key']['tile_min_time_dt'] for res in aggregations]
        daysinrangeasc = sorted([(res / 1000) for res in results])
        return daysinrangeasc