Familia de rectas ortogonales que pasan por el punto medio de cada segmento individual de una polilínea

En el artículo anterior se consideró la estimación de la pendiente y el punto medio, por tramos, en un shapefile tipo línea que representaba un río. El objetivo era el de encontrar la ecuación de las rectas ortogonales que pasaban por cada uno de los puntos medios referidos anteriormente y así poder determinar el ancho máximo de la cuenca perpendicular al río; base del cálculo del índice de alargamiento (Ia) de una cuenca hidrográfica. Con la ecuación de las rectas ortogonales es posible generar dos puntos lo suficientemente alejados para garantizar que intersectarán los dos puntos correspondientes al shapefile tipo polígono correspondiente a la cuenca hidrográfica. Para ello, con la herramienta de medida del software GIS, se midió la diagonal del polígono de extensión de la cuenca (d) y ésta (135000 m) se usó para generar un punto por encima y otro por debajo del punto medio (mean_x, mean_y) de cada tramo lineal del shapefile. Las ecuaciones para generar las coordenadas X, Y fueron:

Xn =  d/raiz(slope_ort*slope_ort+1) + mean_x
Yn =  slope_ort*Xn + b_ort
Xs = -d/raiz(slope_ort*slope_ort+1) + mean_x
Ys =  slope_ort*Xs + b_ort

Los campos Xn, Yn, Xs y Ys se generaron en un sólo comando en cónsola de GRASS con:

v.db.addcol map=rio_split layer=1 "columns=Xn double precision,Yn double precision,Xs double precision,Ys double precision"

Como no fue posible activar el cálculo de raíces cuadradas con v.db.update de GRASS-QGIS, los pares de puntos de las rectas ortogonales fueron producidos en ambiente de QGIS (con la calculadora de campos); tal como se observa en la tabla atributiva siguiente:

Las 4 últimas columnas se dispusieron en el archivo de texto siguiente:

id	X	Y	grupo
1	669530.512986028000000000	899750.709612521000000000	1
2	744809.082330936000000000	973772.731122348000000000	2
3	665784.743256632000000000	901023.411345874000000000	3
4	632777.213946201000000000	1164510.520101050000000000	4
5	750924.682465952000000000	961069.476675550000000000	5
6	653474.468253951000000000	899462.513552163000000000	6
7	748266.966906702000000000	948437.926890026000000000	7
8	654278.451934992000000000	1171928.297138750000000000	8
9	742319.216173637000000000	935058.728744568000000000	9
10	747829.058682687000000000	939960.746647529000000000	10
11	791692.099840345000000000	1059267.804270040000000000	11
12	704789.932732365000000000	917831.504244939000000000	12
13	792915.492257039000000000	1006264.038768480000000000	13
14	787734.782883989000000000	993658.518886006000000000	14
15	697455.418735116000000000	924820.653482349000000000	15
16	728415.206385561000000000	1183988.399165360000000000	16
17	698803.308252745000000000	920513.799513323000000000	17
18	801307.312572428000000000	968519.302565125000000000	18
19	819513.426587499000000000	993910.805371672000000000	19
20	717467.316207744000000000	1200971.355083150000000000	20
21	825907.388309013000000000	991904.449506702000000000	21
22	566728.013861972000000000	1149413.774910230000000000	1
23	496639.885717064000000000	1080130.851884350000000000	2
24	580403.323275368000000000	1157167.927433930000000000	3
25	626499.791261799000000000	894583.504105169000000000	4
26	520538.575990048000000000	1101860.960590150000000000	5
27	627466.987174049000000000	1168207.022199090000000000	6
28	542152.685493298000000000	1122842.350565100000000000	7
29	645845.068793008000000000	902060.036595244000000000	8
30	566605.487458363000000000	1140057.961769900000000000	9
31	565383.400721313000000000	1138992.356928510000000000	10
32	523777.073127655000000000	1025778.425930960000000000	11
33	616772.366859635000000000	1173082.181223160000000000	12
34	536770.976168961000000000	1091645.458749670000000000	13
35	546239.441314011000000000	1114406.189670990000000000	14
36	649156.401424884000000000	1190465.538482730000000000	15
37	637604.350432440000000000	929718.093307480000000000	16
38	687075.327933255000000000	1190258.965322880000000000	17
39	598111.605001572000000000	1146315.546689620000000000	18
40	587352.645750501000000000	1131756.268993640000000000	19
41	701133.666666256000000000	931465.859976551000000000	20
42	603074.476962987000000000	1144369.178611680000000000	21

se cargó al ambiente de QGIS como archivo de texto delimitado por espacios, se grabó como shapefile de puntos (familia_puntos) y se convirtió en shapefile de líneas (famila_lineas) con SAGA GIS; usando como campo de agrupación precisamente grupo.

Esta es una panorámica que resulta de cargar simultáneamente familia_puntos y famila_lineas en la vista que incluye la cuenca y el río arbitrarios del artículo pasado:

Al hacer un acercamiento (zum) se puede observar que esta familia de rectas son las ortogonales al punto medio de cada segmento de recta que constituye la polilínea:

Ahora sólo resta determinar los puntos de intersección de la familia de rectas con el shapefile de la cuenca y estimar la distancia máxima perpendicular al río.

Esta entrada fue publicada en GRASS, QGIS, SIG, Software Libre. Guarda el enlace permanente.

2 respuestas a Familia de rectas ortogonales que pasan por el punto medio de cada segmento individual de una polilínea

  1. Pingback: Script de python para introducir resultados de operaciones complejas en registros de tablas (driver dbf) con db.execute (GRASS-QGIS) |

  2. Pingback: Script de python para determinar el índice de alargamiento de una Cuenca Hidrográfica |

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s