From b86da1bea4b8a30a85870f2ad45e621de7679cec Mon Sep 17 00:00:00 2001
From: Paul Garlick <pgarlick@tourbillion-technology.com>
Date: Fri, 17 Dec 2021 17:42:27 +0000
Subject: fullswof-utils: Add script for plotting elevation at boundaries.

* fullswof-utils/boundary_profile.py: New file.
---
 fullswof-utils/boundary_profile.py | 39 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)
 create mode 100755 fullswof-utils/boundary_profile.py

(limited to 'fullswof-utils')

diff --git a/fullswof-utils/boundary_profile.py b/fullswof-utils/boundary_profile.py
new file mode 100755
index 0000000..091db8a
--- /dev/null
+++ b/fullswof-utils/boundary_profile.py
@@ -0,0 +1,39 @@
+#!/usr/bin/env python3
+
+import matplotlib.pyplot as plt
+import numpy as np
+import os
+import argparse
+from matplotlib.ticker import MultipleLocator
+
+# read command line argument:
+parser = argparse.ArgumentParser(
+    description="plot elevation versus distance at boundaries")
+parser.add_argument("location", help="boundary location")
+args = parser.parse_args()
+
+if args.location == 'top':
+    inputFilename = "top_boundary.txt"
+elif args.location == 'bottom':
+    inputFilename = "bottom_boundary.txt"
+elif args.location == 'left':
+    inputFilename = "left_boundary.txt"
+elif args.location == 'right':
+    inputFilename = "right_boundary.txt"
+
+def detach_display():
+    x, y, z = np.loadtxt(inputFilename, delimiter=' ', unpack=True)
+    fig, ax = plt.subplots()
+    plt.plot(x,z, label='elevation')
+    plt.xlabel('x / m')
+    plt.ylabel('z / m')
+    ax.yaxis.set_minor_locator(MultipleLocator(0.2))
+    plt.grid(True, which='minor')
+    plt.show()
+
+if os.fork():
+    # parent
+    pass
+else:
+    # child
+    detach_display()
-- 
cgit