def generate_habitat_types(): habitat_types = [] valid_habitat_types = [ ('S5', 'High'), ('S2', 'Low'), ('S4', 'Low'), ('S3', 'Low'), ('S1', 'Low'), ('S2', 'High'), ('S5', 'Low'), ('S1', 'High'), ('S3', 'High'), ('S4', 'High') ] for valid_habitat_type in valid_habitat_types: substrate_id = valid_habitat_type[0] energy = valid_habitat_type[1] s = Substrate(id=substrate_id, name=substrate_id) substrate = util_registry.get_or_register_object(s) o = Habitat_Type( energy = energy, substrate = substrate, features = generate_features() ) habitat_types.append(util_registry.get_or_register_object(o)) return habitat_types
def generate_efforts(n=10, tags=["a","b"], times=[1,2], default_swept_area=lambda: 1, default_hours_fished=lambda: 1): efforts = [] # Get gears. gears = generate_gears() # Get cells. cells = habitat_util.generate_cells(n/2 + 1) for i in range(n): cell_i = cells[i % len(cells)] gear_i = gears[i % len(gears)] time = times[i % len(times)] o = Effort( cell = cell_i, time = time, gear = gear_i, tag = tags[i % len(tags)], swept_area = default_swept_area(), hours_fished = default_hours_fished() ) efforts.append(util_registry.get_or_register_object(o,id_func=lambda obj: id(obj))) return efforts
def generate_results(n=10, tags=["a", "b"]): results = [] # Get gears. gears = fishing_util.generate_gears() # Get features. features = habitat_util.generate_features(n) # Get cells. cells = habitat_util.generate_cells(n/2 + 1) for i in range(n): cell_i = cells[i % len(cells)] gear_i = gears[i % len(gears)] feature_i = features[i % len(features)] o = Result( time = i, cell = cell_i, habitat_type = cell_i.habitats[0].habitat_type, gear = gear_i, feature = feature_i, field = "field_%s" % i, tag = tags[i % len(tags)], value = i ) results.append(util_registry.get_or_register_object(o,id_func=lambda obj: id(obj))) return results
def generate_substrates(n): substrates = [] for i in range(n): o = Substrate( id = "S%s" % i, name = "Substrate %s" % i ) substrates.append(util_registry.get_or_register_object(o)) return substrates
def generate_features(n=10): features = [] for i in range(n): o = Feature( id = "F%s" % i, name = "Feature %s" % i ) features.append(util_registry.get_or_register_object(o)) return features
def generate_gears(): # Create gear object for each gear definition in fishing_conf. gears = [] for gear_definition in fishing_conf.gear_definitions: o = Gear( id = gear_definition['id'], name = gear_definition['name'], category = gear_definition['category'] ) gears.append(util_registry.get_or_register_object(o)) return gears
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