Skip to content

Commit

Permalink
New script for extracting model outputs from CASCADE for marsh accret…
Browse files Browse the repository at this point in the history
…ion modeling
  • Loading branch information
franklin1895 committed Nov 20, 2023
1 parent 5c3682f commit 951f0fb
Show file tree
Hide file tree
Showing 6 changed files with 72 additions and 20 deletions.
2 changes: 1 addition & 1 deletion cascade/bmft_coupler.py
Original file line number Diff line number Diff line change
Expand Up @@ -733,7 +733,7 @@ def update_Marsh(self, ny, time_step, barrier3d):
x_f = int(len(self._bmftc[iB3D].elevation[0]) - self._x_s_offset[iB3D] - self._bmftc[iB3D]._Forest_edge[
self._bmftc[iB3D].startyear + bmft_time_step])

B3D_Elev_Marsh = self._bmftc[iB3D].amp - self._bmftc[iB3D].Dmin + 0.03 - bmft._bmftc._msl[self._bmftc[iB3D].startyear]
B3D_Elev_Marsh = self._bmftc[iB3D].amp - self._bmftc[iB3D].Dmin + 0.03 - self._bmftc[iB3D]._msl[self._bmftc[iB3D].startyear]

b3d_transect = b3d_transect[:x_f]
b3d_transect = np.flip(b3d_transect)
Expand Down
2 changes: 1 addition & 1 deletion data/Alongshore_Test-parameters.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -61,5 +61,5 @@ nn: 0.5
rmax: 0.95
rmin: 0.55
s_sf_eq: 0.01698590034494604
storm_file: /Users/ceclmac/PycharmProjects/CASCADE/data/marsh_init_data/Baseline/StormList_2_baseline.npy
storm_file: /Users/ceclmac/PycharmProjects/CASCADE/data/marsh_init_data/Ten_Percent_Increase/StormList_49_10_percent_increase.npy
threshold_in: 0.25
Binary file added data/marsh_init_data/Hog_Dune.npy
Binary file not shown.
Binary file added data/marsh_init_data/Hog_Topo.npy
Binary file not shown.
24 changes: 6 additions & 18 deletions scripts/marsh_ms/Batch_Run.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,16 @@
d_file = "/Users/ceclmac/PycharmProjects/CASCADE/data/marsh_init_data/Smith_Dune.npy"
e_file = "/Users/ceclmac/PycharmProjects/CASCADE/data/marsh_init_data/Smith_Topo.npy"
# Storm file path name
RSLR_File = '/data/marsh_init_data/High_SLR.npy'
#RSLR_File = '/data/marsh_init_data/Low_SLR.npy'
Num_Storms = 50
c_wd = os.getcwd()
nt_run = 150 # Number of years model will run
run_name = []
storm_name = []
for i in range(0,Num_Storms):
run_name.append('Smith_Baseline_Storms_High_RSLR_'+str(i))
storm_name.append('/Users/ceclmac/PycharmProjects/CASCADE/data/marsh_init_data/Baseline/StormList_'+
str(i)+'_baseline.npy')
run_name.append('Hog_10_Percent_High_RSLR_'+str(i))
storm_name.append('/Users/ceclmac/PycharmProjects/CASCADE/data/marsh_init_data/Ten_Percent_Increase/StormList_'+
str(i)+'_10_percent_increase.npy')
num_of_batches = 1
marsh_dynamics_on = True
run_set_RSLR = True
Expand All @@ -48,18 +48,6 @@
rmin = 0.55
rmax = 0.95

if number_barrier3d_models > 1:
elevation_file = [
c_wd + "/data/Hog_Topo.npy"
] * number_barrier3d_models
dune_file = [c_wd + "/data/barrier3d-dunes.npy"] * number_barrier3d_models
else:
elevation_file = c_wd + "/data/Simple_Hog_backshore.npy"
dune_file = c_wd + "/data/barrier3d-default-dunes.npy"


