def generate_cache_clusters(class_, layer, grid_size): log = logging.getLogger(__name__) log.debug("Generating cache for grid size: %s", grid_size) cache_record = class_.CacheRecord(grid_size) layer.cache_records.append(cache_record) DBSession.flush() clusters = GriddedAndBoundMappablePoint.get_points_as_wkt(layer, grid_size=grid_size)\ .filter( MappablePoint.layer_id == layer.id ) i = 0 for cluster in clusters: i += 1 centroid = cluster.centroid cluster_size = cluster.cluster_size # locations = cluster.locations cached_mappable_cluster = class_.CachedMappablePointCluster(cluster_size, centroid) #, locations) cache_record.cached_mappable_point_clusters.append(cached_mappable_cluster) if (i % 10000 == 0): log.debug("Up to cluster: %i", i) DBSession.flush()
def test_get_layer_points_as_wkt(self): test_layer_1 = DBSession.query(Layer).filter_by(name='TestLayer1').one() q = GriddedAndBoundMappablePoint.get_points_as_wkt(test_layer_1, grid_size=1) result = q.all()