import numpy as np
import xarray as xr
[docs]
def generate_grid_parameters(bathy_data: xr.DataArray) -> dict:
"""
Generate the grid parameters for the SWAN model.
Parameters
----------
bathy_data : xr.DataArray
Bathymetry data.
Must have the following dimensions:
- lon: longitude
- lat: latitude
Returns
-------
dict
Grid parameters for the SWAN model.
Contact @bellidog on GitHub for more information.
"""
return {
"xpc": int(np.nanmin(bathy_data.lon)), # x origin
"ypc": int(np.nanmin(bathy_data.lat)), # y origin
"alpc": 0, # x-axis direction
"xlenc": int(
np.nanmax(bathy_data.lon) - np.nanmin(bathy_data.lon)
), # grid length in x
"ylenc": int(
np.nanmax(bathy_data.lat) - np.nanmin(bathy_data.lat)
), # grid length in y
"mxc": len(bathy_data.lon) - 1, # number mesh x, una menos pq si no SWAN peta
"myc": len(bathy_data.lat) - 1, # number mesh y, una menos pq si no SWAN peta
"xpinp": np.nanmin(bathy_data.lon), # x origin
"ypinp": np.nanmin(bathy_data.lat), # y origin
"alpinp": 0, # x-axis direction
"mxinp": len(bathy_data.lon) - 1, # number mesh x
"myinp": len(bathy_data.lat) - 1, # number mesh y
"dxinp": abs(
bathy_data.lon[1].values - bathy_data.lon[0].values
), # size mesh x (resolution in x)
"dyinp": abs(
bathy_data.lat[1].values - bathy_data.lat[0].values
), # size mesh y (resolution in y)
}