Keywords: dem
profile
feature-vertices-to-points
python
A partir de las capas de hidrografía y vías, seleccione y/o complete un drenaje principal que como mínimo tenga 10 km de longitud, y un tramo de vía principal con cobertura municipal, integre y cree una capa de líneas de muestreo. Extraiga todos los nodos disponibles en las polilíneas, calcule la distancia que existen entre cada pareja de puntos y abscise los nodos de 0 hasta la longitud total del tramo analizado. Para cada nodo, extraiga las elevaciones del modelo de terreno ESA Copernicus y grafique los perfiles del río y de la vía. Calcule la pendiente ponderada de la vía y del tramo de drenaje a partir de las subpendientes de cada pareja de puntos y compare con la pendiente media zonal obtenida a partir del mapa de pendientes creado en la actividad anterior. A partir de los nodos y sus elevaciones, cree y visualice en una escena local, los perfiles en 3 dimensiones.
- Obtener perfiles a partir de líneas de muestreo.
- Representar perfiles en superficies 3D.
- Estimar la pendiente ponderada de las líneas de muestreo.
- 🎓Actividad: Conceptos básicos de topografía, fotogrametría y fotointerpretación.
- 🎓Actividad: Inventario de información geo-espacial recopilada del POT y diccionario de datos.
- 🎓Actividad: Modelo digital de elevación - DEM a partir de sensores remotos satelitales.
- 🎓Actividad: Corredores viales urbanos y construcciones afectadas.
- 🧰Herramienta: ESRI ArcGIS Pro 3.3.1 o superior.
- 🧰Herramienta: QGIS 3.38 o superior.
- Abra el proyecto de ArcGIS Pro, creado previamente y desde el menú Insert cree un nuevo mapa New Map, renombre como DEMProfile y establezca el CRS 9377. Agregue al mapa el modelo digital de elevación Copernicus desde la ruta \file\dem\Copernicus\Copernicus30m.tif y simbolice por sombreado de terreno; agregue también la capa de hidrografía desde la ruta
\file\gdb\SIGE.gdb\POT2013Formulacion\HIDROGRAFIA1
y la red vial integrada que se encuentran en la ruta\file\gdb\SIGE.gdb\SIGE\Red_vial
y ajuste la simbología a valores únicos representando el campo de atributosZonaNombre
.
- Dentro del dataset _\file\gdb\SIGE.gdb\SIGE_ cree una clase de entidad 2D con geometría de poli-línea y nombre como LineaPerfil.
- A partir de la capa de Hidrografia, seleccione un drenaje principal que como mínimo tenga 10 km de longitud y copie estas líneas en la capa LineaPerfil.
De la capa de drenajes seleccionaremos para este ejemplo, los ejes correspondientes al Río Frío, podrá observar que no se encuentra completamente digitalizado todo el tramo en la zona norte y en la zona sur un tramo del río principal ha sido incorporado al eje principal del río principal.
Luego de seleccionar los tramos requeridos, utilice las opciones de copiar (Copy) y pegar (Paste Special) que se encuentran en el menu Map o Edit.
- Edite la capa de la línea de drenaje y utilizando las herramientas de edición, digitalice el tramo faltante, segmente y elimine el tramo sur que no hace parte del río principal e integre en una única línea. Simbolice y verifique la dirección vectorial de la línea utilizando simbología de flechas de inicio a fin.
Para la digitalización del tramo faltante al norte, utilice la imagen satelital de ESRI y trace las líneas a escala 1:1000 o inferior.
En el evento de que el sentido vectorial de dibujo sea incorrecto, desde el editor selecciones la opción de edición de vértices o Edit Vertices y dando clic sobre la línea, seleccione la opción Reverse Direction.
- A partir de la capa de la red vial filtre solo las vías de orden vial 2 y extraiga los tramos que conduce al municipio de Pacho - Cundinamarca, copie estas líneas en la capa LineaPerfil y verifique que la línea sea contínua y que su sentido vectorial sea de la zona alta a la baja.
- En la tabla de atributos de la capa LineaPerfil, cree un campo de texto de 100 caracteres con el nombre
PerfilNom
y asigne los nombres Perfil Río Frío y Perfil Vía a Pacho a los dos ejes. Simbolice los ejes con colores diferentes a partir del nombre asignado.
- Utilizando la herramienta de geo-procesamiento Data Management Tools / Feature vertices to points, extraiga todos los nodos disponibles en las poli-líneas de la capa LineaPerfil y guarde como
\file\gdb\SIGE.gdb\SIGE\LineaPerfilPoint
. Simbolice los nodos utilizando los mismos colores de los ejes.
- Rotule los nodos a partir del identificador de objeto espacial OBJECTID, podría observar que el código 1 ha sido asignado al tramo de la línea de drenaje debido a que en su extensión espacial es la que se encuentra más al norte. Siga la secuencia de los nodos y verifique que los valores consecutivos sean correctos en el sentido del flujo desde la zona más alta a la más baja.
- Numere de 0 a n los nodos de cada línea, para ello cree un campo de atributos numérico entero largo con el nombre
Nodo
, seleccione por atributos los nodos correspondientes al eje del río y con el calculador de campo asigne al valor!OBJECTID!-1
. Rotule a partir de este nuevo campo.
Ahora, seleccione el eje correspondiente al tramo de vía y con el calculador de campo asigne el valor !OBJECTID!-9575
donde 9575 corresponde al valor del primer nodo de este eje.
- Utilizando el calculador de geometría, obtenga las coordenadas de cada nodo.
- Utilizando la herramienta de geo-procesamiento Spatial Analyst Tools / Extract Multi Values to Points, obtenga la elevación de cada nodo a partir del DEM Copernicus.
- Calcule la distancia entre cada pareja de puntos en su orden consecutivo, para ello cree un campo numérico doble con el nombre
DistNode
y cree una función en Python que realice el cálculo utilizando el Teorema de Pitágoras. Complemente el rótulo de nodo incluyendo la distancia.
Código Python:
CXUp, CYUp = -9999, -9999
def distnode(CX, CY, Node):
global CXUp, CYUp
if CXUp == -9999 or Node == 0:
CXUp, CYUp = CX, CY
dist = ((CX - CXUp)**2 + (CY - CYUp)**2)**0.5
CXUp, CYUp = CX, CY
return dist
Llamado de función: distnode(!CX!,!CY!,!Nodo!)
Rótulo Arcade: $feature.Nodo + " | d (m): " + Round($feature.DistNode, 2)
- Para el abscisado del perfil, cree un campo de atributos con el nombre Abscisa y utilizando la siguiente función de Python, obtenga los valores requeridos.
Código Python:
acum = 0
def abscisacum(distnode):
global acum
if distnode == 0:
acum =0
acum += distnode
return acum
Llamado de función: abscisacum(!DistNode!)
Rótulo Arcade: $feature.Nodo + " | d (m): " + Round($feature.DistNode, 2) + " | Abs (m): " + Round($feature.Abscisa, 2)
- En la tabla de contenido y desde las opciones de la capa de puntos, cree una gráfica de líneas representando las abscisas y las elevaciones.
- Calcule la pendiente en tasa porcentual entre cada pareja de puntos sucesivos de cada eje. Para ello cree un campo de atributos numérico doble con el nombre
SlopePorc
y calcule la pendiente utilizando la siguiente función en Python:
Código Python:
CZUp = -9999
def slopeporc(DistNode, CZ, Node):
global CZUp
if CZUp == -9999 or Node == 0:
CZUp = CZ
slope = (CZUp - CZ) / DistNode
CZUp = CZ
return slope
Llamado de función: slopeporc(!DistNode!,!CZ!,!Nodo!)
Rótulo Arcade: $feature.Nodo + " | d (m): " + Round($feature.DistNode, 2) + " | Abs (m): " + Round($feature.Abscisa, 2)+ " | CZ (m): " + Round($feature.CZ, 2)+ " | Slp (m/m): " + Round($feature.SlopePorc, 2)
- Cree un gráfico de barras que represente las pendientes medias obtenidas para cada tramo.
- Para la visualización 3D, inserte una escena local, asigne el CRS 9377, agregue el modelo digital de elevación Copernicus, los ejes y los nodos. Defina la exageración vertical en 3.
- Desde el menu Map / Layer / Add Data, agregue un nuevo Elevation Source Layer a partir del modelo digital de elevación Copernicus.
Para el desarrollo de las actividades desarrolladas en esta clase, se pueden utilizar en QGIS las siguientes herramientas o geo-procesos:
Proceso | Procedimiento |
---|---|
Simbología | Modificable desde las propiedades de la capa en la pestaña Symbology. |
Rotulado | Modificable desde las propiedades de la capa en la pestaña Labels. |
Edición geométrica | Activar modo de edición de capa o Toggle Editing e iniciar a crear o editar entidades. |
Fraccionar o segmentar una entidad (Split) | Activar el modo de edición de la capa y activar la barra Advanced Digitizing Toolbar y las herramientas Slipt Features o Split Parts. |
Extraer vértices de entidades (Feature Vertices to Points) | Herramienta disponible en el _Processing Toolbox / Vector Geometry / Extract vertices. |
Extracción de multiples valores desde grillas a puntos (Extract Multi Values to Points) | Puede ser realizado manualmente para cada grilla en el _Processing Toolbox / Raster analysis / Zonal statistics o se puede instalar el Plugin o complemento Point sampling tool. |
Cálculos geométricos o de campo | Directamente desde la tabla de atributos mediante el botón Open Field Calculator o Ctr+I. La geometría de cálculo $area permite obtener el valor elipsoidal y area el valor proyectado. |
Ejemplo rótulo en QGIS: 'A(ha): ' || round("AGha", 2) || '\n' || 'P (m): ' || round("PGm", 2)
📓QGIS training manual
📓Herramientas comúnmente utilizadas en QGIS
Agregue a la tabla resúmen generada en la actividad Inventario de información geo-espacial recopilada del POT y diccionario de datos, las capas generadas en esta actividad que se encuentran listadas a continuación:
Nombre | Descripción | Geometría | Registros |
---|---|---|---|
LineaPerfil | Lineas para generación de perfiles. | Poli-línea 2D | 2 |
LineaPerfilPoint | Vertices de líneas utilizadas para generación de perfiles. | Poli-línea 2D | 10083 |
💡Para funcionarios que se encuentran ensamblando el SIG de su municipio, se recomienda incluir y documentar estas capas en el Diccionario de Datos.
En la siguiente tabla se listan las actividades que deben ser desarrolladas y documentadas por cada grupo de proyecto en un único archivo de Adobe Acrobat .pdf. El documento debe incluir portada (indicando el caso de estudio, número de avance, nombre del módulo, fecha de presentación, nombres completos de los integrantes), numeración de páginas, tabla de contenido, lista de tablas, lista de ilustraciones, introducción, objetivo general, capítulos por cada ítem solicitado, conclusiones y referencias bibliográficas.
Actividad | Alcance |
---|---|
Avance P5 | Desarrolle los análisis presentados en esta actividad. |
Avance P5 | Utilizando estadísticas zonales como tabla, obtenga la pendiente media de cada línea de perfil a partir del mapa de pendientes generado a partir del modelo Copernicus y compare con la pendiente ponderada obtenida en esta actividad. |
Avance P5 | 🧭Mapa digital impreso P5-14: Mapa de drenaje y tramo de vía con nodos y perfiles. Incluir gráficos de análisis y rótulos descriptivos. Embebido dentro del informe final como una imágen y referenciados como anexo. |
Avance P5 | En una tabla y al final del informe de avance de esta entrega, indique el detalle de las sub-actividades realizadas por cada integrante de su grupo. Para actividades que no requieren del desarrollo de elementos de avance, indicar si realizo la lectura de la guía de clase y las lecturas indicadas al inicio en los requerimientos. Utilice las siguientes columnas: Nombre del integrante, Actividades realizadas, Tiempo dedicado en horas. |
No es necesario presentar un documento de avance independiente, todos los avances de proyecto de este módulo se integran en un único documento.
En el informe único, incluya un numeral para esta actividad y sub-numerales para el desarrollo de las diferentes sub-actividades, siguiendo en el mismo orden de desarrollo presentado en esta actividad.
- https://pro.arcgis.com/en/pro-app/latest/tool-reference/spatial-analyst/extract-multi-values-to-points.htm
- https://pro.arcgis.com/en/pro-app/latest/tool-reference/data-management/feature-vertices-to-points.htm
Versión | Descripción | Autor | Horas |
---|---|---|---|
2024.03.29 | Versión inicial con alcance de la actividad | rcfdtools | 4 |
2024.09.10 | Investigación y documentación para caso de estudio general | rcfdtools | 6 |
R.SIGE es de uso libre para fines académicos, conoce nuestra licencia, cláusulas, condiciones de uso y como referenciar los contenidos publicados en este repositorio, dando clic aquí.
¡Encontraste útil este repositorio!, apoya su difusión marcando este repositorio con una ⭐ o síguenos dando clic en el botón Follow de rcfdtools en GitHub.
🏠 Inicio | 🔰 Ayuda / Colabora | Siguiente |
---|