def accessibility(self): """ Accessibility matrix (transitive closure). @rtype: dictionary @return: Accessibility information for each node. """ return accessibility.accessibility(self)
def accessibility(self): """ Accessibility matrix (transitive closure). @rtype: list @return: Accessibility matrix """ return accessibility.accessibility(self)
def accessibility(self): """ Accessibility matrix (transitive closure). @rtype: dictionary @return: Accessibility information for each node. """ return accessibility.accessibility(self)
def accessibility(self): """ Accessibility matrix (transitive closure). @rtype: list @return: Accessibility matrix """ return accessibility.accessibility(self)
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
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