Project Connections#

In this example, we show how to use AequilibraE’s database connections within a project.

# Imports
from uuid import uuid4
from tempfile import gettempdir
from pathlib import Path

import geopandas as gpd
import pandas as pd

from aequilibrae.utils.create_example import create_example
No pre-existing parameter file exists for this project. Will use default
# We create the example project inside our temp folder.
fldr = Path(gettempdir()) / uuid4().hex
project = create_example(fldr, "sioux_falls")

All AequilibraE projects presents four types of connections in the form of properties:

  • General connection to the project database

  • Spatial connection to the project database

  • General connection to the results database

  • Spatial connection to the transit database

Each connection can be easily accessed as follows:

with project.db_connection as conn:
    matrices = pd.read_sql("SELECT * FROM matrices", conn)
matrices
name file_name cores procedure procedure_id timestamp description
0 demand_omx demand.omx 1 None None 2020-11-24 08:47:18 Original data imported to OMX format
1 demand_mc demand_mc.omx 3 None None 2021-02-24 00:51:35 None
2 skims skims.omx 2 None None None Example skim
3 demand_aem demand.aem 1 None None 2020-11-24 08:46:42 Original data imported to AEM format


We encourage using spatial connections only when handling spatial data.

with project.db_connection_spatial as conn:
    nodes = gpd.read_postgis("SELECT zone_id, ST_AsBinary(geometry) geom FROM zones;", con=conn, geom_col="geom", crs=4326)
nodes.head()
zone_id geom
0 8 MULTIPOLYGON (((-96.705 43.5611, -96.70333 43....
1 10 MULTIPOLYGON (((-96.72833 43.538, -96.73 43.53...
2 7 MULTIPOLYGON (((-96.685 43.5611, -96.68333 43....
3 12 MULTIPOLYGON (((-96.78333 43.5178, -96.785 43....
4 9 MULTIPOLYGON (((-96.72833 43.54955, -96.73 43....


For accessing both results and transit databases, the procedure is the same.

When you’re done, don’t forget to close the project.

project.close()
This project at /tmp/6740f4171afa4284928926c2ad1c6519 is already closed

Total running time of the script: (0 minutes 1.970 seconds)

Gallery generated by Sphinx-Gallery