In [1]:
import python_subgrid.wrapper
import python_subgrid.plotting
import logging
import os.path
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
%matplotlib inline
In [2]:
subgrid = python_subgrid.wrapper.SubgridWrapper(mdu=os.path.expanduser('/Users/baart_f/models/duifp/Duifp_dem_0m.mdu'))
In [3]:
python_subgrid.wrapper.logger.setLevel(logging.WARNING)
subgrid.start()
In [4]:
subgrid.update(-1)
Out[4]:
In [5]:
crop = subgrid.get_nd('croptype')
soil = subgrid.get_nd('soiltype')
infiltration = subgrid.get_nd('infiltrationrate')
interception = subgrid.get_nd('maxinterception')
si = subgrid.get_nd('si')
dps = subgrid.get_nd('dps')
grid = {var: subgrid.get_nd(var, sliced=False) for var in {'nodn', 'nodm', 'nodk', 'imaxk', 'jmaxk', 'nod_type'}}
grid['nod_type'].shape, grid['nodm'].shape, grid['imaxk'].shape
#grid['imaxk'][grid['nodk']-1]
#grid['nod_type']
#grid['imaxk']
quad_grid = python_subgrid.plotting.make_quad_grid(subgrid)
In [6]:
crop = np.ma.masked_outside(crop, 0, 100)
soil = np.ma.masked_outside(soil, 0, 100)
interception = np.ma.masked_outside(interception, -1000000, 1000000)
infiltration = np.ma.masked_outside(infiltration, -1000000, 1000000)
fig, axes = plt.subplots(4,1, figsize=(7,15))
axes[0].imshow(crop, cmap=matplotlib.cm.Pastel1_r, origin='lower')
axes[1].imshow(soil, cmap=matplotlib.cm.Pastel2, origin='lower')
axes[2].imshow(infiltration, cmap=matplotlib.cm.BrBG, origin='lower')
axes[3].imshow(interception, cmap=matplotlib.cm.Greens, origin='lower')
Out[6]:
In [7]:
fig, axes = plt.subplots(4,1, figsize=(7,15))
crop[~crop.mask] = 0
soil[~soil.mask] = 0
infiltration[~infiltration.mask] = 3.0 # choose something that does not crash here....
interception[~interception.mask] = 2.0
subgrid.update(-1)
axes[0].imshow(crop, cmap=matplotlib.cm.Pastel1_r, origin='lower')
axes[1].imshow(soil, cmap=matplotlib.cm.Pastel2, origin='lower')
axes[2].imshow(infiltration, cmap=matplotlib.cm.BrBG, origin='lower')
axes[3].imshow(interception, cmap=matplotlib.cm.Greens, origin='lower')
Out[7]: