|||

tfv 1.0.10 documentation

Quick search

  • API Reference
  • Examples
    • Tutorial 1. TUFLOW FV Post-Processing Using Xarray
    • Tutorial 2. Introductory Matplotlib Plot Composition
    • Tutorial 3: Working With Gridded Boundary Condition Data
    • Gallery 1: Timeseries Plots
    • Gallery 2: Profile Plots
    • Gallery 3: Working with Sheets
    • Gallery 4: Curtain Plots
    • Gallery 5: Combined Plots
    • Gallery 6: Particle Tracking Plots
    • Gallery 7: Miscellaneous

Gallery 4: Curtain Plots¶

Curtain plots allow you to review 3D results along a long section or cross section.

This notebook is used in combination with the TUFLOW FV Python Toolbox (tfv) package. To follow along on your own computer, please download the demonstration notebooks from the TUFLOW Downloads Page. Look for the TUFLOW FV Python Toolbox download. Installation instructions are provided on our TUFLOW FV Python Toolbox Wiki Page.

import xarray as xr  # We utilise xarray to do all the heavy lifting 
import tfv.xarray
from pathlib import Path # We'll also make use of the `pathlib` module to assist with managing file-paths, although this is entirely optional! 
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

Open TUFLOW FV Model Result¶

model_folder = Path(r'..\..\data')
model_file = 'HYD_002.nc'

fv = xr.open_dataset(model_folder / model_file, decode_times=False).tfv
#fv  # Uncomment if you would like to review the Dataset

Single Curtain Plot¶

from matplotlib.gridspec import GridSpec
sns.set(style='white', font_scale=0.9)

polyline = np.loadtxt(model_folder / 'polyline.csv', skiprows=1, delimiter=',')

time = '2011-05-02 12:00'
vardict = {
    'TEMP': dict(cmap='inferno', clim=(10, 22)),
    'SAL': dict(cmap='ocean', clim=(0, 36)),
    'V': dict(cmap='jet', clim=(0, 1)),
}

var = 'SAL'

# Create figure
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 4), gridspec_kw={'width_ratios': [1, 3]}, constrained_layout=True)

cspec = vardict[var]
fv.plot(var, time, ax=ax1, colorbar=False, **cspec)
ax1.plot(polyline[:, 0], polyline[:, 1], lw=1, color='black', ls='--')
ax1.set_aspect('equal')
ax1.set_title(f'Depth Avg. {var}')

fv.plot_curtain(polyline, var, time, ax=ax2, ec='none', **cspec)
ax2.set_title(f'{var} Curtain Profile')

plt.show()
../../../_images/625daeb49377eeab97e2878188429913c832b2fb5d00d0903cc920c2b3020d1d.png

Multiple Curtain Plots¶

# Create figure
fig, (ax1, ax2, ax3) = plt.subplots(3, 1, figsize=(12, 8), constrained_layout=True)


var = 'SAL'
cspec = vardict[var]
fv.plot_curtain(polyline, var, time, ax=ax1, ec='none', **cspec)
ax1.set_title(f'{var} Curtain Profile')

var = 'TEMP'
cspec = vardict[var]
fv.plot_curtain(polyline, var, time, ax=ax2, ec='none', **cspec)
ax2.set_title(f'{var} Curtain Profile')

var = 'V'
cspec = vardict[var]
fv.plot_curtain(polyline, var, time, ax=ax3, ec='none', **cspec)
ax3.set_title(f'{var} Curtain Profile')

plt.show()

Plot Interactive Curtain¶

%matplotlib widget

fv.plot_curtain_interactive(polyline, 'SAL', cmap='turbo', clim=(10,35), edgecolor='face')
plt.ylim(-10, 2)
plt.show()

This concludes the examples on curtain plotting.

<Page contents

>Page contents:

  • Gallery 4: Curtain Plots
    • Open TUFLOW FV Model Result
    • Single Curtain Plot
    • Multiple Curtain Plots
    • Plot Interactive Curtain
<Gallery 3: Working with Sheets
Gallery 5: Combined Plots>
© Copyright 2023 BMT. Created using Sphinx 7.3.1.

Styled using the Piccolo Theme