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.