Source code for aequilibrae.transit.route_system_reader.pattern_reader

import sqlite3

import shapely.wkb
import shapely.wkt
from shapely.ops import transform
from aequilibrae.utils.get_table import get_table

from aequilibrae.transit.transit_elements import Pattern


[docs] def read_patterns(conn: sqlite3.Connection, transformer): patterns = [] data = get_table("transit_patterns", conn).reset_index() if not data.shape[0]: return data.geo = data.geo.apply(shapely.wkb.loads) data.drop(columns=["matching_quality"], inplace=True) data.rename(columns={"pattern": "pattern_hash", "geo": "shape"}, inplace=True) for idx, dt in data.iterrows(): pat = Pattern(None, dt.route_id, None).from_row(dt) pat.shape_length = pat.best_shape().length if transformer: pat.shape = transform(transformer.transform, pat.shape) patterns.append(pat) return patterns