User:Beerforfree

From OpenStreetMap Wiki
Jump to navigation Jump to search

TUTORIAL PARA CREAR LINEAS DE INTERPOLACION CON SU NUMERACION CON QGIS

Pasos a seguir para generar líneas de interpolación y su numeración usando archivos shapes que contienen información de numeración de una localidad

Tareas realizadas en JOSM (se puede usar Overpass tanto en JOSM cómo en QGIS, las tareas 1, 2 y 3 se pueden hacer en QGIS tb)

EJEMPLO: Esto no descarga el límite de la localidad, Partido de Morón

**************************************

<osm-script output="xml" output-config="" timeout="250">

<query into="searchArea" type="area">

<has-kv k="admin_level" modv="" v="5"/>

<has-kv k="name" modv="" v="Partido de Morón"/>

</query>

<union into="_">

<query into="_" type="way">

<has-kv k="highway" modv="" regv="(motorway|trunk|primary|secondary|residential|tertiary)"/>

<area-query from="searchArea"/>

</query>

</union>

<print e="" from="_" geometry="skeleton" ids="yes" limit="" mode="body" n="" order="id" s="" w=""/>

<recurse from="_" into="_" type="down"/>

<print e="" from="_" geometry="skeleton" ids="yes" limit="" mode="skeleton" n="" order="quadtile" s="" w=""/>

</osm-script>

**************************************

1) Descargar localidad de OSM, como archivo .osm

Con JOSM descargar en pequeñas partes hasta completar la localidad, cortar aquellas calles que sobresalen los límites de la localidad

-Seleccionar la calle y el nodo dónde cortar P (split way)

La parte de la calle que no corresponde, quitar de la selección con CTRL + SHIFT + P (NO BORRAR). Repetir hasta completar la localidad

-Cargar los cambios, calles cortadas a OSM (upload data)

-Guardar archivo localidad.OSM

-DE AHORA EN MÁS NINGÚN CAMBIO SERÁ CARGADO AL SERVIDOR

(NO UPLOAD)

2) Filtrar solo calles

highway = residential, tertiary, primary, secondary

-Borrar todo lo restante, guardar el archivo como localidad1.osm

-Borrar toda aquel segmento de calle no numerable, puentes, tuneles, rotondas, links, calles sin nombre, etc

-Borrar centros de calles que cruzan boulevares y continuan de ambos lados, dejar aquellos que terminan en un lado.

-Guardar el archivo como localidad2.osm

3) Unir todos los segmentos de cada calle conviertiendolas en un solo way (en QGIS pueden obviar unir los segmentos)

Para ellos tendrán que borrar todos los tags a excepción del name (select all y borrar todo menos name)

Esto los obligará a tener un nombre único para toda la calle y luego para darle el sentido de la numeración creciente en el QGIS de un solo click para la calle completa y evitar olvidos

-Guardar el archivo como localidad3.osm

Tareas realizadas en QGIS

4) Crear proyecto nuevo

-Elegir como sistema de referencia EPSG 4326 (WGS 84, el que usa OSM)

-Cargar shape con numeración (vector layer)

-Abrir Layer Panel, de no estar habilitado, click derecho sobre un espacio vacio de menues → panel → habilitar Layer Panel

-Click derecho sobre el layer cargado → Propiedades → Labels: Seleccionar

→ Single labels y Label with: Numeración inicial derecha o izq

De ésta manera sabrenmos el sentido de la numeración creciente

- Cargar capa OSM desde el Browser Panel, si no está habilitado, click derecho sobre un espacio vacio de menues → panel → habilitar Browser Panel

-Buscar en el Browser Panel XYZ Tiles → Desplegar → Openstreetmap

- En el Layer Panel, cambiar el orden de los layers de ser necesario → shape por encima de Openstreetmap

5) Revisar geometria del shape, borrar elementos no deseados

-Tarea visual, pueden existir segmentos de calles repetidos, no entendibles, etc

-Abrir la tabla de atributos, usar PC con dos pantallas

-Click derecho sobre el layer del shape → Open Attribute Table → mover a 2da pantalla

Ahora podemos navegar el shape clickear sobre un elemento y ver que datos tiene

Ejecutar consultas sobre la tabla de atributos (dbf), ordenarla, etc con el fin de encontrar errores

Podemos abrir el archivo .dbf del shape (son 5 archivos) en un exel y realizar tareas de control, para ello nunca modifiquen el .dbf, guardenlo como .ods (LibreOffice) y ejecuten ahí sin modificar el .dbf

-Para editar el shape, click derecho Toggle Editing o de la tabla de atributos 1er ícono a la izq (lapíz)

6) Cargar localidad3.osm

-Usar el plugin QuickOSM Menu Plugins → Manage and install plugins → Buscar e instalar

- Menu Vector → QuickOSM → buscar localidad3.osm → cargar solo líneas

-Guardar el archivo como shape:

→ En layer panel, click derecho -→Export → Save feature as → seleccionar directorio y nombre osm1.shp conservar el mismo CRS (EPSG 4326)

7) Mostar sentido de líneas de osm

-click derecho sobre osm1 → Properties → Symbology → Seleccionar single symbol → Simple Line → Marker Line

→ en la ventana superior seleccionar: Simple Marker

→ en la ventana inferior selecionar triángulo orientado a la derecha

→ seleccionar color a conveniencia

8) Corregir sentido de la calle en osm1 coincidente con numeración creciente

-Usar plugin Swap Vector Direction (se instalará un icono en el menú con dos flechas circualres invertidas)

-En el layer panel seleccionar osm1, moverlo arriba de ser necesario, apagar la capa del mapa de osm

