Skip to content

jgcasta/siglibre2018

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Jornadas de SIG Libre 2018 - Uso de fuentes abiertas de datos de tráfico en DATEX II y seguridad vial

José Gómez Castaño @jgcasta jgcasta@inspide.com

Juan José Cabrera García jjcabrera@inspide.com

Sobre qué hablaremos

  • INSPIDE
  • Modelos UML y XML
  • Qué es DATEX
  • Modelo de Datos
  • Herramientas necesarias
  • Parseo del XML o JSON
  • Integración de la informacion en un mapa
  • Casos de uso reales

Introducción

  • Condolencias a los que tengáis que utilizar este esquema
  • DATEX se concibió como un estandar de intercambio de datos entre organismos de tráfico.
  • Actualmente se encuentra la especificación DATEXII que es una extensión para permitir el intercambio con organizaciones privadas
  • Es un estandard multiparte, mantenido por el CEN Technical Committee 278, CEN/TC278, (Road Transport and Traffic Telematics) dividido en 3 partes:
    • Contexto y framework: metodología del modelado
    • Localización
    • Información de tráfico
  • Usos principales
    • Administración de rutas y reorganización
    • Administración de la infraestructura
    • Enlazado de la administración del tráfico con los sistemas de información
  • Responde a un modelo UML establecido
  • En contra: Necesidad de mejorar el modelo para hacerlo más eficiente
  • A favor: Es un estándard y todos hablan el mismo lenguaje

Qué es DATEX

Práctica

Dioagrama

  • Obtener los datos de las cámaras de tráfico desde el portal estadístico de DGT - http://www.dgt.es
  • Parsear los datos a un GeoJSON
$ xml2json camaras.xml camaras.json
#!/usr/bin/env python
# -*- coding: utf-8

'''
    Actualiza la tabla incidgt con las ultimas incidencias publicadas por le DGT en DATEX

   pip install json
   sudo apt-get install nodejs
   sudo apt-get install npm
   sudo apt-get install python-pip

   sudo aptitude install npm

'''

import json
import sys

reload(sys)
sys.setdefaultencoding('utf8')

f=open("datos.json","w")

salida = ""
salida = salida + "["


with open('ejemplos/camaras.json') as j:
    data = json.load(j)
    fecha_publicacion =  data['_0:d2LogicalModel']['_0:payloadPublication']['_0:publicationTime']

    lista_camaras = data['_0:d2LogicalModel']['_0:payloadPublication']['_0:genericPublicationExtension']['_0:cctvSiteTablePublication']['_0:cctvCameraList']['_0:cctvCameraMetadataRecord']

    for camara in lista_camaras:
        id = camara['id']
        version = camara['version']
        identificacion = camara['_0:cctvCameraIdentification']
        tipo = camara['_0:cctvCameraType']
        lat = camara['_0:cctvCameraLocation']['_0:locationForDisplay']['_0:latitude']
        lon = camara['_0:cctvCameraLocation']['_0:locationForDisplay']['_0:longitude']
        url = camara['_0:cctvStillImageService']['_0:stillImageUrl']['_0:urlLinkAddress']

        salida = salida + "{"
        salida = salida + "    \"type\": \"Feature\","
        salida = salida + "    \"geometry\": {"
        salida = salida + "        \"type\": \"Point\","
        salida = salida + "            \"coordinates\": [" + str(lon) + ", " + str(lat) + "]"
        salida = salida + "        },"
        salida = salida + "    \"properties\":"
        salida = salida + "        {"
        salida = salida + "            \"id\": \"" + str(id) + "\","
        salida = salida + "            \"identificacion\": \"" + str(identificacion) + "\","
        salida = salida + "            \"url\": \"" + str(url) + "\""
        salida = salida + "        }"
        salida = salida + "},"

salida = salida[0:len(salida)-1]

salida = salida + "]"
f.write(salida)
f.close()

Aplicaciones prácticas en Seguridad Vial

  • Integración Comobity

Integración Comobity

  • Integración Auxilio en Carretera

Integración Auxilio en Carretera

  • DGT 3.0

DGT 3.0

Referencias

Herramientas

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published