ES:Colombia/Guía para mapear/transporte público/Bogotá/QA
< ES:Colombia | Guía para mapear | transporte público | Bogotá
Jump to navigation
Jump to search
Esta es la guía de aseguramiento de la calidad (Quality Assurance) del mapeo de transport público de Bogotá.
Se compone de muchas consultas Overpass que identifican los elementos mal mapeados.
bus_stop: Señal de paradero
[out:xml][timeout:25]; area[name="Bogotá"][admin_level=7][boundary=administrative]->.searchArea; ( node["highway"="bus_stop"][!"name"](area.searchArea); ); out meta; >; out meta qt;
[out:xml][timeout:25]; area[name="Bogotá"][admin_level=7][boundary=administrative]->.searchArea; ( node["highway"="bus_stop"]["ref"]["ref"!~"^[0-9]{3}[_A][0-1]{1}[0-9]{1}"](area.searchArea); ); out meta; >; out meta qt;
[out:xml][timeout:25]; area[name="Bogotá"][admin_level=7][boundary=administrative]->.searchArea; ( way["highway"="bus_stop"](area.searchArea); relation["highway"="bus_stop"](area.searchArea); ); out meta; >; out meta qt;
platform: Zona de espera
- public_transport=platform con nombre. Se debería crear una relación y pasar el nombre allá. Si la relación ya existe, entonces quitar el nombre para quitar datos redundantes.
[out:xml][timeout:25]; area[name="Bogotá"][admin_level=7][boundary=administrative]->.searchArea; ( way["public_transport"="platform"]["name"](area.searchArea); ); out meta; >; out meta qt;
- public_transport=platform con ref. Se debería crear una relación y pasar el ref allá. Si la relación ya existe, entonces quitar el ref para quitar datos redundantes.
[out:xml][timeout:25]; area[name="Bogotá"][admin_level=7][boundary=administrative]->.searchArea; ( way["public_transport"="platform"]["ref"](area.searchArea); ); out meta; >; out meta qt;
- public_transport=platform sobre un nodo (o una relación - algo inválido). En Bogotá ya no hay paraderos sin al menos una línea amarilla como plataforma
[out:xml][timeout:25]; area[name="Bogotá"][admin_level=7][boundary=administrative]->.searchArea; ( node["public_transport"="platform"](area.searchArea); relation["public_transport"="platform"](area.searchArea); ); out meta; >; out meta qt;
stop_position: Lugar donde se detiene el bus
- public_transport=stop_position con name. Se debería crear una relación y pasar el nombre allá. Si la relación ya existe, entonces quitar el nombre para quitar datos redundantes.
[out:xml][timeout:25]; area[name="Bogotá"][admin_level=7][boundary=administrative]->.searchArea; ( node["public_transport"="stop_position"]["name"](area.searchArea); ); out meta; >; out meta qt;
- public_transport=stop_position con ref. Se debería crear una relación y pasar el ref allá. Si la relación ya existe, entonces quitar el ref para quitar datos redundantes.
[out:xml][timeout:25]; area[name="Bogotá"][admin_level=7][boundary=administrative]->.searchArea; ( node["public_transport"="stop_position"]["ref"](area.searchArea); ); out meta; >; out meta qt;
- public_transport=stop_position sobre un way o una relación - inválido.
[out:xml][timeout:25]; area[name="Bogotá"][admin_level=7][boundary=administrative]->.searchArea; ( way["public_transport"="stop_position"](area.searchArea); relation["public_transport"="stop_position"](area.searchArea); ); out meta; >; out meta qt;
stop_area: Relaciones
- Relaciones public_transport=stop_area sin nombre de paradero name=*. Se debe buscar el nombre de paradero.
[out:csv(::id, ref, name)]; area[name="Bogotá"][admin_level=7][boundary=administrative]->.searchArea; ( relation["type"="public_transport"]["public_transport"="stop_area"][!"name"](area.searchArea); ); out meta;
- Relaciones public_transport=stop_area que no tienen el número de paradero como ref. Toca buscar el código del paradero para incluirlo. Sí tiene varios cobertizos, el código de paradero se cambia para la relación, de manera que en vez de tener una letra en la mitad, tiene el caracter barra baja _. Esto debido a que el conjunto de cobertizos pertenece al mismo paradero (nombre), pero cada cobertizo tiene código diferente.
[out:csv(::id, ref, name)]; area[name="Bogotá"][admin_level=7][boundary=administrative]->.searchArea; ( relation["type"="public_transport"]["public_transport"="stop_area"][!"ref"](area.searchArea); ); out meta;
- Relaciones public_transport=stop_area que no tienen un número válido para ref. El código de paradero tiene el formato XXXAYY. Si solo hay un cobertizo se conserva la letra A, si tiene múltiples se cambia la letra del medio por _ (barra baja) para abarcar todos los cobertizos de una misma área de paradero. Esto debido a que el conjunto de cobertizos pertenece al mismo paradero (nombre), pero cada cobertizo tiene código diferente.
[out:csv(::id, ref, name)]; area[name="Bogotá"][admin_level=7][boundary=administrative]->.searchArea; ( relation["type"="public_transport"]["public_transport"="stop_area"]["ref"]["ref"!~"^[0-9]{3}[_A][0-1]{1}[0-9]{1}"](area.searchArea); ); out meta;
- Relaciones public_transport=stop_area sin network=*. Se debe agregar network=SITP.
[out:csv(::id, ref, name)]; area[name="Bogotá"][admin_level=7][boundary=administrative]->.searchArea; ( relation["type"="public_transport"]["public_transport"="stop_area"][!"network"](area.searchArea); ); out meta;
[out:csv(::id, ref, name)]; area[name="Bogotá"][admin_level=7][boundary=administrative]->.searchArea; ( relation["type"="public_transport"]["public_transport"="stop_area"]["network"!="SITP"](area.searchArea); ); out meta;
- public_transport=stop_area en nodos o way es incorrecto, por lo que se deberían cambiar o quitar.
[out:xml][timeout:25]; area[name="Bogotá"][admin_level=7][boundary=administrative]->.searchArea; ( node["public_transport"="stop_area"](area.searchArea); way["public_transport"="stop_area"](area.searchArea); ); out meta; >; out meta qt;
Otros elementos inválidos
- Uso de public_transport=pole es inválido para el nuevo esquema de mapeo. Se deberían quitar la etiqueta o remover el nodo.
[out:xml][timeout:25]; area[name="Bogotá"][admin_level=7][boundary=administrative]->.searchArea; ( nwr["public_transport"="pole"](area.searchArea); ); out meta; >; out meta qt;
[out:xml][timeout:25]; area[name="Bogotá"][admin_level=7][boundary=administrative]->.searchArea; ( nwr["public_transport"][~"^ref:.*"~".*"](area.searchArea); ); out meta; >; out meta qt;
[out:xml][timeout:25]; area[name="Bogotá"][admin_level=7][boundary=administrative]->.searchArea; ( nwr["public_transport"]["network"]["network"!="SITP"](area.searchArea); ); out meta; >; out meta qt;
- La etiqueta area=* es innecesaria en cualquier elemento de public_transport=*.
[out:xml][timeout:25]; area[name="Bogotá"][admin_level=7][boundary=administrative]->.searchArea; ( nwr["public_transport"]["area"](area.searchArea); ); out meta; >; out meta qt;
- La etiqueta highway=bus_stop en un elemento que tiene public_transport=*. No deben estar juntas. Una es usada para la tabla de rutas, y las plataformas del SITP tienen que ser way (no nodos).
[out:xml][timeout:25]; area[name="Bogotá"][admin_level=7][boundary=administrative]->.searchArea; ( nwr["highway"="bus_stop"]["public_transport"](area.searchArea); ); out meta; >; out meta qt;
- Los public_transport=platform y public_transport=stop_position que no hacen parte de un public_transport=stop_area.
[out:xml][timeout:25]; area[name="Bogotá"][admin_level=7][boundary=administrative]->.searchArea; node(area.searchArea)[public_transport~'stop_position|platform']->.a; rel(bn.a)[public_transport=stop_area]; node(r)->.b; (.a; - .b;); out meta;
- Un public_transport=stop_position sin un public_transport=platform a menos de 50 metros. En este caso, falta mapear el public_transport=platform.
[out:xml][timeout:25]; area[name="Bogotá"][admin_level=7][boundary=administrative]->.searchArea; node(area.searchArea)[public_transport=stop_position]->.a; ( node(area.searchArea)[public_transport=platform]; way(area.searchArea)[public_transport=platform]; rel(area.searchArea)[public_transport=platform]; ); node(around:50.0)[public_transport=stop_position]->.b; (.a; - .b;); out meta;
- Un public_transport=platform sin un public_transport=stop_position a menos de 50 metros. En este caso, falta mapear el public_transport=platform.
[out:xml][timeout:25]; area[name="Bogotá"][admin_level=7][boundary=administrative]->.searchArea; ( node(area.searchArea)[public_transport=platform]; way(area.searchArea)[public_transport=platform]; rel(area.searchArea)[public_transport=platform]; )->.a; node(area.searchArea)[public_transport=stop_position]; ( node(around:50.0)[public_transport=platform]; way(around:50.0)[public_transport=platform]; rel(around:50.0)[public_transport=platform]; )->.b; (.a; - .b;); out meta;
- La etiqueta public_transport:version=* está en un objeto diferente a type=route.
[out:xml][timeout:25]; area[name="Bogotá"][admin_level=7][boundary=administrative]->.searchArea; ( nwr["public_transport:version"]["type"="route"](area.searchArea); ); out meta; >; out meta qt;
- La etiqueta public_transport:version=* tiene un valor diferente a public_transport:version=2.
[out:xml][timeout:25]; area[name="Bogotá"][admin_level=7][boundary=administrative]->.searchArea; ( nwr["public_transport:version"]["public_transport:version"!="2"](area.searchArea); ); out meta; >; out meta qt;
Enlaces de interés
Aquí hay algunos artículos que pueden ayudar al aseguramiento de la calidad.