class ApplyGravityProcedure(WorkerThread):
    def __init__(self, parentThread, impedance, rows, columns, model):
        WorkerThread.__init__(self, parentThread)
        self.gravity = GravityApplication(rows, columns, impedance, model)
        self.error = None

    def doWork(self):
        self.gravity.apply()
        self.emit(SIGNAL("finished_threaded_procedure( PyQt_PyObject )"), 0)
예제 #2
0
class ApplyGravityProcedure(WorkerThread):
    def __init__(self, parentThread, **kwargs):
        WorkerThread.__init__(self, parentThread)
        self.gravity = GravityApplication(**kwargs)
        self.error = None

    def doWork(self):
        self.gravity.apply()
        self.report = self.gravity.report
        self.emit(SIGNAL("finished_threaded_procedure( PyQt_PyObject )"), 0)
예제 #3
0
class ApplyGravityProcedure(WorkerThread):
    def __init__(self, parentThread, **kwargs):
        WorkerThread.__init__(self, parentThread)
        self.gravity = GravityApplication(**kwargs)
        self.error = None
        self.report = []

    def doWork(self):
        try:
            self.gravity.apply()
            self.report = self.gravity.report
        except ValueError as e:
            self.error = e
        self.finished_threaded_procedure.emit(0)
    def test_apply(self):
        args = {'impedance': matrix,
                'rows': row_vector,
                'row_field': 'rows',
                'columns': column_vector,
                'column_field': 'columns'}

        models = [('EXPO', model_expo), ('POWER', model_power), ('GAMMA', model_gamma)]

        for model_name, model_obj in models:
            args['model'] = model_obj
            distributed_matrix = GravityApplication(**args)
            distributed_matrix.apply()

            if distributed_matrix.gap > distributed_matrix.parameters['convergence level']:
                self.fail('Gravity application did not converge for model ' + model_name)
예제 #5
0
    def test_apply(self):
        args = {
            "impedance": matrix,
            "rows": row_vector,
            "row_field": "rows",
            "columns": column_vector,
            "column_field": "columns",
        }

        models = [("EXPO", model_expo), ("POWER", model_power), ("GAMMA", model_gamma)]

        for model_name, model_obj in models:
            args["model"] = model_obj
            distributed_matrix = GravityApplication(**args)
            distributed_matrix.apply()

            if distributed_matrix.gap > distributed_matrix.parameters["convergence level"]:
                self.fail("Gravity application did not converge for model " + model_name)
예제 #6
0
    def test_apply(self):
        args = {
            'impedance': matrix,
            'rows': row_vector,
            'row_field': 'rows',
            'columns': column_vector,
            'column_field': 'columns'
        }

        models = [('EXPO', model_expo), ('POWER', model_power),
                  ('GAMMA', model_gamma)]

        for model_name, model_obj in models:
            args['model'] = model_obj
            distributed_matrix = GravityApplication(**args)
            distributed_matrix.apply()

            if distributed_matrix.gap > distributed_matrix.parameters[
                    'convergence level']:
                self.fail('Gravity application did not converge for model ' +
                          model_name)
 def __init__(self, parentThread, impedance, rows, columns, model):
     WorkerThread.__init__(self, parentThread)
     self.gravity = GravityApplication(rows, columns, impedance, model)
     self.error = None
예제 #8
0
 def __init__(self, parentThread, **kwargs):
     WorkerThread.__init__(self, parentThread)
     self.gravity = GravityApplication(**kwargs)
     self.error = None
     self.report = []
예제 #9
0
# Impedance
imped = proj_matrices.get_matrix("base_year_assignment_skims")
imped.computational_view(["final_time_with_intrazonals"])

# If we wanted the main diagonal to not be considered...
# np.fill_diagonal(imped.matrix_view, np.nan)

# %%

for function in ["power", "expo"]:
    model = SyntheticGravityModel()
    model.load(join(fldr, f"{function}_model.mod"))

    outmatrix = join(proj_matrices.fldr, f"demand_{function}_model.aem")
    apply = GravityApplication()
    args = {
        "impedance": imped,
        "rows": vectors,
        "row_field": "origins",
        "model": model,
        "columns": vectors,
        "column_field": "destinations",
        "nan_as_zero": True,
    }

    gravity = GravityApplication(**args)
    gravity.apply()

    # We get the output matrix and save it to OMX too,
    gravity.save_to_project(name=f"demand_{function}_modeled",