Skip to content

Commit

Permalink
Backup before switching branches
Browse files Browse the repository at this point in the history
  • Loading branch information
franklin1895 committed Jan 31, 2025
1 parent 56bd59b commit da84b36
Show file tree
Hide file tree
Showing 9 changed files with 443 additions and 50 deletions.
8 changes: 4 additions & 4 deletions data/Ocracoke_init_data/Ocracoke-CASCADE-parameters.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,22 +39,22 @@ Sandbag_elevation: 1.9
SeededRNG: true
Seedmax: 1000.0
Seedmin: 100.0
ShorefaceToe: 1560.3448275999995
ShorefaceToe: 1518.9655171999996
ShrubEl_max: 2.3
ShrubEl_min: 1.2
Shrub_ON: 0
SprayDist: 170
StormSeries: []
StormStart: 2
TMAX: 126
TMAX: 23
TideAmp: 1.2
TimeFruit: 5.0
UprootLimit: -0.2
beta: 0.04
disp_mu: -0.721891
disp_sigma: 1.5
dune_file: C:\Users\frank\PycharmProjects\CASCADE\data\Ocracoke_init_data\dunes\Sample_1_dune.npy
elevation_file: C:\Users\frank\PycharmProjects\CASCADE\data\Ocracoke_init_data\elevations\Topography_2019\Domain_49_topography_2019.npy
elevation_file: C:\Users\frank\PycharmProjects\CASCADE\data\Ocracoke_init_data\elevations\Sample_1_topography.npy
enable_sandbags: false
growth_param_file: growthparam_1000dam.npy
k_sf: 19324.753176079226
Expand All @@ -65,4 +65,4 @@ rmin: 0.55
s_sf_eq: 0.01698590034494604
sandbag_elevation: 1.8
sandbag_need: false
storm_file: C:\Users\frank\PycharmProjects\CASCADE\data\Ocracoke_init_data\storms\Synthetic_Storms\Ten_Percent_Storms\OCR_Future_StormList_99_10.npy
storm_file: C:\Users\frank\PycharmProjects\CASCADE\data\Ocracoke_init_data\storms\Hindcast_Storms\OCR_1997_2022_Final_Hindcast_Storms.npy
69 changes: 68 additions & 1 deletion scripts/ocracoke_ms/Future_Runs_Test.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

Management_Name = ['Status_Quo','Natural', 'Nourishment']
#RSLR_Rate = ['IL','I','IH']
RSLR_Rate = ['IL','IH']
RSLR_Rate = ['IL','I','IH']
Sink_Name = ['Erosional_Sink','Accretional_Sink']
#Sink_Name = ['Accretional_Sink']

