def generate_habitats(n, default_area = lambda: 1.0, habitat_types=None, geom_wkb=False): habitats= [] # Generate habitat types if none were given. if not habitat_types: habitat_types = generate_habitat_types() for i in range(n): habitat_type = habitat_types[i % len(habitat_types)] geom = geo_util.generate_multipolygon(wkb=geom_wkb) o = Habitat( id = i, habitat_type = habitat_type, z = i * 100, area = default_area(), geom = geom ) habitats.append(util_registry.get_or_register_object(o)) return habitats
def generate_cells(n, type='km100', default_area = lambda: 1.0, habitats=None, habitats_per_cell=2): cells = [] # Generate habitats if none were given. if not habitats: default_habitat_area = lambda: 1.0 * default_area()/habitats_per_cell habitats = generate_habitats(n * habitats_per_cell, default_area = default_habitat_area) for i in range(n): cell_habitats = [habitats.pop() for i in range(habitats_per_cell)] o = Cell( type = type, type_id = "%s" % i, area = default_area(), geom = geo_util.generate_multipolygon(), habitats = cell_habitats ) cells.append(util_registry.get_or_register_object(o)) return cells