예제 #1
0
	def accessibility(self):
		"""
		Accessibility matrix (transitive closure).

		@rtype:  dictionary
		@return: Accessibility information for each node.
		"""
		return accessibility.accessibility(self)
예제 #2
0
파일: __init__.py 프로젝트: IanReid/ABFGP
	def accessibility(self):
		"""
		Accessibility matrix (transitive closure).

		@rtype:  list
		@return: Accessibility matrix
		"""
		return accessibility.accessibility(self)
예제 #3
0
	def accessibility(self):
		"""
		Accessibility matrix (transitive closure).

		@rtype:  dictionary
		@return: Accessibility information for each node.
		"""
		return accessibility.accessibility(self)
예제 #4
0
    def accessibility(self):
        """
		Accessibility matrix (transitive closure).

		@rtype:  list
		@return: Accessibility matrix
		"""
        return accessibility.accessibility(self)
예제 #5
0
파일: interest.py 프로젝트: Lasbleic/GDMC
def interest(building_type, scenario, maps, settlement_seeds, size,
             parcel_size):
    # type: (BuildingType, str, Maps, object, object, object) -> object

    def river_interest():
        if maps.fluid_map.has_river:
            return close_distance(maps.fluid_map.river_distance[x, z],
                                  lambdas["RiverDistance"])
        return 0

    def ocean_interest():
        if maps.fluid_map.has_ocean:
            return close_distance(maps.fluid_map.ocean_distance[x, z],
                                  lambdas["OceanDistance"])
        return 0

    def lava_interest():
        if maps.fluid_map.has_lava:
            return obstacle(maps.fluid_map.lava_distance[x, z],
                            lambdas["LavaObstacle"])
        return 0

    _interest_map = np.zeros(size)

    print("Compute accessibility map")
    accessibility_map = accessibility(building_type, scenario,
                                      maps.road_network, size)
    print("Compute sociability map")
    sociability_map = sociability(building_type, scenario, settlement_seeds,
                                  size)
    extendability_map = extendability(size, parcel_size)

    scenario_dict = BUILDING_ENCYCLOPEDIA[scenario]
    lambdas = {
        criteria: scenario_dict[criteria][building_type.name]
        for criteria in scenario_dict
        if building_type.name in scenario_dict[criteria]
    }

    for x, z, in product(range(size[0]), range(size[1])):
        interest_functions = np.array([
            accessibility_map[x][z], sociability_map[x][z],
            river_interest(),
            ocean_interest(),
            lava_interest()
        ])

        if min(interest_functions) == -1 or extendability_map[x][z] == -1:
            interest_score = 0
        else:
            weights = np.array(lambdas["Weighting_factors"])
            weighted_score = interest_functions.dot(weights) / sum(weights)
            interest_score = max(0, weighted_score)

        _interest_map[x][z] = interest_score

    return _interest_map, accessibility_map, sociability_map
예제 #6
0
	def accessibility(self):
		"""
		Accessibility matrix (transitive closure).

		@rtype:  dictionary
		@return: Accessibility information for each node.
		"""
		access_ = accessibility.accessibility(self.graph)
		access = {}
		
		for each in access_.keys():
			if (each[1] == 'n'):
				access[each[0]] = []
				for other in access_[each]:
					if (other[1] == 'n'):
						access[each[0]].append(other[0])
		
		return access