5

I am trying to input (survey) line distance accurately using the Advanced Digitizing Panel. I am working in a layer with a UTM CRS and entering distance based on grid measurements. Unfortunately it seems the program is applying a scale factor but it seems to be applied backwards and I end up with a slightly larger number when it seems that if the program assumes I am entering Meters and applies a conversion to grid measure then it should be slightly shorter?

Ideally I would like to enter an overland measurement and have the program apply the correct scale factor for a local grid measurement. Is this possible?

In the image below I have entered d = 4.254 and used a python label of " round($length,3)||' m' " also to show the issue with all available decimal places " $length "

Keep in mind my knowledge of Python, and QGIS for that matter, is limited.

enter image description here

Vince
  • 20,017
  • 15
  • 45
  • 64
Mike
  • 91
  • 5
  • 1
    What is a scale factor "applied backwards"? Don't understand what exactly is the problem. Are you aware of the difference between planar and ellipsoidal distances? And: are both your project and your layer in the same CRS? See: https://gis.stackexchange.com/a/392388/88814 – Babel Apr 09 '23 at 20:02
  • Yes I think I do understand vaguely the planar and ellipsoidal distances and that seems to be the issue here. Project and layer are both using EPSG: 2958. The note on the survey I am referencing says " Distances on this plan are horizontal ground distances and can be converted to grid distances by multiplying by the average combined scale factor of 0.999785058 " So if I take the surveyed distance of 4.255 and multiply by 0.999785058 I get 4.254 and enter that but QGIS is giving me 4.254768732998201. That is a scale factor of 1.00018070827. – Mike Apr 09 '23 at 21:25
  • I thought I was working all in the same UTM grid units so if I do the conversion then why is QGIS trying to convert back to meters ? The survey is suggesting that scale factor should be 1.0002114988 or there abouts on average. – Mike Apr 09 '23 at 21:26
  • 1
    UTM units are in meters. So I'm not sure what else you expected. – Babel Apr 09 '23 at 21:33
  • 1
    We speek here of a difference in distance of 1 mm in real world! Does that really matter for your use case? If you are not an engineer and need high-precision accuracy, I would say you can ignore the difference. It would be hard to see the difference in the terrain. – Babel Apr 09 '23 at 21:36
  • I don't understand what you mean by "horizontal ground distances" vs. "grid distances". Not sure if that is the same as ellipsoidal distances. – Babel Apr 09 '23 at 21:37
  • Yes I think we are taking about the same thing in grid and ground distances as you referenced as planar and ellipsoidal distances. Are UTM grid units not different than ellipsoidal measure even if they are both recorded in meters ? I am just trying to accurately copy someone else's work so there is not any question of it being used properly with different numbers showing. Resulting in accumulated error over a greater distance. – Mike Apr 09 '23 at 22:31
  • I think at this level of accuracy it's almost impossible to reproduce the exactly same values. Rounding these numbers to 1 digit seams reasonable to me to avoid completely meaningless pseudo-precision and make your number better readable. Avoid overkill. See this great answer: https://gis.stackexchange.com/a/8674/88814 – Babel Apr 09 '23 at 22:51
  • For difference planimetric vs. ellipsoidal distance, google for it to find a lot of helpful explanations, e.g. videos etc. Short version: ellipsoidal distances are along great circles (shortest connection on the curved surface of the earth/the ellipsoid used to model the earth), whereas planimetric distances are measurements on the flattened (projected) map canvas. See e.g. here https://youtu.be/eHn540xFkHg and here https://gis.stackexchange.com/a/329165/88814 for when to use which one. – Babel Apr 09 '23 at 23:00
  • In both measurements, earths "real" shape, the geoid, not to speak of topography, is ignored. If you already want a accuracy in the mm scale, you should consider this. But then things start to get really complicated... So better don't overdo it and if you really have to reproduce a map with the exactly same values, instead of creating automatic labels based on measurements, use manually filled in attribute values, copied from your original. That would be probably the easier way. – Babel Apr 09 '23 at 23:02
  • Ok this has all been quite helpful. It seems that my UTM layer input is all planimetric and I am forcing a conversion to ellipsoidal by using "$length". Obviously no way to directly input ellipsoidal measurements into a UTM layer then ? I would not actually be "reproducing" the map by using manual labels so hope that does not become necessary. :) Trying to avoid the "sketch" survey problem and keep things to scale. – Mike Apr 09 '23 at 23:34
  • So the whole problem comes down how to introduce planimetric values in Advanced Digitizing? Maybe worth asking a separate question for this. I left and have no access to QGIS right now. – Babel Apr 09 '23 at 23:37
  • Ok will do. Many Thanks, Mike – Mike Apr 09 '23 at 23:59

3 Answers3

3

