Exemplo n.º 1
0
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
Exemplo n.º 2
0
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
Exemplo n.º 3
0
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
Exemplo n.º 4
0
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
Exemplo n.º 5
0
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
Exemplo n.º 6
0
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
Exemplo n.º 7
0
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
Exemplo n.º 8
0
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