aequilibrae.distribution.ipf#
Classes
|
Iterative proportional fitting procedure |
- class aequilibrae.distribution.ipf.Ipf(project=None, **kwargs)[source]#
Iterative proportional fitting procedure
>>> from aequilibrae.distribution import Ipf >>> project = create_example(project_path) >>> matrix = project.matrices.get_matrix("demand_omx") >>> matrix.computational_view() >>> vectors = pd.DataFrame({"productions":np.zeros(matrix.zones), "attractions":np.zeros(matrix.zones)}, index=matrix.index) >>> vectors["productions"] = matrix.rows() >>> vectors["attractions"] = matrix.columns() >>> ipf_args = {"matrix": matrix, ... "vectors": vectors, ... "row_field": "productions", ... "column_field": "attractions", ... "nan_as_zero": False} >>> fratar = Ipf(**ipf_args) >>> fratar.fit() # We can get back to our OMX matrix in the end >>> fratar.output.export(Path(my_folder_path) / "to_omx_output.omx") >>> project.close()
- fit()[source]#
Runs the IPF instance problem to adjust the matrix
Resulting matrix is the output class member
- save_to_project(name: str, file_name: str, project=None) MatrixRecord [source]#
Saves the matrix output to the project file
- Arguments:
name (
str
): Name of the desired matrix recordfile_name (
str
): Name for the matrix file name. AEM and OMX supportedproject (
Project
, Optional): Project we want to save the results to. Defaults to the active project