예제 #1
0
def test_drawing_intersect(request):
    if request.method == 'POST':
        form = TestIntersectionForm(request.POST)
        if form.is_valid():
            geom = geos.fromstr(form.cleaned_data['geometry'])
            org_scheme = form.cleaned_data['org_scheme']
            format = form.cleaned_data['format']
            geom.transform(settings.GEOMETRY_DB_SRID)
            if org_scheme == 'None':
                result = intersect_the_features(geom)
                if format == 'html':
                    return render_to_response('generic_results.html', {'result': result})
                elif format == 'csv':
                    return build_csv_response(result, str(hash(geom)))
                elif format == 'json':
                    return HttpResponse(json_encode(result), mimetype='text/json')
            else:
                osc = OrganizationScheme.objects.get(pk=org_scheme)
                result = osc.transformed_results(geom)
                if format == 'html':
                    return render_to_response('transformed_results.html', {'result': use_sort_as_key(result)})
                elif format == 'csv':
                    return build_csv_response(result, str(hash(geom)))
                elif format == 'json':
                    return HttpResponse(json_encode(result), mimetype='text/json')
    else:
        form = TestIntersectionForm()
    return render_to_response('polygon_form.html', {'form': form})
예제 #2
0
def test_drawing_intersect(request):
    if request.method == 'POST':
        form = TestIntersectionForm(request.POST)
        if form.is_valid():
            geom = geos.fromstr(form.cleaned_data['geometry'])
            org_scheme = form.cleaned_data['org_scheme']
            format = form.cleaned_data['format']
            geom.transform(settings.GEOMETRY_DB_SRID)
            if org_scheme == 'None':
                result = intersect_the_features(geom)
                if format == 'html':
                    return render_to_response('generic_results.html',
                                              {'result': result})
                elif format == 'csv':
                    return build_csv_response(result, str(hash(geom)))
                elif format == 'json':
                    return HttpResponse(json_encode(result),
                                        mimetype='text/json')
            else:
                osc = OrganizationScheme.objects.get(pk=org_scheme)
                result = osc.transformed_results(geom)
                if format == 'html':
                    return render_to_response(
                        'transformed_results.html',
                        {'result': use_sort_as_key(result)})
                elif format == 'csv':
                    return build_csv_response(result, str(hash(geom)))
                elif format == 'json':
                    return HttpResponse(json_encode(result),
                                        mimetype='text/json')
    else:
        form = TestIntersectionForm()
    return render_to_response('polygon_form.html', {'form': form})
예제 #3
0
def stat_data(request, key):
    skey = StatKey.objects.get(term=key[:16])
    if not skey: return HttpResponse("no")
    data = StatPoint.objects.filter(statkey=skey).order_by('-created_at')[:1000]
    return HttpResponse(key + " = " + json_encode( [
        (1000*mktime(d.created_at.timetuple()), d.value) for d in data
        ] ) + ";" )
예제 #4
0
def all_org_scheme_info(request):
    oscs = OrganizationScheme.objects.all()
    dict = {}
    for osc in oscs:
        subdict = osc.info
        dict[str(osc.pk)] = subdict
    return HttpResponse(json_encode(dict), mimetype='text/json')
예제 #5
0
def all_org_scheme_info(request):
    oscs = OrganizationScheme.objects.all()
    dict = {}
    for osc in oscs:
        subdict = osc.info
        dict[str(osc.pk)] = subdict
    return HttpResponse(json_encode(dict), mimetype='text/json')
예제 #6
0
def twdata(request, num):
    num = int(num)
    c = _db_cur()
    c.execute("""
select to_user_id, as_of_time, score 
from user_ranking 
where to_user_id = %s and as_of_time >= '2009-09-15'
        """,(num,))
    data = [(1000 * mktime(d['as_of_time'].timetuple()), d['score']) for d in c]
    return HttpResponse( "d_%d = %s;" % (num, json_encode(data))) 
예제 #7
0
def organized_intersection(request, org_scheme, format, geom_wkt):
    geom = geos.fromstr(geom_wkt)
    geom.transform(settings.GEOMETRY_DB_SRID)
    osc = OrganizationScheme.objects.get(pk=int(org_scheme))
    result = osc.transformed_results(geom)
    if format == 'html':
        return render_to_response('transformed_results.html', {'result': use_sort_as_key(result)})
    elif format == 'csv':
        return build_csv_response(result, str(hash(geom)))
    elif format == 'json':
        return HttpResponse(json_encode(result), mimetype='text/json')
예제 #8
0
def twletterdata(request, name):
    c = _db_cur()
    c.execute("""
select as_of,sum(score03) as score03, sum(score10) as score10, sum(score50) as  score50
from """ + "scores_%s"%name.lower()[0] + """
where to_user = %s group by as_of """,(name.lower(),))
    data = {'d03':[], 'd10':[], 'd50':[]}
    for d in c:
        data['d03'].append((1000 * mktime(d['as_of'].timetuple()), d['score03']))
        data['d10'].append((1000 * mktime(d['as_of'].timetuple()), d['score10']))
        data['d50'].append((1000 * mktime(d['as_of'].timetuple()), d['score50']))
    return HttpResponse( "d_%s = %s;" % (name, json_encode(data))) 
