pgr_analyzeOneWay¶
pgr_analyzeOneWay
— Analiza las calles de sentido unidireccional e identifica los segmentos volteados.
Esta función analiza las calles unidireccionales en un gráfico e identifica cualquier segmentos invertido.
Disponibilidad
Versión 2.0.0
Función oficial
Descripción¶
El análisis de segmentos que tienen un solo sentido es bastante simple, pero a la vez ser una herramienta poderosa para identificar algunos problemas potenciales que son creados al establecer la dirección de un segmento de la manera equivocada. Un nodo es un source si tiene bordes que salen de ese nodo y no hay bordes que entren a ese nodo. Por el contrario, un nodo es un`sink` si todos los bordes entran al nodo pero ninguno sale de ese nodo. Para un nodo source es lógicamente imposible existir porque ningún vehículo puede salir del nodo o si algún vehículo logró entrar en el nodo. Asimismo, si tuvieras un nodo sink tienes un número infinito de vehículos que se van acumulando en este nodo porque no pueden salir de el.
Así que ¿por qué nos importa si no es factibles? Si la dirección de un borde se revirtió por error podríamos generar exactamente en estas condiciones. Pensar en una carretera dividida y en el carril que va al norte un segmento o varios segmentos fueron introducidos al revés, o tal vez esto sucedió en una glorieta. El resultado sería potencialmente un nodo source y/o a sink node.
Así contando el número de aristas entrantes y salientes de cada nodo podemos identificar los nodos source y sink, así que usted puede mirar esas áreas de su red para hacer reparaciones o informar del problema a su proveedor de datos.
Pre-requisitos
La tabla de bordes debe ser analizada debe contener una columna de origen y una columna de destino llena con los identificadores de los vértices de los segmentos y los vértices correspondientes de la tabla <edge_table>_vertices_pgr que almacena la información de los vértices.
Use pgr_createVerticesTable para crear la tabla de vértices.
Use pgr_createTopology para crear la topología y los vértices.
Firmas¶
text pgr_analyzeOneWay(geom_table text,
text[] s_in_rules, text[] s_out_rules,
text[] t_in_rules, text[] t_out_rules,
text oneway='oneway', text source='source', text target='target',
boolean two_way_if_null=true);
Parámetros¶
- edge_table
text
La tabla de la red. (puede contener el nombre del esquema)- s_in_rules
text[]
reglas de entrada del nodo inicial- s_out_rules
text[]
reglas de salida del nodo inicial- t_in_rules
text[]
reglas de entrada del nodo final- t_out_rules
text[]
reglas de salida del nodo final- oneway
text
El nombre de la columna del sentido. El valor por defecto esoneway
.- source
id``Nombre de columna de origen de la tabla de red. El valor predeterminado es``source
.- target
text
El nombre de la columna del nodo de llegada del segmento. El valor por defecto estarget
.- two_way_if_null
boolean
bandera para tratar los valores NULL de oneway como bidireccional. Valor predeterminado es``true``.
Nota
Es ampliamente recomendable usar la notación nombrada como en los siguientes ejemplos: pgr_createVerticesTable o pgr_createTopology
La función devuelve:
OK
Cuando el análisis ha terminado.Utiliza la tabla de los vértices: <edge_table>_vertices_pgr.
Se llena completamente las columnas de la tabla de vértices
ein
yeout
.
FAIL
cuando el análisis no se completó debido a un error.No se encuentra en la tabla de los vértices.
Una columna de la tabla de red requerida no se encuentra o no es del tipo apropiado.
Los nombres de origen, destino o oneway son las mismos.
Las reglas se definen como un conjunto de textos que si encajan con el valor de oneway
se contara como true
para las condiciones de el origen o destino in o out .
La tabla de vértices
Los vértices pueden ser creados con pgr_createVerticesTable o pgr_createTopology
La estructura de la tabla de los vértices es:
- id
bigint
identificador del vértice.- cnt
integer
Número de vértices en edge_table que hacen referencia a este vértice. Consulte pgr_analyzeGgraph.- chk
integer
Indicador de que el vértice podría tener un problema. Consulte pgr_analyzeGraph.- ein
integer
número de vértices en la edge_table que hacen referencia a este vértice como entrante.- eout
integer
número de vértices en la edge_table que hacen referencia a este vértice como saliente.- the_geom
geometry
Valor de la geometría POINT del vértice.
Ejemplos Adicionales¶
SELECT pgr_analyzeOneWay('edge_table',
ARRAY['', 'B', 'TF'],
ARRAY['', 'B', 'FT'],
ARRAY['', 'B', 'FT'],
ARRAY['', 'B', 'TF'],
oneway:='dir');
NOTICE: PROCESSING:
NOTICE: pgr_analyzeOneway('edge_table','{"",B,TF}','{"",B,FT}','{"",B,FT}','{"",B,TF}','dir','source','target',t)
NOTICE: Analyzing graph for one way street errors.
NOTICE: Analysis 25% complete ...
NOTICE: Analysis 50% complete ...
NOTICE: Analysis 75% complete ...
NOTICE: Analysis 100% complete ...
NOTICE: Found 0 potential problems in directionality
pgr_analyzeoneway
-------------------
OK
(1 row)
Las consultas utilizan la red Datos Muestra .
Ver también¶
Topología - Familia de Funciones para obtener una visión general de una topología para algoritmos de ruteo.
Análisis de gráficas para tener una visión general del análisis de un gráfico.
pgr_analyzeGraph para analizar los bordes y vértices de la tabla de bordes.
pgr_createVerticesTable para reconstruir la tabla de vértices en función de la información de origen y de destino.
Índices y tablas