예제 #1
0
파일: load.py 프로젝트: antonis123/maps
def populations(cities=config.allcities.keys()+["Greater London"]):
    for city in cities:
        print "Loading population for city:", city
        
        # Save the population of the city
        st = Statistics(name=city+"_population", stat=config.allcities[city][1])
        st.save()
예제 #2
0
파일: load.py 프로젝트: antonis123/maps
def calculate_statistics(cities=config.allcities.keys()+["Greater London"]):
    for city in cities:
        print "Calculating statistics for city:", city
        
        for crimetype in config.crimetypes:
            max_x = None
            min_x = None
            nb = Neighbourhood.objects.filter(council__convexhull__name=city)
            for n in nb:
                count = Crimepoint.objects.filter(neighbourhood=n).filter(crimecat=crimetype).count()
                if (max_x and min_x) is None:
                    max_x = count
                    min_x = count
                elif count > max_x:
                    max_x = count
                elif count < min_x:
                    min_x = count
                    
            max_x = "{0:.2f}".format(max_x)
            min_x = "{0:.2f}".format(min_x)
            _name = city+"_neighbourhood_min_"+crimetype
            st = Statistics(name=_name, stat=min_x)
            st.save()
            _name = city+"_neighbourhood_max_"+crimetype
            st = Statistics(name=_name, stat=max_x)
            st.save()
                            
            max_x = None
            min_x = None
            councils = Council.objects.filter(convexhull__name=city)
            postcodes = Postcode.objects.filter(poly__intersects=councils[0].poly)
            for p in postcodes:
                #Get all the crimes in this postcode
                count = Crimepoint.objects.filter(pt__within=p.poly).filter(crimecat=crimetype).count()
                if (max_x and min_x) is None:
                    max_x = count
                    min_x = count
                elif count > max_x:
                    max_x = count
                elif count < min_x:
                    min_x = count
                    
            max_x = "{0:.2f}".format(max_x)
            min_x = "{0:.2f}".format(min_x)
            _name = city+"_postcode_min_"+crimetype
            st = Statistics(name=_name, stat=min_x)
            st.save()
            _name = city+"_postcode_max_"+crimetype
            st = Statistics(name=_name, stat=max_x)
            st.save()