This is an area where cartographers and surveyors use terminology that is not fully aligned. There are actually 3 distances, shown on this diagram (which I have borrowed from https://community.myrockpile.com/t/what-is-the-difference-between-grid-and-ground/755, which also provides a partial explanation, and annotated in red)

Ground vs grid vs elliptical distance

What is shown on a survey (plat) is either ground distance or grid distance. There is generally a note on it saying which one, and giving a combined scale factor (csf) to convert between the two. This csf is a function of the (average) site elevation, relative to the ellipsoid, and the ellipsoid + geographical position given (in this case embedded in the UTM projection). For examples of the calculation see https://www.reddit.com/r/Surveying/comments/yoalwi/combined_scale_factor_calculation/ (reddit link, may go stale) or https://www.bluemarblegeo.com/knowledgebase/calculator-2020sp2/Scale_Factor_and_Convergence.htm (less informative but static).

What is used in GIS is either planimetric distance, which is the same as surveyors' grid [Edited: I originally mistyped 'ground'] distance, or ellipsoidal distance, which would be the measured distance along the earth's ellipsoid if the elevation were zero.

The advanced digitizing dialog uses planimetric / grid distance (see QGIS Advanced digitizing switch from Cartesian to Ellipse). You should either enter the distances as notated on the survey, or multiplied by the csf provided on the survey, based on whether the survey says distances are grid or ground. If you continue to use the same CRS, this should match exactly the length($geometry). In contrast, as others have said, $length will return the ellipsoidal distance, which will be very slightly greater.

The difference between ellipsoidal distance and grid/planimetric is largely a function of the subtended arc of the earth surface, i.e. the overall distance being measured. In your instance, you have seen that it makes for a difference of about 1 part in 5000 at that scale.

The remaining difference to ground distance is largely determined by elevation in the region in question.

Houska
  • 7,976
  • 19
  • 48
  • Thank You I will bookmark this for future reference. I think what I need to do is use the length ($geometry) as "round(length($geometry),3)||' m' " in my case. There may actually be a 4th situation where the measurement is recorded at the instrument height in a level orientation, being "Horizontal Ground Distance" similar to Grid Distance but at a specific elevation rather than at a zero elevation thus requiring a scale factor to bring it to a constant elevation "Grid Distance". Does that sound correct ? – Mike Apr 10 '23 at 01:37
  • 1
    You write: "planimetric distance, which is the same as surveyors' ground distance", but the image shows otherwise. There, "Ground distance (measured w/ surveying qgt)" is the top gray line, whereas "planimetric distance" is the black line at the bottom. I'm a bit confused as you use "ground distance" for both lines...? – Babel Apr 10 '23 at 08:54
  • In the image "Ground" means 1) Geoid, 2) topography or 3) topography + Geoid? All "on top" of ellipsoid? So the green line presents what exactly? The actual distance you have to walk in the terrain, going up and down? – Babel Apr 10 '23 at 08:56
  • 1
    Is there a name for the actual distance on earth's surface (the green "Ground" line on your image?). Like if you plan to build a road, how many asphalt you have to calculate depends on actual surface and would envolve a DEM to calculate. But does it have a name to distinguish it from 1) ground 2) ellipsoidal 3) grid/planimetric distances? – Babel Apr 10 '23 at 09:09
  • 1
    @Babel, thanks for the comments. I mistyped 'ground' for 'grid' at one point (it was right in the diagram, wrong in my text); have edited to fix, sorry for the confusion. My understanding is the "ground distance" is the actual distance seen by a distance meter/total station so it is the straight line above the green line. (In surveying lingo, what is recorded is 'horizontal' distance rather than 'slope distance' and the green curvy line's length would be the total slope distance if chopped into tiny bits. – Houska Apr 10 '23 at 10:06
  • Final comment: I am not a surveyor, just have spent a lot of time reconciling survey plans with GIS. Hopefully a professional surveyor will see this answer and suggest any improvements. Or a GIS professional who works in a government office converting sheafs of survey plats into a single parcel GIS layer. They deal with this a lot. – Houska Apr 10 '23 at 10:31
2

Be aware that there are two ways to measure distances: planimetric (cartesian) and ellipsoidal (respecting earth's curvature as modelled by the ellipsoid used in the CRS).

Planimetric lengths are calculated with length($geometry), ellipsoidal lengths with $length. When you use the in built measure line tool from the toolbar, you can choose which kind of measurement you want to use.

If you use UTM zones, inside the valid area of the CRS, differences should be minimal. In your case, we speak about 1 millimiter (!) distance in real world. Apart from very specific use cases where you need sub-mm precision like high-precision measurements in engineering (but then, you would be a specialist in the domain and know exactly what you need), such differences can be ignored.

Avoid overkill with meaningless pseudo-precision and make your numbers better readable. In this context, see also this answer about the connex between accuracy and precision and at what scale precision makes sense and when not: https://gis.stackexchange.com/a/8674/88814

I tested it with a line of your distance (ca. 4 meters) as well with a line of ca. 1615 km inside the valid of the CRS: see following screenshots:

Line in Toronto with EPSG:2958. See the difference between planimetric and ellipsoidal length measurement. As you can see from the street background, the difference is negligible: enter image description here

A line of more than 1616 km - the difference here is less than 600 meters: enter image description here

Babel
  • 71,072
  • 14
  • 78
  • 208
  • Ok this is quite helpful to know the difference between $length and length($geometry). I am not worried about the sub-mm differences but would like to match the measurements on record. What I don't understand is the conversion that QGIS is making when I use the Advanced Digitizing Panel input. I will try and see if using all the decimal places of my conversion to grid distances works. Perhaps that will be more accurate than the "Average Combined Scale Factor " quoted by the surveyor. Let's hope anyway. Not sure why it is converting though and if there is a setting to input in ellipsoid – Mike Apr 09 '23 at 23:00
  • See last comment above – Babel Apr 09 '23 at 23:12
1

Just to make things complete: if you have to draw lines with exact distances/angles in QGIS, you can also use Geoemtry Generator or Geometry by Expression. It uses planimetric distances. On the screenshot, I drew a line rectangular from the initial black line, starting from the end point of the black line to a point 4.254 m away, see measurement tool. The expression uses project() function:

project (
    end_point ($geometry),
    4.254,
    radians (degrees (main_angle ($geometry)) -90)
)

enter image description here

Babel
  • 71,072
  • 14
  • 78
  • 208