Creating new Wind and Wave data for Coastal Vulnerability Model

I’m trying to create my own wind and wave data for a Coastal Vulnerability model, starting by using ERA5 time series data for the daily maximum of wind from 2019-2024.

I’ve read through the previous forum posts about the required columns for the shapefile and how these are used in the model. I feel I understand how to create a new file, although I am still unclear as to how to original WWIII dataset, provided with the software, was created. Seeing as the new data is meant to be in the same format as this dataset, I want to be sure I’m doing it correctly.

Firstly, the description in the User Manual for how to create your own Wind and Wave data explains the 5 variables needed (each with 16 equiangular segments), with REI_VX and V10PCT_X appearing to be the same calculation - the highest 10% of wind speeds per segment. However checking this against the WWIII data provided shows these values are different. For example, point at LONG -5 LAT 53.5 has a REI_V180 of 15.78m/s and a V10PCT_180 of 18.42m/s.
There are also columns for V20PCT_X and V_MAX_X, I assume these are the top 20% of wind speeds and the max wind speed for each sector but it’s unclear what these are for or if they are needed in a new dataset.

Any help would be greatly appreciated!

Hi @kevin.walsh , welcome to the forum. This is not an easy task. Hopefully I can help to explain it.

There is a subtle difference between REI_V* and V10PCT_*.

For REI, start with your entire timeseries of wind speeds across all sectors and select the top 10% of these observations. Then assign each observation in this subset to one of 16 sectors based on direction. From these, calculate the average speed in each sector. Some sectors may have 0 observations and that is okay.

For V10PCT, start with your entire timeseries of wind speeds. Assign each observation to one of 16 sectors. Take the top 10% of the observations in each sector and calculate their average.

If they are not described in the User’s Guide, then they are not used by the model and can be omitted.

1 Like

Thanks so much Dave, that really clears it up!
I did had that impression originally after reading the User manual but I wasn’t sure after checking the forum and the examining WaveWatchIII data that is supplied with the software.

For REI, start with your entire timeseries of wind speeds across all sectors and select the top 10% of these observations. Then assign each observation in this subset to one of 16 sectors based on direction. From these, calculate the average speed in each sector. Some sectors may have 0 observations and that is okay.

For V10PCT, start with your entire timeseries of wind speeds. Assign each observation to one of 16 sectors. Take the top 10% of the observations in each sector and calculate their average.

This description was indeed very clear and helpful. The calculation of WAVP_X values is also done as for the V10PCT and not the REI ones, is this correct? Thank you

Yes, that is true for WavP_X. But for WavPPCT_X, it follows the same logic as for REI_PCTX. I have updated the User’s Guide to hopefully make these variables more clear:

1 Like

Hi Kevin

Let me know how you get along; I could not figure out how to do this using ERA5 data. (i am not a climate scientist and also don’t have experience using any sort of modeling software’s).

Goodluck
N

Hi, sorry I just saw this now. It took some time but I was eventually able to do this using python and a lot of help from ChatGPT! Once you have identified which variables from the ERA5 data you want and have them downloaded, its a process of combining the NetCDFs and extracting the relevant data to match the WWIII format, as supplied with the software. I have very little experience with python so this was a big learning curve for me. You may be able to achieve the same thing using GIS tools but python was the most efficient for me.

Hi Dave, I’m revisiting this after having to pause work on it for a few months. I have a related question regarding the wave data.

I have 5 years of wave data from the Atlantic–European North West Shelf–Wave Physics Reanalysis dataset, which offers higher spatial resolution (~1.9kmx1.5km) and improved coastal accuracy compared to ERA5 wind data (~30x20km)

If I were to use this dataset in InVEST, could I:

  1. Extract the relevant wave statistics,

  2. Format them to match the structure of WWIII data, and

  3. Merge them with the ERA5 wind data?

Since the datasets differ in spatial resolution, a single ERA5 wind value would correspond to multiple, spatially distinct wave data points.

Would this be a valid approach? Moreover, given that the wave dataset already represents local wave conditions, would it make sense to reduce the Max Fetch Distance parameter (e.g., to around 5 km) to minimize the model’s simulation of locally generated waves?

Hi @kevin.walsh , I don’t have experience with either of the datasets in question so my responses will be quite general.

Does the dataset have relevant variables you could use to calculate the same metrics you find in the WWIII table?

The typical approach would probably be to aggregate the higher-resolution dataset to match the grid of the lower resolution dataset, and then join them. And choose an aggregation function (min, max, mean, etc) that makes sense for the given variable.

I’m not sure I follow completely. The model is always going to do its own wind & wave calculations based on fetch distance, depth, and the wind & wave variables in the WWIII table (or your substitute table), so I don’t think you want to artificially adjust the fetch distance parameter. If you already have good local data on wave power and you want to use that instead of the model’s own calculations, then I think you have to do some post-processing to join your wave power data to the shore points. And then bin the values to calculate your own R_wave values, and finally re-compute the coastal exposure index.

Hi Dave,

Thanks for the response.

As a follow up:

Yes it does. I have extracted the significant wave height and direction and categorized them in the same way the WWIII dataset was - in 16 equiangular segments for each of the REI,V, WavP etc. variables.

This was my initial approach, with a fetch distance of 100km - chosen somewhat arbitrarily, its approximately the width of the Irish Sea in many places (from Ireland to Great Britain). However, after analyzing the results, this led to a large portion of my coastline (Ireland) being exposed to “local waves”. The calculation of the local wave power from the wind data, although useful, is a bit crude in some instances. For example it seems to average out the water depth across the whole fetch segment, which in some cases is may km long, which would over-simplify things in my view.

Since the Max Fetch Distance is user defined, I measured the average width of enclosed bays and areas which have no coverage from my Wave dataset - this was about 5km.

Running this led to just a small portion of the shoreline points being exposed to predominantly “Local” waves, The remainder of the shoreline points were assigned wave values based on the wave model I cited previously. The Wind values seem to be more or less the same as when i used the coarser resolution and longer fetch distance - but i need to check this out a bit more to confirm.

Hope that makes sense! I think I’m happy with the results but just wanted to raise this on here in case there are any obvious flaws in the methodology.

Cool, it sounds like you’re using the fetch distance parameter as it was intended.

That is indeed what the model does. I agree it’s a crude approach. If there are other methods that aren’t too computationally expensive (there can be a lot of these calculations) we would happily consider them!