Exemple #1
0
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)
Exemple #2
0
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)
Exemple #3
0
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
Exemple #4
0
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
Exemple #5
0
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()
Exemple #6
0
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()
Exemple #7
0
 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')
Exemple #8
0
 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')