Exemplo n.º 1
0
    def test_weighted_catchment_with_gravity_weights(self):
        n = 5
        supply_grid = tu.create_nxn_grid(n)
        demand_grid = supply_grid
        cost_matrix = tu.create_cost_matrix(supply_grid, 'euclidean')

        self.model = access(demand_df=demand_grid,
                            demand_index='id',
                            demand_value='value',
                            supply_df=supply_grid,
                            supply_index='id',
                            supply_value='value',
                            cost_df=cost_matrix,
                            cost_origin='origin',
                            cost_dest='dest',
                            cost_name='cost')

        gravity = weights.gravity(scale=60, alpha=1)
        self.model.weighted_catchment(name='gravity', weight_fn=gravity)

        ids = [1, 5, 13, 19, 24]
        expected_vals = [
            1.322340210,
            1.322340210,
            0.780985109,
            0.925540119,
            1.133733026,
        ]

        for id, expected in zip(ids, expected_vals):
            actual = self.model.access_df.gravity_value.loc[id]

            self.assertAlmostEqual(actual, expected)
Exemplo n.º 2
0
    def setUp(self):
        n = 5
        supply_grid = tu.create_nxn_grid(n)
        demand_grid = supply_grid.sample(1)
        cost_matrix = tu.create_cost_matrix(supply_grid, 'euclidean')

        self.model = Access(demand_df = demand_grid, demand_index = 'id',
                            demand_value = 'value',
                            supply_df = supply_grid, supply_index = 'id',
                            supply_value = 'value',
                            cost_df   = cost_matrix, cost_origin  = 'origin',
                            cost_dest = 'dest',      cost_name = 'cost',
                            neighbor_cost_df   = cost_matrix, neighbor_cost_origin  = 'origin',
                            neighbor_cost_dest = 'dest',      neighbor_cost_name = 'cost')
Exemplo n.º 3
0
 def setUp(self):
     n = 5
     self.supply_grid = tu.create_nxn_grid(n)
     self.demand_grid = self.supply_grid.sample(1)
     self.cost_matrix = tu.create_cost_matrix(self.supply_grid, 'euclidean')