def index_layer(index, obj): start = end = None try: start, end = obj.get_time_extent() except: _logger.warn('could not get time info for %s', obj.typename) if start: index.time_start = util.iso_str_to_jdate(start) if end: index.time_end = util.iso_str_to_jdate(end) try: wms_metadata = obj.metadata() except: _logger.warn('could not get WMS info for %s', obj.typename) return min_x, min_y, max_x, max_y = wms_metadata.boundingBoxWGS84 if wms_metadata.boundingBoxWGS84 != (0.0, 0.0, -1.0, -1.0): try: index.extent = Envelope(min_x, min_y, max_x, max_y).wkt except Exception, ex: _logger.warn('Error computing envelope: %s, bounding box was %s', str(ex), wms_metadata.boundingBoxWGS84)
def index_layer(index, obj): start = end = None try: start, end = obj.get_time_extent() except: _logger.warn('could not get time info for %s', obj.typename) if start: index.time_start = util.iso_str_to_jdate(start) if end: index.time_end = util.iso_str_to_jdate(end) try: wms_metadata = obj.metadata() except: _logger.warn('could not get WMS info for %s', obj.typename) return min_x, min_y, max_x, max_y = wms_metadata.boundingBoxWGS84 if wms_metadata.boundingBoxWGS84 != (0.0,0.0,-1.0,-1.0): try: index.extent = Envelope(min_x,min_y,max_x,max_y).wkt; except Exception,ex: _logger.warn('Error computing envelope: %s, bounding box was %s', str(ex),wms_metadata.boundingBoxWGS84)
def filter_by_period(model, q, start, end, user=None): index = _index_for_model(model) q = index.objects.all() if start: q = q.filter(time_start__gte=util.iso_str_to_jdate(start)) if end: q = q.filter(time_end__lte=util.iso_str_to_jdate(end)) if user: period_ids = q.values('indexed__owner') q = q.filter(user__in=period_ids) else: period_ids = q.values('indexed') q = q.filter(id__in=period_ids) return q
def filter_by_period(model, q, start, end, user=None): index = _index_for_model(model) q = index.objects.all() if start: q = q.filter(time_start__gte = util.iso_str_to_jdate(start)) if end: q = q.filter(time_end__lte = util.iso_str_to_jdate(end)) if user: period_ids = q.values('indexed__owner') q = q.filter(user__in=period_ids) else: period_ids = q.values('indexed') q = q.filter(id__in=period_ids) return q
def index_map(index, obj): time_start = None time_end = None extent = Envelope(0, 0, 0, 0) for l in obj.local_layers: start = end = None try: start, end = l.get_time_extent() except: _logger.warn('could not get time info for %s', l.typename) if start: start = util.iso_str_to_jdate(start) if time_start is None: time_start = start else: time_start = min(time_start, start) if end: end = util.iso_str_to_jdate(end) if time_end is None: time_end = start else: time_end = max(time_end, end) try: wms_metadata = l.metadata() extent.expand_to_include(wms_metadata.boundingBoxWGS84) except: _logger.warn('could not get WMS info for %s', l.typename) if time_start: index.time_start = time_start if time_end: index.time_end = time_end index.extent = extent.wkt index.save()
def index_map(index, obj): time_start = None time_end = None extent = Envelope(0,0,0,0) for l in obj.local_layers: start = end = None try: start, end = l.get_time_extent() except: _logger.warn('could not get time info for %s', l.typename) if start: start = util.iso_str_to_jdate(start) if time_start is None: time_start = start else: time_start = min(time_start, start) if end: end = util.iso_str_to_jdate(end) if time_end is None: time_end = start else: time_end = max(time_end, end) try: wms_metadata = l.metadata() extent.expand_to_include(wms_metadata.boundingBoxWGS84) except: _logger.warn('could not get WMS info for %s', l.typename ) if time_start: index.time_start = time_start if time_end: index.time_end = time_end index.extent = extent.wkt index.save()
def test_util(self): jdate = util.iso_str_to_jdate('-5000-01-01T12:00:00Z') self.assertEquals(jdate, -105192) roundtripped = util.jdate_to_approx_iso_str(jdate) self.assertEquals(roundtripped, '-4999-01-03')