Todo lo necesario para
preparar tu modelo SWMM
QGIS2SWMM automatiza las tareas más repetitivas: topología, elevaciones, dimensiones de subcuencas y formato de exportación, para que puedas centrarte en el modelo hidráulico.
Crea automáticamente tres capas GeoPackage (Nodos, Conducciones, Subcuencas) con todos los campos que requiere SWMM, listas para digitalizar.
Lee la elevación del terreno en cada nodo directamente desde un raster DEM cargado en QGIS y la almacena como InvertElev. También guarda coordenadas X/Y.
Detecta el nodo de entrada (InletNode) y salida (OutletNode) de cada conducción por proximidad espacial configurable. Elimina la asignación manual.
Calcula área (ha), pendiente media (%) y ancho de flujo (m) para cada subcuenca a partir del polígono digitalizado y el DEM.
Genera identificadores secuenciales N1/N2, L1/L2, S1/S2 para nodos, conducciones y subcuencas, respetando los que ya existan.
Genera un archivo .inp compatible con EPA SWMM 5.x con secciones JUNCTIONS, CONDUITS, XSECTIONS, SUBCATCHMENTS, COORDINATES y POLYGONS.
Flujo de trabajo
paso a paso
El plugin está organizado en pestañas que siguen el orden natural del flujo de trabajo. Sigue los pasos en secuencia para obtener un archivo .inp correcto.
Antes de digitalizar, el proyecto QGIS debe usar un sistema de referencia proyectado en metros (por ejemplo UTM). El plugin lo verifica automáticamente.
Selecciona un directorio de salida donde se guardarán los GeoPackage (.gpkg) de las tres capas. A continuación pulsa Initialize SWMM Layers: se crearán y añadirán al proyecto SWMM_Nodes, SWMM_Links y SWMM_Subcatchments.
Activa la edición en cada capa y digitaliza con las herramientas estándar de QGIS:
SWMM_Nodes — puntos en la ubicación de pozos, sumideros y puntos de control. Rellena el campo ID (o déjalo vacío para generación automática). Los campos InvertElev y X/Y se rellenan automáticamente desde el DEM.
SWMM_Links — líneas desde nodo aguas arriba hasta nodo aguas abajo. La dirección de digitalización define el sentido del flujo. InletNode y OutletNode se asignan automáticamente en el paso 4.
SWMM_Subcatchments — polígonos de cada área de drenaje. Rellena Outlet (nodo al que drena) y RainGage (pluviómetro SWMM) si los conoces, o déjalos en blanco para asignarlos después en SWMM.
Si dejaste campos ID vacíos, pulsa Generate Auto IDs. El plugin asigna:
· Nodos → N1, N2, N3...
· Conducciones → L1, L2, L3...
· Subcuencas → S1, S2, S3...
Solo rellena los campos vacíos; los que ya tengan valor no se modifican.
Carga un DEM (raster) en QGIS, selecciónalo en el desplegable y pulsa Synchronize Elevations from DEM.
El plugin muestrea la elevación del DEM en la ubicación exacta de cada nodo y la escribe en el campo InvertElev. También almacena las coordenadas X e Y en los campos de la capa, necesarias para la sección [COORDINATES] del .inp.
Pulsa Detect InletNode/OutletNode: el plugin construye un índice espacial de nodos y asigna a cada conducción los campos InletNode y OutletNode buscando el nodo más cercano a cada extremo dentro de la distancia de ajuste configurada (por defecto 10 m).
A continuación pulsa Calculate Link Lengths para medir la longitud geométrica real de cada conducción y escribirla en el campo Length.
Pulsa Calculate Areas, Slope and Width. El plugin calcula:
· Area — área geométrica del polígono en hectáreas.
· Slope — pendiente media estimada en %, como (Δz / Lmax) × 100, donde Δz es el rango de elevaciones muestreadas en el polígono desde el DEM y Lmax es la dimensión mayor del bounding box.
· Width — ancho de flujo en metros, calculado como Area / Lmax (método simplificado EPA SWMM).
PercImperv (porcentaje de impermeabilidad) debe introducirse manualmente según el uso del suelo. Es un parámetro clave para la generación de escorrentía y no puede calcularse solo con geometría.
Pulsa Validate Data Completeness para detectar campos obligatorios vacíos antes de exportar. Los errores críticos son: ID, InvertElev en nodos; InletNode, OutletNode, Length en conducciones; ID, Area, Width, Slope en subcuencas.
Una vez validado, pulsa Export to .INP File, elige la ruta y nombre. El archivo generado incluye las secciones principales de SWMM. Ábrelo en EPA SWMM para completar [RAINGAGES], [INFILTRATION], [TIMESERIES] y parámetros de simulación.
Estructura de las capas
Cada capa GeoPackage tiene los siguientes campos. Los marcados como AUTO se calculan automáticamente. Los MANUAL deben introducirse por el usuario. Los OPT son opcionales.
| ID | Identificador único. AUTO |
| InvertElev | Cota de solera (m). AUTO desde DEM |
| MaxDepth | Profundidad máxima (m). MANUAL |
| X | Coordenada X (m). AUTO |
| Y | Coordenada Y (m). AUTO |
| ID | Identificador único. AUTO |
| InletNode | Nodo aguas arriba. AUTO topología |
| OutletNode | Nodo aguas abajo. AUTO topología |
| Length | Longitud geométrica (m). AUTO |
| ManningN | Coef. Manning. MANUAL |
| InOffset | Resalte entrada (m). OPT |
| OutOffset | Resalte salida (m). OPT |
| ID | Identificador único. AUTO |
| RainGage | Nombre del pluviómetro SWMM. OPT |
| Outlet | Nodo receptor del escurrimiento. OPT |
| Area | Área (ha). AUTO |
| PercImperv | % impermeabilidad. MANUAL |
| Width | Ancho de flujo (m). AUTO |
| Slope | Pendiente media (%). AUTO desde DEM |
Estructura del archivo .inp generado
El archivo exportado incluye las secciones geométricas y topológicas. Las secciones de simulación (lluvia, infiltración, parámetros) se completan en EPA SWMM.
[RAINGAGES], [SUBAREAS], [INFILTRATION] y [TIMESERIES] para ejecutar la simulación.
Cómo instalar QGIS2SWMM
El plugin funciona en QGIS 3.16 o superior. No requiere dependencias externas adicionales.
Descarga el repositorio como .zip desde GitHub. En QGIS ve a Complementos → Administrar e instalar → Instalar desde ZIP.
Descomprime el repositorio y copia la carpeta qgis2swmm/ en el directorio de plugins de QGIS. Reinicia QGIS y actívalo.
QGIS 3.16 o superior · Python 3.x incluido en QGIS · Windows, Linux o macOS · CRS proyectado (UTM recomendado) · DEM raster en formato compatible con GDAL
El código fuente está disponible en GitHub. Issues, pull requests y sugerencias son bienvenidos.
