4 votos

¿Asignación de puntos a sus respectivos Reaches mediante Stream Gradient?

Esta es la continuación de la pregunta que planteé inicialmente aquí .

Además, he adjuntado un shapefile en mi cuenta de Drop Box aquí .

Estoy intentando dividir una red de arroyos en tramos de 100 metros, asignando valores de elevación extraídos de un DEM, al inicio y al final de cada segmento, con el objetivo de determinar la pendiente de cada segmento.

Desde el punto de vista del proceso, no estoy enfocando esto correctamente. Hasta ahora, no he sido capaz de esos valores z a los nodos de inicio y final. Lo que he estado haciendo es segmentar la red de arroyos, y usando XTools, convertir las Características a Puntos, de nuevo, a intervalos de 100m. Se alinean con los segmentos, como se puede ver a continuación. A partir de ahí, puedo utilizar fácilmente XTools para extraer valores rasterizados y asignarlos a los puntos.

Lo que no puedo hacer es volver a asignar esos puntos a los alcances. Puedo coger uno de ellos, claro, pero no los dos. Por lo tanto, no puedo calcular el gradiente.

De nuevo, cualquier ayuda sería MUY apreciada, particularmente cualquier tipo de ejemplo de trabajo.

enter image description here

3voto

cjstehno Puntos 131

Existen varios tipos de soluciones. Vamos a centrarnos en las que no requieren ningún tipo de scripting.

Basado en la trama

En principio, el rango zonal de cada segmento proporciona la información adicional necesaria para calcular la pendiente: basta con dividirlo por la longitud del segmento. (El rango zonal es una de las estadísticas que devuelve un "resumen zonal" del MDE utilizando los segmentos como zonas).

En la práctica, esto debe corregirse porque los rangos suelen disminuir debido a los solapamientos de zonas en los extremos. La elevación de cada punto se asigna a uno solo de los segmentos.

En la mayoría de los casos, las cosas funcionarán de manera que cada segmento "mantenga" uno de sus puntos finales y pierda el otro en el segmento adyacente (puede comprobarlo visualmente convirtiendo los segmentos en una cuadrícula). Por lo tanto, dado que las elevaciones de los arroyos cambian monotónicamente, puede corregir los rangos extrapolándolos una celda más. Si 'c' es el tamaño de la celda y 'l' es la longitud del segmento, esta extrapolación equivale a multiplicar las pendientes estimadas por (l+c)/l. Si las longitudes de los arroyos son largas en comparación con la resolución del MDE (c << l), este ajuste no tiene consecuencias y puede ignorarse.

Basado en la ruta

Una forma elegante de crear los segmentos es convertir los flujos en "rutas" que sean "m-aware". Mediante una tabla de eventos (sólo una lista de nombres de arroyos y "kilometrajes" en sus tramos, fácilmente preparada con una hoja de cálculo o un programa corto) se crean entonces los segmentos como "eventos de línea" a lo largo de la ruta. Con casi la misma tabla puede crear los puntos finales de los segmentos como "eventos de punto". Como esto está bajo tu control, puedes incluir identificadores para los segmentos y los puntos, lo que te permitirá emparejarlos (mediante uniones de bases de datos) posteriormente.

Otros programas informáticos

¿Aún tienes ArcView 3? Puede extraer los valores DEM en los puntos finales del segmento con dos operaciones de Field Calculator, una para cada punto final. :-) Utilice la petición .Along (para obtener los puntos finales) y la petición .PointValue (para leer los valores DEM). Ejemplo:

av.FindDoc("View1").FindTheme("My Grid").GetGrid.PointValue([shape].Along(100), Prj.MakeNull)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X