Teoría:

La información geoespacial y las herramientas para trabajarla han tenido una revolución en los últimos años. Algunos factores relevantes son:

Fases generales de un proyecto de mapas

Estas fases no son estrictamente secuenciales y generalmente se está volviendo atrás y repitiendo el ciclo.

Algunos ejemplos personales

Algunas herramientas útiles y sus fortalezas

herramienta/fase obtención y creación depuración análisis y visualiz. distribución
QGIS +++ +++ +++ ++ (pdf)
Openstreetmap +++     +++ (osm)
GPS +++     ++ (gpx)
Celular intelig. ++ +   +++ (apps)
Leaflet     + +++ (web)
Mapbox + + +++ +++ (web)
Open Refine   ++ +  
KeplerGL   + +++ ++
Python + Pandas   +++ +++ ++ (pdf o web)

Práctica

El ejercicio consiste en revisar cómo se distribuyen los distintos tipos de intersecciones viales en Santiago, y cómo se relaciona esta distribución con los atropellos. Vamos a obtener los datos de la CONASET Y Openstreetmap/Overpass, revisarlos y ordenarlos con Open Refine, y visualizarlos con KeplerGL. Si alcanza el tiempo vamos a ver cómo hacer un mapa web básico con Geojson.io y Leaflet.

Paso 1, obtención de la información

Intersecciones semaforizadas

/*
CONSULTA:
*/
[out:json][timeout:25];
// gather results
(
  // query part for: “highway=traffic_signal”
  node["highway"="traffic_signals"]();
);
// print results
out body;
>;
out skel qt;

Atropellos

Bonus: autopistas

Paso 2, depuración

Paso 3, visualización con KEPLER.gl

Kepler es una librería desarrollada por UBER para visualizar grandes cantidades de información usando pocos recursos (computacionales) se utiliza por ejemplo para visualizar miles de viajes simultáneos en una ciudad.

Bonus, mapa web con la casa de cada uno

Para esto vamos a usar la librería de mapas web llamada Leaflet.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    
</body>
</html>

Código terminado

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>

    <!-- leaflet -->
    <link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css"
        integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ=="
        crossorigin="" />

    <!-- Make sure you put this AFTER Leaflet's CSS -->
    <script src="https://unpkg.com/[email protected]/dist/leaflet.js"
        integrity="sha512-GffPMF3RvMeYyc1LWMHtK8EbPv0iNZ8/oTtHPx9/cc2ILxQ+u905qIwdpULaqDkyBKgOaB57QTMg7ztg8Jm2Og=="
        crossorigin=""></script>

    <style>
        #mapid {
            height: 600px;
        }
    </style>

</head>

<body>
    <div id="mapid"></div>

    <script>
        var mymap = L.map('mapid').setView([-33.4371, -70.6376], 13);
        L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
            attribution: 'Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors',
            maxZoom: 18,            
        }).addTo(mymap);

        var marker = L.marker([-33.4371, -70.6376]).addTo(mymap);


    </script>
</body>

</html>

FIN