erpas / rgis

RiverGIS is a QGIS plugin for creating HEC-RAS flow model geometry from spatial data. The functionality is similar to that of HEC-GeoRAS
http://rivergis.com
50 stars 14 forks source link

Wrong stationing in cross section when bathymetry info is added #36

Open marcoalicera opened 6 years ago

marcoalicera commented 6 years ago

I have experienced wrong stationing in cross sections when I have added points from survey. The cross section gets some 4m wider. The picture below shows in magenta the cross section based purely on a dtm (grid size 2m) and the black line is after adding some points. image This is the screen shot of the points image I am not able to provide a set of data to test it, but the plugin ProfileFromPoints behaves as expected with the same corss section and points

marcoalicera commented 6 years ago

Here the data of the case of the picture above.The cross sections that is wrongly produced after he bathymetry is added is RS= 416. Qgis and HEC-RAS project

I was reading the code and I think the sentence "Station" = ST_LineLocatePoint(xs.geom, b.geom) * ST_Length(xs.geom) in the file rivergis/dlg_rasXSUpdate.py should be correct. Is the sationing defined or modified in any other place?

erpas commented 6 years ago

Hi Marco,

I think your problem is in the Pseudo-Mercator projection that you use in your project - usually it will give you a wrong line measure, the bigger error the farther you are from the equator. See https://support.esri.com/en/technical-article/000011356 Try to use a local projected coordinate system and see the difference.

marcoalicera commented 6 years ago

Hi, the projection used is not the real one, I have everything in a local projection with very little deformation, but the behavior is reproduced in the projection used in the example (EPSG 32633), which also has cartesian coordinates.

The problem does not happen in all corss sections, only on some of the ones with bathymetry, and it does it only after the bathimetry points.

It should not happen what I see at XS 416 after the bathymetry.

To work around the problem I use the plugin Profile-from-Points It uses the shapely.geometry package, doing it rigth

This is what I got from the section 416 (HEC-RAS) or ID 12 in the shp file distance elevation
93.428 19.337
99.598 19.055
102.212 17.654
103.749 17.551
106.915 19.454
111.444 19.467

And this what RiverGis produces at the bathymetry and after it distance elevation 94.189 19.337 100.359 19.055 100.89 18.772 102.992 17.654 107.564 17.551 108.619 18.185 110.731 19.454 115.26 19.467 123.872 19.42 125.872 19.42

image

image

Unfortunately, my coding capabilities are very limited and I am not able to perform the same SQL query outside the plugin.

Should we blame ST_LineLocatePoint()??

How esle could I help you?

marcoalicera commented 6 years ago

By the way, I am using QGIS 2.18.20, the LTR, so I am still working on RiverGIS 1.0. I wonder if version 3.0 is compatible with QGIS 2.18 and how could I upgrade to it without moving to QGIS 3