meteoio merge requestshttps://gitlabext.wsl.ch/snow-models/meteoio/-/merge_requests2021-05-25T12:19:31Zhttps://gitlabext.wsl.ch/snow-models/meteoio/-/merge_requests/1Inlcuding curvature length scale in listonwind, and fixing the calculation of...2021-05-25T12:19:31ZNander WeverInlcuding curvature length scale in listonwind, and fixing the calculation of curvatureThis fixes the calculation of curvature by including the distance between points. It also implements the curvature length scale ETA in the ListonWind algorithm (see eta in Eq. 14 in [Liston et al., 2006](https://journals.ametsoc.org/view...This fixes the calculation of curvature by including the distance between points. It also implements the curvature length scale ETA in the ListonWind algorithm (see eta in Eq. 14 in [Liston et al., 2006](https://journals.ametsoc.org/view/journals/hydr/7/2/jhm486_1.xml?tab_body=fulltext-display)).
To be specified in the configuration via:
```
VW::algorithms = LISTON_WIND
VW::liston_wind::eta = 5000
```https://gitlabext.wsl.ch/snow-models/meteoio/-/merge_requests/2Fix for safeGet, where instead of nodata, it would return the boundary grid...2021-08-18T06:45:02ZNander WeverFix for safeGet, where instead of nodata, it would return the boundary grid...Fix for safeGet, where instead of nodata, it would return the boundary grid cell. Prevents unwanted discontinuities in calculations of curvature.
When using ListonWind, using a value of ETA that exceeds a few grid cells, noticeable disc...Fix for safeGet, where instead of nodata, it would return the boundary grid cell. Prevents unwanted discontinuities in calculations of curvature.
When using ListonWind, using a value of ETA that exceeds a few grid cells, noticeable discontinuities occur in wind speed. See the attached example for interpolated wind speed on a digital elevation model. X and Y units are hectometers. ETA was set to 5000m, so within 5km of the boundary (at X and Y=50), discontinuties occur (left figure). Right figure is after the proposed fix.
![bugfix_safeget](/uploads/5519a6aa3764e4c5df1ec11acf70375e/bugfix_safeget.png)https://gitlabext.wsl.ch/snow-models/meteoio/-/merge_requests/3Fixing the case where rounding errors make the isSameGeolocalization test...2021-08-23T07:10:36ZNander WeverFixing the case where rounding errors make the isSameGeolocalization test...Fixing the case where rounding errors make the isSameGeolocalization test fail, even though the two grids are basically the same Geolocalization.
Example:
the following test for two grids failed, even though it's clear that it's relate...Fixing the case where rounding errors make the isSameGeolocalization test fail, even though the two grids are basically the same Geolocalization.
Example:
the following test for two grids failed, even though it's clear that it's related to floating point rounding errors (see bold)
- grid2D.getNx()==target.grid2D.getNx() ---> 486 == 486
- grid2D.getNy()==target.grid2D.getNy() ---> 200 == 200
- llcorner: <Coords>
Altitude -999
Lat/Long (-4°45'0.000000" , -12°15'0.000000")
Lat/Long (-4.7500000000 , -12.2500000000)
X/Y_coords (-2416423 , 11129371)
Projection PROJ (3031)
EPSG 3031
</Coords>
- target.llcorner: <Coords>
Altitude -999
Lat/Long (-4°45'0.000000" , -12°15'0.000000")
Lat/Long (-4.7500000000 , -12.2500000000)
X/Y_coords (-2416423 , 11129371)
Projection PROJ (3031)
EPSG 3031
</Coords>
- cellsize==target.cellsize ---> -999 != 5528.85
- **ur_lat==target.ur_lat ---> 5.20000000000000017764 != 5.19999980926513671875**
- **ur_lon==target.ur_lon ---> 12.00000000000000177636 != 12.00000000000000000000**