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')
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')
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')