noaa-ocs-modeling/EnsemblePerturbation

tidal perturbations

Opened this issue · 3 comments

What's the strategy you guys use to perturb the tides to capture arbitrary storm-tide timing?

oh whoops, this function call is outdated and will not work. Good catch @krober10nd , I need to update the examples

the function generate_adcirc_configuration is now in CoupledModelDriver.

The function works by reading JSON files from the specified directory and extracting model configuration from them. The JSON files are written by creating an AdcircRunConfiguration or NEMSADCIRCRunConfiguration object and calling .write_directory(directory)

Perturbations can be designated by editing configure_modeldriver.json (which is wrapped by a ModelDriverJSON object) and adding any number of cases in which any number of variables can be perturbed to any value.

Thanks Zach for the clarification.

I'll try these out. I guess I was looking for an existing methodology that made sense to perturb start times to "adequately" sample the storm-tide uncertainty.

This is of course a science question that constantly arises in our field.

@krober10nd here is the current example to perturb ATCF tracks by 4 variables (2 scalar, 2 spatial) and build configurations per-value:

variables = [
MaximumSustainedWindSpeed,
RadiusOfMaximumWinds,
AlongTrack,
CrossTrack,
]
perturber = VortexPerturber(
storm=STORM,
start_date=MODELED_START_TIME,
end_date=MODELED_START_TIME + MODELED_DURATION,
)
track_filenames = perturber.write(
number_of_perturbations=3, variables=variables, directory=TRACK_DIRECTORY, alpha=0.5,
)
perturbations = {
f'besttrack_{index}': {'besttrack': {'fort22_filename': track_filename}}
for index, track_filename in enumerate(track_filenames)
}

I will look into how we might perturb tidal forcing. I'm not an oceanographer but I imagine we could perturb phase + timings of tides after they are read from the TPXO dataset