Uno de los objetivos clave de la modelación de aguas subterráneas en minería es la determinación de los ingresos de agua al tajo y la extensión del cono de depresión. Este tutorial muestra un caso aplicado de determinación de un cono de depresión a partir de un modelo de tajo abierto construido con MODFLOW6, Flopy y mf6Voronoi. El modelo incluye fallas geológicas y el tutorial cubre todos los pasos, desde la importación del modelo, el procesamiento de datos y la exportación de datos geoespaciales del cono de depresión.
Este tutorial esta basado en los datos de este otro tutorial:
Tutorial
Código
#Vtk generation
import flopy ## Org
import rasterio
from rasterio.plot import show
from mf6Voronoi.tools.graphs2d import generateRasterFromArray, generateContoursFromRaster
C:\Users\saulm\anaconda3\Lib\site-packages\geopandas\_compat.py:7: DeprecationWarning: The 'shapely.geos' module is deprecated, and will be removed in a future version. All attributes of 'shapely.geos' are available directly from the top-level 'shapely' namespace (since shapely 2.0.0).
import shapely.geos
# load simulation
simName = 'mf6Sim' ## Org
modelName = 'mf6Model' ## Org
modelWs = 'modelFiles' ## Org
sim = flopy.mf6.MFSimulation.load(sim_name=modelName, version='mf6', ## Org
exe_name='bin/mf6.exe', ## Org
sim_ws=modelWs) ## Org
loading simulation...
loading simulation name file...
loading tdis package...
loading model gwf6...
loading package disv...
loading package ic...
loading package npf...
loading package sto...
loading package rch...
loading package evt...
loading package drn...
loading package oc...
loading solution package mf6model...
#list model
sim.model_names
['mf6model']
#get gwf
gwf = sim.get_model('mf6model')
headObj = gwf.output.head() ## Org
headObj.get_kstpkper() ## Org
[(0, 0), (0, 1), (0, 2), (0, 3), (0, 4), (0, 5)]
heads0 = headObj.get_data(kstpkper=(0,0)) ## Org
heads5 = headObj.get_data(kstpkper=(0,5)) ## Org
waterTable0 = flopy.utils.postprocessing.get_water_table(heads0) ## Org
waterTable5 = flopy.utils.postprocessing.get_water_table(heads5) ## Org
wt0Path = 'output/waterTable0.tif'
wt5Path = 'output/waterTable5.tif'
generateRasterFromArray(gwf, waterTable0,
rasterRes=10, epsg=32612,
outputPath=wt0Path,
limitLayer='shp/catchment.shp')
generateRasterFromArray(gwf, waterTable5,
rasterRes=10, epsg=32612,
outputPath=wt5Path,
limitLayer='shp/catchment.shp')
Raster X Dim: 13256.95, Raster Y Dim: 9903.42
Number of cols: 1325, Number of rows: 990
Raster X Dim: 13256.95, Raster Y Dim: 9903.42
Number of cols: 1325, Number of rows: 990
wt0 = rasterio.open(wt0Path)
show(wt0)
wt0Clip = rasterio.open('output/waterTable0_clip.tif')
show(wt0Clip)
depressionArray = waterTable5 - waterTable0
depressionPath = 'output/depression.tif'
generateRasterFromArray(gwf, depressionArray,
rasterRes=10, epsg=32612,
outputPath=depressionPath,
limitLayer='shp/catchment.shp')
Raster X Dim: 13256.95, Raster Y Dim: 9903.42
Number of cols: 1325, Number of rows: 990
generateContoursFromRaster('output/depression.tif',5,
'output/depressionContours.shp')

FloPy es la librerìa de Python que construye y ejecuta modelos MODFLOW; esta librería se ha mejorado para proporcionar un soporte completo de MODFLOW 6 y la mayor parte de su desarrollo está relacionado con la funcionalidad de MODFLOW 6, herramientas para usar datos espaciales vectoriales, rasters y funcionalidades comunes de ploteo y exportación.
Python es un lenguaje de programación sencillo y potente; su simplicidad es notable en comparación con otros lenguajes de programación y su potencia se basa en la cantidad de herramientas disponibles para las diferentes áreas de estudio.
Hemos desarrollado un programa completo en modelamiento de aguas subterráneas con MODFLOW y FloPy que abarca desde los temas esenciales en Python hasta casos aplicados de modelamiento regional e intrusión marina. El programa está diseñado para brindarle al estudiante un enfoque metodológico para aprender FloPy basado en una serie de ejemplos aplicados junto con las opiniones/experiencias del profesor y la revisión del software.