Generation

generate functionSat, 03 May 2025

Crear un script en QGIS para la capa PUEBLOS

Aquí te muestro un ejemplo de script en Python para QGIS que realiza algunas operaciones comunes en la capa "PUEBLOS": ```python # Importar librerías necesarias import processing from qgis.core import QgsProject, QgsVectorLayer, QgsField, QgsFields, QgsFeatureRequest from qgis.gui import QgsMessageBar # Obtener la capa "PUEBLOS" layer_pueblos = QgsProject.instance().mapLayersByName('PUEBLOS')[0] # Crear un mensaje de barra de estado message_bar = QgsMessageBar() # Función para agregar un campo calculado def agregar_campo_calculado(layer, campo, expresion): # Crear un campo calculado layer.startEditing() layer.dataProvider().addAttributes([QgsField(campo, 10)]) layer.commitChanges() # Agregar la expresión al campo calculado layer.dataProvider().changeAttributeIndexes(QgsField(campo, 10), layer.dataProvider().fieldNameIndex(campo)) layer.dataProvider().setSubsetOfAttributes([layer.dataProvider().fieldNameIndex(campo)]) # Agregar la expresión al campo calculado layer.dataProvider().addExpressionField(campo, expresion) # Función para calcular la distancia entre dos puntos def calcular_distancia(layer, campo_x, campo_y, campo_distancia): # Crear una expresión para calcular la distancia expresion = f"sqrt(pow({campo_x} - {campo_x}, 2) + pow({campo_y} - {campo_y}, 2))" # Agregar el campo calculado agregar_campo_calculado(layer, campo_distancia, expresion) # Función para calcular la población por km² def calcular_poblacion_por_km2(layer, campo_poblacion, campo_superficie, campo_poblacion_por_km2): # Crear una expresión para calcular la población por km² expresion = f"{campo_poblacion} / {campo_superficie}" # Agregar el campo calculado agregar_campo_calculado(layer, campo_poblacion_por_km2, expresion) # Ejecutar las funciones calcular_distancia(layer_pueblos, 'X', 'Y', 'distancia') calcular_poblacion_por_km2(layer_pueblos, 'poblacion', 'superficie', 'poblacion_por_km2') # Mostrar un mensaje de confirmación message_bar.pushMessage("Información", "Operaciones realizadas con éxito", level=QgsMessageBar.INFO) ``` Este script realiza las siguientes operaciones: 1. Obtiene la capa "PUEBLOS" del proyecto actual. 2. Crea un mensaje de barra de estado para mostrar mensajes de confirmación. 3. Define tres funciones: * `agregar_campo_calculado`: agrega un campo calculado a la capa. * `calcular_distancia`: calcula la distancia entre dos puntos y agrega el resultado como un campo calculado. * `calcular_poblacion_por_km2`: calcula la población por km² y agrega el resultado como un campo calculado. 4. Ejecuta las funciones `calcular_distancia` y `calcular_poblacion_por_km2` con los campos correspondientes. 5. Muestra un mensaje de confirmación en la barra de estado. Recuerda que debes adaptar el script a tus necesidades específicas y a la estructura de tus datos.

Want to kickstart your project?Use the new AI Studio to create your code