- Las triángulos deben apuntar en la misma dirección de la numeración creciente

en éste momento hay dos capas abiertas osm1 y el shape de la numeración, mostrando los números iniciales de cada cuadra.

-De no coinicidir invertir la calle de osm1 con el plugin Swap Vector Direction

-Toggle Editing → Seleccionar elemento → aplicar plugin para invertir su sentido

-Repetir la tarea para todas las calles

-Guardar archivo como osm2

9) Crear nodos en las intersecciones de calles (el shape es solo de líneas)

-Menu → Vector → Analysis Tools → Line Intersections

- seleccionar osm2 como Input layer e Interset layer

Esto crea un archivo temporario denominado Intersections

10) Crear un circulo sobre cada nodo de radio aprox de 16m

-Menu → Vector → Geoprocessing Tool → Buffer

Input layer: Intersections

Para usar metros deberiamos convertir el shape de WGS 84 a coordenadas planas o usar una distancia equivalente en grados. Ver tema de discusión en nuestra wiki. Para BA 1° aprox 110km

Distance = 0,00015 o 16m en coord planas

Esto nos crea otro archivo temporarios de nombre Buffered

11) Cortar las calles con el circulo creado en sus intersecciones

-Menu → Vector → Geoprocessing Tools → Symmetrical Difference

Input layer: osm2

Overlay layer: Buffered

Esto crea un archivo temporario Symetrical Difference

Cambiar el nombre al Buffered para no confundirlo con el próximo

12) Explotar las calles en elementos individuales, si bien están cortadas continuan siendo un único elemento

-Menu-→ Vector → Geometry Tools → Multipart to singlepart

Input layer: osm2

Aquí se pueden realizar tareas de limpieza, borrar calles ya numeradas o de numeración desconocida, tuneles o puentes que no serán numerados, etc

Esto crea un archivo temporario, guardarlo como osm3

13) Crear un centroide sobre el shape de numeración

-Menu → Vector → Geometry Tools → Centroids

Layer input: shape numeración

Esto crea un archivo temporario

14) Crear un circulo de radio conveniente sobre cada centroide, ver punto 10

El radio debe permitir intersectar el centroide con las lineas de osm3, pero solo con la contigua no con muchas. Las calles de osm y shape de numeración pueden estar desplazadas

15) Copiar numeración de shape de numeración a osm3

-Menu → Vector → Data Management Tools → Join Attributes by Location

Input layer: osm3

join layer: Buffered

Geometric predicate: intersects and/or touches

fields to add: seleccionar solo campos con numeración

join type: one to one

Tildar Discar records which could not be joined

Esto crea un archivo temporario joined…

eliminar los campos que no me interesan

Guardarlo como osm4

Corregir nombres de calles de ser necesario (abreviaturas, etc) en OSM también

Revisar y controlar antes de crear paralelas, corregir después toma más trabajo

16) Crear paralelas (las líneas de interpolación)

-Menu → Processing → Toolbox → Offset lines

Input layer: osm4

Distance: -0,00009 para las derechas +0,000009 para las izquierdas (10m en coord planas)

joined style: bevel

Luego de creado cada archivo temporario guardarlos como lineaDer / lineaIzq

Ahora cada paralela contiene: nombre y ambas numeraciones, podemos eliminar la numeración no deseada de cada paralela y dejar solo la par / impar, agregar campo addr completar todos los registros con even / odd guardar como lineaPar / lineaImpar

Eliminar registros que no tengan números (ejemplo: no hay línea de interp de un lado)

17) Agregar nodos a los extremos de cada línea de interp

Usar plugin Qchainage

Layer to chainage: lineaPar

tildar Only first and last point

Repetir para líneaImpar

17a) Agregar numeración a los nodos

Vector → Data Management Tool → Join Attributes by location

lInput ayer: chain_lineaPar

join layer: lineaPar

Geometric predicate: touches

Fields to add: name y ambos números

join type: one to one

idem con el impar

18) Asignar número a cada nodo (nodo inicial → número incial)

Agregar campo addr_house

Utilizar campo cngdegrees = 0 para determinar el nodo inicial

addr:house = if( "cngmeters" =0,"ParInicial", "ParFinal" )

Eliminar los campos innecesarios, conservar name y addr_house

Guardar archivo como NodoPar / NodoImpar

18a) Líneas de Interpolación

eliminar campos innecesarios: números y nombre, dejar solo addr even/odd

Tareas realizadas en JOSM (NO UPLOAD)

19) Instalar plugins: Shape tools y Conflation

20) Abrir shape lineaPar

-Guardar como .osm

-Seleccionar todas las líneas sin los nodos

→ Edit → Search → type:way

Editar el tag addr a addr:interpolation

Guardar

21) Abrir shape NodoPar

-Guardar como .osm

-Seleccionar todo

Editar tags → addr:housenumber, addr:street

Guardar

22) Abrir conflation tool

→ Configuración

-Cargar los 2 layers en el conflation tool

Seleccionar NodoPar cargar al plugin

Cambiar de layer, seleccionar solo los nodos de las líneas de interp, cargar al plugin

seleccionar todos los elementos de cada layer

Reference → NodoPar

Subject → Nodos de lineaPar

Metodo; uno a uno

distancia centroide < 0.1

tildar Merge y tags all

→ Generate Merges

→ si no hay conflictos, seleccionar todos los elementos dentro del conflation tool

→ Ejecutar conflation

Guardar archivo como InterpPar

Repetir para impares

23) Corregir líneas que se cortan en intersecciones que no son a 90° y demás detalles