Open in Colab

Plot surface variables#

# skip this if package has already been installed
# !pip install modvis
import os
import modvis.ats_xdmf as xdmf
import modvis.plot_vis_file as pv
import logging
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s: %(message)s')

work_dir = f"../../model2/"
run_dir = "3-transient"
model_dir = os.path.join(work_dir, run_dir)
logging.info(f"Loading data from {model_dir}")
# model_dir = "../data/coalcreek"
2025-04-07 15:02:11,744 - root - INFO: Loading data from ../../model2/3-transient

Download the sample data when running on Google Colab

# import os
# if not os.path.exists(model_dir):
#   !git clone https://github.com/pinshuai/modvis.git
#   %cd ./modvis/examples/notebooks

import vis data#

visfile = xdmf.VisFile(model_dir, domain='surface', model_time_unit= 'd',
                       load_mesh=True)
# all available variable names
list(visfile.d.keys())
['canopy-cell_volume',
 'canopy-drainage',
 'canopy-evaporation',
 'canopy-fracwet',
 'canopy-interception',
 'canopy-leaf_area_index',
 'canopy-potential_transpiration',
 'canopy-potential_transpiration_mols',
 'canopy-radiation_balance',
 'canopy-temperature',
 'canopy-throughfall_drainage_rain',
 'canopy-throughfall_drainage_snow',
 'canopy-water_content',
 'canopy-water_equivalent',
 'canopy-water_source',
 'canopy-water_source_meters',
 'snow-cell_volume',
 'snow-density',
 'snow-depth',
 'snow-evaporation',
 'snow-expected_temperature',
 'snow-melt',
 'snow-precipitation',
 'snow-radiation_balance',
 'snow-temperature',
 'snow-water_content',
 'snow-water_equivalent',
 'snow-water_source',
 'snow-water_source_meters',
 'surface-air_temperature',
 'surface-albedos.bare_or_water',
 'surface-albedos.snow',
 'surface-area_fractions.bare_or_water',
 'surface-area_fractions.snow',
 'surface-aspect',
 'surface-cell_volume',
 'surface-elevation',
 'surface-emissivities.bare_or_water',
 'surface-emissivities.snow',
 'surface-evaporation',
 'surface-incident_shortwave_radiation',
 'surface-incoming_longwave_radiation',
 'surface-incoming_shortwave_radiation',
 'surface-manning_coefficient',
 'surface-mass_density_liquid',
 'surface-molar_density_liquid',
 'surface-overland_conductivity',
 'surface-ponded_depth',
 'surface-ponded_depth_bar',
 'surface-potential_evaporation',
 'surface-precipitation_rain',
 'surface-pres_elev',
 'surface-pressure',
 'surface-radiation_balance',
 'surface-relative_permeability',
 'surface-slope_magnitude',
 'surface-soil_resistance',
 'surface-source_molar_density',
 'surface-surface_subsurface_flux',
 'surface-temperature',
 'surface-total_evapotranspiration',
 'surface-transpiration',
 'surface-unfrozen_fraction',
 'surface-vapor_pressure_air',
 'surface-velocity.0',
 'surface-velocity.1',
 'surface-velocity.2',
 'surface-water_content',
 'surface-water_content_bar',
 'surface-water_source',
 'surface-water_source_mols']

plot surface ponded depth#

time_slice = '2016-1-10'
fig, ax, tpc = pv.plot_surface_data(visfile, var_name="canopy-leaf_area_index", 
                                    log = False, vmin=0.01, vmax=3, 
                                    time_slice= time_slice)
2025-04-08 03:50:12,875 - root - INFO: No unit convertion.
../_images/36204bfe583e9bf095521ca4c516120741c560eaa9c8ac13f2f2e39704401560.png
fig, ax, tpc = pv.plot_surface_data(visfile, var_name="canopy-leaf_area_index", 
                                    log = False, vmin=0.01, vmax=3, 
                                    time_slice= time_slice)
2025-04-08 03:49:58,186 - root - INFO: No unit convertion.
../_images/be203ae44bbd9149444e2bc3c3cff012c2ca4f5d35277cb6ab02213f0994ac72.png

plot ET#

fig, ax, tpc = pv.plot_surface_data(visfile, var_name="surface-total_evapotranspiration", 
                                    log = False, vmin=0, vmax=3, 
                                    time_slice= time_slice)
../_images/35b6c4f101ee2708ae416dee9850821320dd031a35b01891905804ceb903c80f.png

plot snow cover#

fig, ax, tpc = pv.plot_surface_data(visfile, var_name="surface-area_fractions.snow", 
                                    vmin=0, vmax=1, log=True,
                                    time_slice=time_slice)
2025-04-07 15:02:27,212 - root - INFO: No unit convertion.
../_images/d35514c4b3b565622444017eae6c4a9332f90deb363730d87edf15de095ab747.png

plot SWE#

fig, ax, tpc = pv.plot_surface_data(visfile, var_name="snow-water_equivalent", 
                                    vmin=0, vmax=240, log=True,
                                    time_slice=time_slice)
../_images/e8f6f2b60e163d9db6e8f1321c0b878e12990b62f4c4132d3480aea02a0e52cd.png