CHLNDDEV / oceanmesh

Automatic coastal ocean mesh generation in Python and C++. **under development**
GNU General Public License v3.0
47 stars 15 forks source link

Wavelength_sizing_function Error #45

Closed ml14je closed 2 years ago

ml14je commented 2 years ago

The grid.values are given in SI units of metres in wavelength_sizing_function of oceanmesh/edgefx.py. These need to be translated to the grid coordinate system. Should be an easy fix?

krober10nd commented 2 years ago

hm, for the wavelength sizing function, it has to calculate the wavelength of the M2 tidal constituent. It does this in SI units naturally because gravity and frequency use meters and seconds.

If you're in WSG84 (which you can check by looking at the CRS attribute, I guess you could multiply by the 111e3*cos(mean(y)) to get to meters where y represents the latitude coordinates in your domain.

ml14je commented 2 years ago

I understand that, but since individuals then feed that into their edge_size function, surely it needs to be converted? Sorry, I am just coming across this issue now. I understand I can quite simply perform the above scaling factor, but thought perhaps there was a more robust approach taking into account the user-prescribed crs.

krober10nd commented 2 years ago

That’s what I’m suggesting. If you’re meshing in degrees, the above logic I wrote in the previous post will convert the edge lengths to degrees then since everything else is in degrees, it’s all fine. If you want to mesh in meters and you’re in a map projection nothing needs to be done there since it’s already in meters.