예제 #9
0
def organized_intersection(request, org_scheme, format, geom_wkt):
    geom = geos.fromstr(geom_wkt)
    geom.transform(settings.GEOMETRY_DB_SRID)
    osc = OrganizationScheme.objects.get(pk=int(org_scheme))
    result = osc.transformed_results(geom)
    if format == 'html':
        return render_to_response('transformed_results.html',
                                  {'result': use_sort_as_key(result)})
    elif format == 'csv':
        return build_csv_response(result, str(hash(geom)))
    elif format == 'json':
        return HttpResponse(json_encode(result), mimetype='text/json')
예제 #10
0
def powercentrality(request, plot_type, dt, maxnum=-1):
    if plot_type not in ('both', 'impact', 'indegree'):
        return HttpResponse("oops.  both, indegree or impact pls")

    cur = _db_cur()
    users = []

    # build a HUGE array consisting of tuple(deg,score03,username) for
    # every user
    # for L in string.digits:
    for L in letters:
        table_name = "indeg_" + L
        sql = """
select to_user, as_of, degcentral, tdegcentral
from """ + table_name + """
where as_of = %s """
        cur.execute(sql, dt)
        for row in cur:
            users.append((row['degcentral'], row['tdegcentral'], row['to_user']))

    # now, sort and assign indexes
    if plot_type == 'both':
        indexes = ( ('degreecentrality',0), ('impactcentrality',1)) # doing both
        users.sort(key=lambda x:x[1], reverse=1) # sorted by impact!!
    else:
        idx = {'degree':0, 'impact':1}[plot_type]
        indexes = ( (plot_type,idx), )
        users.sort(key=lambda x:x[idx], reverse=1) # sorted by indeg!!
    if maxnum != -1:
        users = users[:int(maxnum)] # truncate our data if requested
    plots = []

    for label, idx in indexes:
        c = Counter()
        plots.append( {
            'label': label,
            'data':  json_encode( [ (c.next(), u[idx]) for u in users] ),
            'color': colors[idx],
            } )

    return render_to_response('twitter/chart.html', {'plots':plots})
예제 #11
0
def account(request, screen_name, plot_type):
    if plot_type not in ('custom', 'all','impact5','tdegcen', 'degcen', 'impact', 'indegree'):
        return HttpResponse("oops.  all, degcen, indegree or impact pls")

    start_date = end_date = None
    if request.GET.has_key('sd'): start_date = request.GET['sd']
    if request.GET.has_key('ed'): end_date = request.GET['ed']

    cur = _db_cur()
    table_name = "indeg_" + screen_name[0].lower()
    sql = """
select as_of,
    ifnull(deg,0) as deg,
    ifnull(score03,0) as score03,
    ifnull(score50,0) as score50,
    ifnull(degcentral,0) as degcentral,
    ifnull(tdegcentral,0) as tdegcentral
from """ + table_name + """
where to_user = %s """
    args = [screen_name]
    if start_date:
        sql += " and as_of >= %s "
        args.append( start_date )
    if end_date:
        sql += " and as_of <= %s "
        args.append( end_date )
    cur.execute(sql, args)

    # now, sort and assign indexes
    if plot_type == 'both':
        indexes = ( ('indegree',2), ('impact',1)) # doing both
    elif plot_type == 'impact5':
        indexes = ( ('score03',1), ('score50',5) ) 
    elif plot_type == 'indegree':
        indexes = ( (plot_type,2), ) 
    elif plot_type == 'impact':
        indexes = ( (plot_type,1), ) 
    elif plot_type == 'degcen':
        indexes = ( (plot_type,3), ) 
    elif plot_type == 'tdegcen':
        indexes = ( (plot_type,4), ) 
    else:
        indexes = tuple()

    # data = [ (ctime(d['as_of']), d['score03'], d['deg'])  for d in cur ]
    data = [ (
        d['as_of'],
        d['score03'] or 0,
        d['deg'] or 0,
        d['degcentral'] or 0,
        d['tdegcentral'] or 0,
        d['score50'] or 0,
        )  for d in cur ]
    data.sort(key=lambda x:x[0]) # sorted by indeg!!
    data = fill_in_the_date_holes(data)

    plots = []
    for label, idx in indexes:
        plots.append( {
            'label': label,
            'data':  json_encode( [ (ctime(r[0]), r[idx]) for r in data] ),
            'color': colors[idx-1],
            } )

    return render_to_response(
        'twitter/chart.html', 
        { 'plots':plots, 'xaxis': '{ mode: "time" }' , }
        )
예제 #12
0
def org_scheme_pk_from_name(request, name):
    osc_pk = OrganizationScheme.objects.get(name=name).pk
    result = {'pk': osc_pk}
    return HttpResponse(json_encode(result), mimetype='text/json')
예제 #13
0
def org_scheme_info(request, org_id):
    osc = OrganizationScheme.objects.get(pk=org_id)
    subdict = osc.info
    return HttpResponse(json_encode(subdict), mimetype='text/json')
예제 #14
0
def org_scheme_pk_from_name(request, name):
    osc_pk = OrganizationScheme.objects.get(name=name).pk
    result = {'pk': osc_pk}
    return HttpResponse(json_encode(result), mimetype='text/json')
예제 #15
0
def org_scheme_info(request, org_id):
    osc = OrganizationScheme.objects.get(pk=org_id)
    subdict = osc.info
    return HttpResponse(json_encode(subdict), mimetype='text/json')