Pendiente y punto medio, por tramos, en un shapefile tipo línea (QGIS-GRASS)

El índice de alargamiento (Ia) de una cuenca hidrográfica se define como el cociente de la longitud del río y el ancho máximo de la cuenca perpendicular al río. Si se tiene digitalizado un río como un shapefile tipo línea, no se conoce su “expresión funcional” sino que se tiene la posibilidad de determinar las coordenadas de cada punto que constituye el shapefile. Cada par de puntos sucesivos constituye un tramo de recta para el cual puede estimarse su punto medio y la pendiente. Estos pueden usarse para estimar la expresión funcional de las rectas ortogonales que pasan por el punto medio de cada uno de esos tramos. Conocidas éstas sería posible encontrar las coordenadas de intersección con el shapefile de la cuenca, dos para cada línea ortogonal, cuyo valor máximo para la distancia sería el ancho máximo de la cuenca perpendicular al río.

Para probar parte del procedimiento se va a digitalizar un río (polilínea) y cuenca (polígono) arbitrarios, tal como se ve en la siguiente imagen:

antes de usar v.split con el shapefile tipo polilínea. Esta herramienta permite dividir en trozos la polilínea correspondiente al río; en este caso todos con 2 vértices. El comando, en cónsola de GRASS, corresponde a:

v.split input=rio output=rio_split vertices=2

La tabla atributiva contiene la misma categoría e id para cada uno de los 21 trozos en los cuales se dividió la polilínea y, por ahora, no pude asignarle categorías diferentes e id dentro del ambiente de GRASS. Por tanto, lo exporté al ambiente de QGIS para que ello fuese posible antes de re importarlo nuevamente con v.in.ogr.qgis. En este caso, la tabla atributiva tiene sólo dos columnas: cat e id. Se van a añadir en un sólo paso, con v.db.addcol en cónsola de GRASS, las siguientes columnas o campos: longitud, startx, starty, endx, endy, mean_x, mean_y, slope, slope_ort, b_ort. Corresponden, respectivamente para cada trozo de recta, a su longitud, coordenadas X,Y de su punto de comienzo, coordenadas X,Y de su punto de finalización, coordenadas X,Y de su punto medio y la pendiente. Los dos últimos corresponden a la pendiente y al intercepto en el origen de la recta ortogonal que pasa por el punto medio del segmento individual. Esta es la sintaxis del comando usado:

v.db.addcol map=rio_split layer=1 "columns=longitud double precision,startx double precision,starty double precision,endx double precision,endy double precision,mean_x double precision,mean_y double precision,slope double precision,slope_ort double precision,b_ort double precision"

y este es el resultado que se visualiza en la tabla atributiva:

Para determinar los valores correspondientes a cada campo estos son los comandos:

v.to.db map=rio_split type=line option=length col=longitud units=me
v.to.db map=rio_split type=line option=start col=startx,starty
v.to.db map=rio_split type=line option=end col=endx,endy
v.db.update map=rio_split layer=1 column=mean_x qcolumn='(startx+endx)/2'
v.db.update map=rio_split layer=1 column=mean_y qcolumn='(starty+endy)/2'
v.db.update map=rio_split layer=1 column=slope qcolumn='(endy-starty)/(endx-startx)'
v.db.update map=rio_split layer=1 column=slope_ort qcolumn='-1/slope'
v.db.update map=rio_split layer=1 column=b_ort qcolumn='mean_y-slope_ort*mean_x'

y éstos los resultados:

Las dos últimas columnas, como ya se mencionó, contienen la pendiente y el intercepto en el origen de las rectas ortogonales que pasan por el punto medio de cada segmento individual de la polilínea. Constituyen una familia de rectas donde una de ellas contiene el ancho máximo de la cuenca perpendicular al río.

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

Una respuesta a Pendiente y punto medio, por tramos, en un shapefile tipo línea (QGIS-GRASS)

  1. 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