Esempio n. 1
0
def getSeriesForBox(request):
    l = float( request.GET['x1'] )
    b = float( request.GET['y1'] )
    r = float( request.GET['x2'] )
    t = float( request.GET['y2'] )
    rg = request.GET['rg']

    index = Rtree('/home/renci/geoanalytics/geoanalytics-lib/sr')
    ids = list(index.intersection((l,b,r,t), objects=True))
    if len(ids)> 0:
        sers = [{
            'name' : s.name,
            'filepath' : s.filepath,
            'bounds' : s.bbox4326,
            'filecount' : VectorFile.objects(series=s).count() + RasterFile.objects(series=s).count()
        } for s in [Series.objects(id=i.object[0]).first() for i in filter(lambda x:x.object[1] == rg, ids)]]
        return HttpResponse(json.dumps(sers), mimetype='application/json')
    else:
        return HttpResponse("[]", mimetype='application/json')
Esempio n. 2
0
def vectorfile(request):
    o = { 'children' : [_make_node(d) for d in VectorFile.objects(**dict(_fudge(request.REQUEST.items())))] }
    return HttpResponse(json.dumps(o,  default=json_util.default), mimetype='application/json')
Esempio n. 3
-1
def getFilesForBox(request):
    l = float( request.GET['x1'] )
    b = float( request.GET['y1'] )
    r = float( request.GET['x2'] )
    t = float( request.GET['y2'] )
    ser = request.GET['ser']
    begin = int(request.GET['begin'])
    num = int(request.GET['num'])

    index = Rtree('/home/renci/geoanalytics/geoanalytics-lib/fl')
    ids = list(index.intersection((l,b,r,t), objects=True))[begin:begin+num]
    if len(ids)>0:
        files = [{
            'name' : f.name,
            'filepath' : f.filepath,
            'bbox4326' : f.bbox4326,
            'metadata' : f.metadata,
            'type' : "raster",
            'band_metadata' : f.band_metadata,
            'projection' : f.projection
        } for f in [RasterFile.objects(id=i.object[0]).first() for i in filter(lambda x:x.object[1]==ser and x.object[2] == 'r' , ids)]] + [{
            'name' : f.name,
            'filepath' : f.filepath,
            'bbox4326' : f.bbox4326,
            'type' : "features",
            'attributes' : f.attribute_names,
            'layers' : [{'attributes' : zip(l.attribute_names, l.attribute_types), 
                         'geometry_type' : l.geometry_type, 
                         'feature_count' : l.feature_count} for l in f.layers]
        } for f in [VectorFile.objects(id=i.object[0]).first() for i in filter(lambda x:x.object[1]==ser and x.object[2] == 'v' , ids)]] 
        return HttpResponse(json.dumps(files), mimetype='application/json')
    else:
        return HttpResponse("[]", mimetype='application/json')