storm_file = c_wd + "/data/cascade-default-storms.npy"

# Call function


Expand Down Expand Up @@ -135,7 +123,7 @@ def Batch_Runs(

return cascade

for j in range(0,Num_Storms):
for j in range(0,num_storms):

Batch_Runs(
nt=nt_run,
Expand All @@ -150,7 +138,7 @@ def Batch_Runs(
background_erosion=-1.00,
sea_level_constant=False, # not an array
enable_shoreline_offset=False,
marsh_dynamics=marsh_dynamics_on,
marsh_dynamics=True,
sea_level_rise_rate=0.004,
user_inputed_RSLR=run_set_RSLR,
user_inputed_RSLR_rate=set_RSLR,
Expand Down
64 changes: 64 additions & 0 deletions scripts/marsh_ms/Process_Cascade_Output.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
import numpy as np
import matplotlib.pyplot as plt
import os

os.chdir("/Users/ceclmac/OneDrive - University of North Carolina at Chapel Hill/Chapter 2/Cascade_Output_NPZ")

#island_names = ['Smith','Hog','Wreck','Metompkin_Marsh','Metompkin_Bay']
island_names = ['Metompkin_Bay']


Storm_Intensity = ['_Baseline_','_Two_Percent_','_Ten_Percent_']
Storm_Intensity_Hog = ['_Baseline_','_2_Percent_','_10_Percent_']

RSLR = ['Low','Int','High']
for j in range(len(island_names)):
for k in range(len(RSLR)):
for z in range(len(Storm_Intensity)):
bmft_elevation_TS = []
marsh_edge_TS = []
forest_edge_TS = []
shoreline_TS = []
shoreline_toe_TS = []
for i in range(0,50):
if island_names[j] == 'Hog':
run_name = (str(island_names[j]) + str(Storm_Intensity_Hog[z])+ str(
RSLR[k]) + '_RSLR_' + str(i) + '.npz')
elif island_names[j] == 'Metompkin_Bay':
if Storm_Intensity[z] == '_Baseline_':
run_name = (str(island_names[j]) + str(Storm_Intensity[z])+ str(
RSLR[k]) + '_RSLR_' + str(i) + '.npz')
else:
run_name = (str(island_names[j]) + str(Storm_Intensity[z]) + 'Storms_' + str(
RSLR[k]) + '_RSLR_' + str(i) + '.npz')
else:
run_name = (str(island_names[j])+str(Storm_Intensity[z])+'Storms_'+str(RSLR[k])+'_RSLR_'+str(i)+'.npz')
output = np.load(run_name, allow_pickle=True)
cascade = output["cascade"]
cascade = cascade[0]
b3d = cascade._barrier3d[0]
shoreline_TS.append(b3d.x_s_TS)
shoreline_toe_TS.append(b3d.x_t_TS)
if cascade._marsh_dynamics == True:
marsh_edge_TS.append(cascade._bmft_coupler._bmftc[0].Marsh_edge)
forest_edge_TS.append(cascade._bmft_coupler._bmftc[0].Forest_edge)
bmft_elevation_TS.append(cascade._bmft_coupler._bmftc[0].elevation)

save_name = '/Users/ceclmac/OneDrive - University of North Carolina at Chapel Hill/Chapter 2/Cascade_TS_Output/'\
+str(island_names[j])+str(Storm_Intensity[z])+'Storms_'+str(RSLR[k])+'_RSLR'
if cascade._marsh_dynamics == True:
Output_info = [
shoreline_TS,
shoreline_toe_TS,
bmft_elevation_TS,
marsh_edge_TS,
forest_edge_TS,
]
else:
Output_info = [
shoreline_TS,
shoreline_toe_TS
]

np.save(file=save_name,arr = Output_info)
print('Saved '+str(island_names[j])+str(Storm_Intensity[z])+'Storms_'+str(RSLR[k])+'_RSLR')

0 comments on commit 951f0fb

Please sign in to comment.