[Spanish] Como unir fragmentos de líneas por sus extremos

Ulises Ibarra ulisesmartinibarra at gmail.com
Mon Jul 27 16:06:38 PDT 2015


Jorge, Raquel:

Muchas gracias. Me pasó mi amiga su archivo shape y resulta que trae un
campo de tiempo llamado "Fecha de l", pensaba que era el tiempo, pero viene
algunas veces vacio y otras con entradas con formatos distintos entre si.
Entonces me imagino que no podré usar el tiempo para unir los puntos por
líneas según el orden en que fueron levantados en campo por el navegador
gps.

Hice lo siguiente, lo que sugirió Raquel hasta el punto 2, o sea, obtener
una tabla de puntos con ID, the_geom (que le puse geom) y una cosa que es
llamada "path" (¿saben que es?)

*unirlineasrotas=# SELECT (ST_Dumppoints(geom)).path as path, id,
ST_AsText((ST_Dumppoints(geom)).geom) FROM lineasrotas;*

Da algo como esto:
           path   |  id  |                 st_astext
----------+------+-------------------------------------------
 {1,1}    | 1950 | POINT(-99.1297539372031 19.505867410611)
 {1,2}    | 1950 | POINT(-99.1299497395282 19.5056639233386)
 {1,3}    | 1950 | POINT(-99.1303380033786 19.5051778712592)
 {1,4}    | 1950 | POINT(-99.130572731163 19.5048659036502)
 {1,5}    | 1950 | POINT(-99.1308129585516 19.5043573631978)
 {1,6}    | 1950 | POINT(-99.1312777220422 19.5030917576678)
 {1,7}    | 1950 | POINT(-99.1313477598904 19.5027866866258)
 {1,8}    | 1950 | POINT(-99.1317059511953 19.5008501125218)
 {1,9}    | 1950 | POINT(-99.132103766927 19.4985768563207)
 {1,10}   | 1950 | POINT(-99.1326408498902 19.4954584771179)
 {1,11}   | 1950 | POINT(-99.1327967590812 19.4945591172585)
 {1,12}   | 1950 | POINT(-99.1328387901805 19.4942450282798)
 {1,13}   | 1950 | POINT(-99.1329879548804 19.4934767189515)

¿Creo que está todo perdido, verdad? ¿o será que el tiempo viene en otro
lado y no en una columna del archivo DBF?

Saludos y gracias

Ulises





El 24 de julio de 2015, 5:13, Alegre, Raquel <r.alegre at ucl.ac.uk> escribió:

>  Hola Ulises,
>
>  Posiblemente no la mejor solución, pero una posibilidad. Ten en cuenta
> que yo soy algo nueva en esto y seguro que otra gente puede ayudar mejor,
> pero ahi va mi intento:
>
>  1. - Yo ingeriría el shapefile en una DB PostGIS con ogr2ogr[1], por
> ejemplo. Algo como:
>
>  ogr2ogr -f "PostgreSQL" PG:"dbname=db etc" shapefile.shp
>
>  2.- Luego extraería los puntos junto con las IDs y los tiempos de las
> rutas en una tabla, usando ST_DumpPoints[2].
>
>  3.- A partir de la tabla de puntos, con ST_Makeline[3], ordenando los
> puntos por tiempos y agrupando por ID, te quedaría una tabla de LINESTRINGS
> con una entrada por ruta, con todos los puntos unidos en orden. Por ejemplo:
>
>  CREATE TABLE route_lines
> AS (
>     SELECT id,
>         count(*) AS points_count,
>         ST_MakeLine(location order by time) AS trajectory
>     FROM (
>         SELECT *
>         FROM route_points
>     )
>     AS lines
>     GROUP BY id
> );
>
>  Probablemente esto se puede hacer en un solo paso, pero mi SQL no llega
> a tanto, me temo 0:-)
>
>  Espero que ayude!
>
>  [1] http://www.gdal.org/drv_pg.html
> [2] http://postgis.net/docs/ST_DumpPoints.html
> [3] http://postgis.net/docs/ST_MakeLine.html
>
>
>   From: Ulises Ibarra
> Reply-To: Capítulo Local de la comunidad hispano-hablante
> Date: Friday, 24 July 2015 07:21
> To: Capítulo Local de la comunidad hispano-hablante
> Subject: [Spanish] Como unir fragmentos de líneas por sus extremos
>
>  Muy estimada lista:
>
>  Tengo una duda enorme. Una amiga de comenta que tiene un archivo shp con
> 1500 rutas de GPS, cada ruta con un ID. Pero esas rutas tienen
> duscontinuidades, es decir, están rotas y ella quiere unirlas de forma más
> o menimos automática. ¿Podrían decirme sí hay algo que pueda hacer?
>
>  Gracias por adelantado
>
>  Ulises
>
> _______________________________________________
> Spanish mailing list
> http://lists.osgeo.org/mailman/listinfo/spanish
> http://es.osgeo.org
> http://twitter.com/osgeoes
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/spanish/attachments/20150727/fb659f9b/attachment-0001.html>


More information about the Spanish mailing list