Expand Down Expand Up @@ -50,6 +50,9 @@ def Process_Batch(Base_Name,
All_EP_Change = []
All_Roadway_Abandonment = []
All_Abandonment_Reason = []
All_Initial_Island_Elevations = []
All_Final_Island_Elevations = []
All_Elevation_Changes = []
Island_Drowning = {}
Years_Modeled_List = []
Relocation_TS = []
Expand Down Expand Up @@ -110,6 +113,12 @@ def Process_Batch(Base_Name,
buffer_length=buffer_length,
number_barrier3d_models=number_barrier3d_models)

Elevation_Change_Output, Initial_Elevation_Output, Final_Elevation_Output = Calculate_Island_Elevation_Metrics(
cascade=Cascade_List,
buffer_length=buffer_length,
number_barrier3d_models=number_barrier3d_models)


Total_Volume_TS.append(copy.deepcopy(Total_Volume))
All_Nourishment_TS.append(copy.deepcopy(All_Nourishment))
Relocation_TS.append(copy.deepcopy(roadway_relocation))
Expand All @@ -121,6 +130,11 @@ def Process_Batch(Base_Name,
Model_Run_Years.append(copy.deepcopy(Model_Run_Year))
Drowning_Domain_Locations.append(copy.deepcopy(Drowning_Domain_Location))
Total_Overwash_TS.append(copy.deepcopy(Total_OW_Volume))
All_Initial_Island_Elevations.append(copy.deepcopy(Initial_Elevation_Output))
All_Final_Island_Elevations.append(copy.deepcopy(Final_Elevation_Output))
All_Elevation_Changes.append(copy.deepcopy(Elevation_Change_Output))

z = 10


# Calculate the mean values for all runs
Expand Down Expand Up @@ -152,6 +166,9 @@ def Process_Batch(Base_Name,
'All_Nourishment_TS':All_Nourishment_TS,
'All_Overwash_volume':Total_Overwash_TS,
'Roadway_Abandonment_Reason':All_Abandonment_Reason,
'Island_Initial_Elevation':All_Initial_Island_Elevations,
'Island_Final_Elevation':All_Final_Island_Elevations,
'Island_Elevation_Change':All_Elevation_Changes
}

All_Values_Data_Frame = pd.DataFrame(All_Values_Dict)
Expand Down Expand Up @@ -370,6 +387,56 @@ def Calculate_Roadway_Abandonmet(cascade, years_modeled, buffer_length, number_b
x = 10
return(Road_Drowning_Years,Road_Drowning_Reason)

def Calculate_Island_Elevation_Metrics(cascade, buffer_length, number_barrier3d_models):
Domains_of_Interest = range(buffer_length, (number_barrier3d_models - buffer_length))
b3d = cascade.barrier3d

Elevation_Change_TS = []
Initial_Elevation_TS = []
Final_Elevation_TS = []

for k in Domains_of_Interest:
Temp_B3D = b3d[k]
Shoreline_Change_TS = Temp_B3D._ShorelineChangeTS

# Find the initial and final island interior elevations
initial_elev = Temp_B3D.DomainTS[0]
final_elev = Temp_B3D.DomainTS[Temp_B3D.time_index-1]

# Find the initial dune crest elevation
initial_dune = Temp_B3D.DuneDomain[0]
final_dune_elev = Temp_B3D.DuneDomain[Temp_B3D.time_index-1]

# Rotate np arrays to concat with
initial_dune_elev_r = np.rot90(initial_dune,k=3)
final_dune_elev_r = np.rot90(final_dune_elev,k=3)

# Add dunes to front of initial elevation
combined_initial_elev = np.concatenate((initial_dune_elev_r,initial_elev),axis=0)

distance_traveled = int(abs(np.sum(Shoreline_Change_TS[0:int(Temp_B3D.time_index)])))

blank_cells = np.full((distance_traveled,int(Temp_B3D.BarrierLength)),-0.3)

updated_final_array = np.concatenate((np.concatenate((blank_cells,final_dune_elev_r),axis=0),final_elev),axis=0)

if len(combined_initial_elev) > len(updated_final_array):
len_difference = len(combined_initial_elev) - len(updated_final_array)
extra_cells = np.full((len_difference,int(Temp_B3D.BarrierLength)),-0.3)
updated_final_array = np.concatenate((updated_final_array,extra_cells),axis=0)
elif len(combined_initial_elev) < len(updated_final_array):
len_difference = len(updated_final_array) - len(combined_initial_elev)
extra_cells = np.full((len_difference,int(Temp_B3D.BarrierLength)),-0.3)
combined_initial_elev = np.concatenate((combined_initial_elev,extra_cells),axis=0)

elev_difference = np.subtract(updated_final_array,combined_initial_elev)

Elevation_Change_TS.append(copy.deepcopy(elev_difference))
Initial_Elevation_TS.append(copy.deepcopy(combined_initial_elev))
Final_Elevation_TS.append(copy.deepcopy(updated_final_array))

return (Elevation_Change_TS,Initial_Elevation_TS,Final_Elevation_TS)

def Calculate_Roadway_Relocation(cascade, years_modeled,buffer_length, number_barrier3d_models):
Relocations = []
Frequency = []
Expand Down
28 changes: 19 additions & 9 deletions scripts/ocracoke_ms/Hindcast_Test_Script.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@

run_name_batch = []

run_name_batch.append('OCR_1974_1997_Hindcast_Final')
run_name_batch.append('OCR_1997_2020_Hindcast_Final')

#run_name_batch.append('OCR_1974_1997_Hindcast_Final')
#run_name_batch.append('OCR_1997_2020_Hindcast_Final')
run_name_batch.append('OCR_IH_Status_Quo_S14_Erosional_Sink')
nt_run = 23
number_barrier3d_models = 70
buffer_length = 15
Expand Down Expand Up @@ -121,15 +121,15 @@
if Interior_Dune_Building[years] == 1:
Temp_Years_Interior.append(copy.deepcopy(years))
if len(Temp_Years) > 0:
Dune_Rebuilding_Years[str(m-4)] = copy.deepcopy(Temp_Years)
Dune_Rebuilding_Years[str(m)] = copy.deepcopy(Temp_Years)
if len(Temp_Years_Interior) > 0:
Dune_Interior_Building_Years[str(m-4)] = copy.deepcopy(Temp_Years_Interior)
Dune_Interior_Building_Years[str(m)] = copy.deepcopy(Temp_Years_Interior)
if len(Temp_Years) > 0 and len(Temp_Years_Interior) == 0:
Combined_Dune_building_years[str(m-4)] = (copy.deepcopy(Temp_Years))
Combined_Dune_building_years[str(m)] = (copy.deepcopy(Temp_Years))
elif len(Temp_Years) == 0 and len(Temp_Years_Interior) > 0:
Combined_Dune_building_years[str(m-4)] = copy.deepcopy(Temp_Years_Interior)
Combined_Dune_building_years[str(m)] = copy.deepcopy(Temp_Years_Interior)
elif len(Temp_Years) > 0 and len(Temp_Years_Interior) > 0:
Combined_Dune_building_years[str(m-4)] = copy.deepcopy(np.sort(np.append(Temp_Years,Temp_Years_Interior)))
Combined_Dune_building_years[str(m)] = copy.deepcopy(np.sort(np.append(Temp_Years,Temp_Years_Interior)))


All_Dune_Rebuilding_TS_Temp.append(copy.deepcopy(All_Dune_Rebuilding))
Expand Down Expand Up @@ -183,14 +183,24 @@
if All_Sandbag_Building[years] == 1:
Temp_Years.append(copy.deepcopy(years))
if len(Temp_Years) > 0:
Sandbag_Years[str(n-4)] = (copy.deepcopy(Temp_Years))
Sandbag_Years[str(n)] = (copy.deepcopy(Temp_Years))
All_Sandbag_Building_TS_Temp.append(copy.deepcopy(All_Sandbag_Building))
All_Sandbag_Building_TS.append(copy.deepcopy(All_Sandbag_Building_TS_Temp))
Sandbag_Presence_Years_Dict[str(run_name_batch[k])] = copy.deepcopy(Sandbag_Years)


domain_nums = range(11,50)

# Look at the interior to show differences









# Set Font

SMALL_SIZE = 8
Expand Down
80 changes: 80 additions & 0 deletions scripts/ocracoke_ms/Make_Interior_Transects.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
import copy

import numpy as np
import time

import matplotlib.pyplot as plt

import os
import imageio


os.chdir('C:\\Users\\frank\\PycharmProjects\\CASCADE\\Run_output')


#run_name_batch='OCR_1997_2020_Hindcast_Final'
run_name_batch='OCR_1997_2020_Hindcast_Final'

nt_run = 23
number_barrier3d_models = 70
buffer_length = 15


# --------- plot ---------
output = np.load(run_name_batch + ".npz", allow_pickle=True)
cascade = output["cascade"]
cascade = cascade[0]
b3d = cascade.barrier3d[48]
ny = np.size(b3d)
roads = cascade.roadways[48]
dunes = b3d.DuneDomain


transects_ts = []
for k in range(cascade._nt):
dune_temp = np.mean(dunes[k],axis=0)
dune_temp = dune_temp+ (b3d.BermEl )
interior_mean = np.mean(b3d.DomainTS[k], axis=1)
if k == 0:
dummy_cells = b3d.ShorelineChangeTS[k]
elif k == 22:
dummy_cells = abs(np.sum(b3d.ShorelineChangeTS))
else:
dummy_cells = abs(np.sum(b3d.ShorelineChangeTS[:k+1]))
if dummy_cells > 0:
add_cells = np.zeros(int(dummy_cells))
dune_temp = np.append(add_cells,dune_temp)
final_transect = np.append(dune_temp,interior_mean)
transects_ts.append(copy.deepcopy(final_transect*10))

#transect_10 = b3d.DomainTS[10][:,10]

#plt.plot(transects_ts[0][0:40],label='0')
'''ax = plt.gca()
plt.plot(transects_ts[12][0:35],label='12')
plt.plot(transects_ts[13][0:35],label='13')
ax.set_ylim([-2,4])
plt.title('Dune Rebuilding')
plt.ylabel('')
plt.xlabel('Cross-shore position')
plt.legend()
#plt.savefig(fname=('C:\\Users\\frank\\OneDrive - University of North Carolina at Chapel Hill\\Chapter 3\\Figures\\Hindcast_Rebuilding_47.eps'),format='eps')
plt.show()'''


ax = plt.gca()
plt.axhline(y = 2.2, color = 'k', linestyle = '--')
plt.plot(transects_ts[22][0:35],label='22')
#plt.plot(transects_ts[15][0:40],label='15')
ax.set_ylim([-2,3])
plt.title('Dune Rebuilding')
plt.ylabel('')
plt.xlabel('Cross-shore position')
plt.legend()
plt.savefig(fname=('C:\\Users\\frank\\OneDrive - University of North Carolina at Chapel Hill\\Chapter 3\\Figures\\Hindcast_Rebuilding_48_End.eps'),format='eps')
plt.show()

x = 10


transect = b3d.DomainTS[0][:,0]
Loading

0 comments on commit da84b36

Please sign in to comment.