Parameters and procedures for processing of measurement data obtained from a robotic total station (RTS) by Leica Geosystems.
The EDM distance correction functions use the default mean refraction
coefficient 0.13, unless argument k
is passed. The earth radius is
assumed to be 6.389 * 10e6 m.
The following code calculates scale correction values for the measured
slope distance slope_dist
from air temperature temperature
[°C], air
pressure pressure
[mbar], relative humidity humidity
, and instrument
EDM height height
[m]. The horizontal distance hz_dist
[m] is
determined using the corrected slope distance corr_dist
[m] and the
vertical angle v
[rad]:
real(kind=r8) :: temperature, pressure, humidity, height
real(kind=r8) :: ppm, ppm1, ppm2
real(kind=r8) :: corr_dist, hz_dist, slope_dist, v
temperature = 15.0_r8 ! Air temperature [°C].
pressure = 1010.0_r8 ! Air pressure [mbar].
humidity = 0.6_r8 ! Relative humidity [none].
height = 100.0_r8 ! Instrument height [m].
slope_dist = 42.0_r8 ! Slope distance [m].
v = dm_gon_to_rad(101.5_r8) ! Vertical angle [rad].
ppm1 = dm_rts_correction_atmospheric(temperature, pressure, humidity)
ppm2 = dm_rts_correction_sea_level(height)
ppm = ppm1 + ppm2
corr_dist = dm_rts_correction_distance(slope_dist, ppm, RTS_PRISM_LEICA_STANDARD)
hz_dist = dm_rts_distance_horizontal(corr_dist, v)
Formulas are taken from the Leica TM30/TS30 User Manual.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=r8), | public, | parameter | :: | RTS_PRISM_LEICA_STANDARD | = | 0.0_r8 |
Leica Standard Prism, GPR1 [mm]. |
real(kind=r8), | public, | parameter | :: | RTS_PRISM_LEICA_MINI | = | 17.5_r8 |
Leica Mini Prism, GMP101 [mm]. |
real(kind=r8), | public, | parameter | :: | RTS_PRISM_LEICA_360 | = | 23.1_r8 |
Leica 360° Prism, GRZ4/GRZ122 [mm]. |
real(kind=r8), | public, | parameter | :: | RTS_PRISM_LEICA_360_MINI | = | 30.0_r8 |
Leica 360° Mini Prism, GRZ101 [mm]. |
real(kind=r8), | public, | parameter | :: | RTS_PRISM_LEICA_TAPE | = | 34.4_r8 |
Leica Reflector Tape S, M, L [mm]. |
real(kind=r8), | public, | parameter | :: | RTS_PRISM_LEICA_REFLECTORLESS | = | 34.4_r8 |
Reflectorless [mm]. |
real(kind=r8), | public, | parameter | :: | RTS_PRISM_LEICA_MACHINE_AUTO | = | 28.1_r8 |
Machine Automation Power Prism, MPR122 [mm]. |
Generic interface to standard deviation functions.
Returns standard deviation of a single slope distance measurement.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=r8), | intent(inout) | :: | dists(:) |
Array of (slope) distances [m]. |
Returns the standard deviation of the arithmetic mean of the distance.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=r8), | intent(in) | :: | s |
Standard deviation of a single measurement. |
||
integer(kind=i8), | intent(in) | :: | n |
Number of measurements. |
Returns atmospheric correction value [ppm]. Multiply by 10e-6 before applying the correction value to a slope distance [m]. If no relative humidity is passed, the default 60 % of the instrument is used instead.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=r8), | intent(in) | :: | temperature |
Air temperature [°C]. |
||
real(kind=r8), | intent(in) | :: | pressure |
Air pressure [mbar, hPa]. |
||
real(kind=r8), | intent(in), | optional | :: | humidity |
Relative humidity from 0.0 to 1.0. |
Applied atmospheric correction [ppm] and prism constant [mmm] to uncorrected slope distance [m].
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=r8), | intent(in) | :: | slope_dist |
Uncorrected slope distance [m]. |
||
real(kind=r8), | intent(in) | :: | ppm |
Atmospheric scale correction [ppm, mm/km]. |
||
real(kind=r8), | intent(in) | :: | prism |
Additive constant of the reflector [mm]. |
The magnitude of the projection distortion is in accordance with the projection system used in a particular country, for which official tables are generally available. The used formula is valid for cylindrical projections such as that of Gauss-Krüger.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=r8), | intent(in) | :: | east |
Easting, distance from projection zero line with the scale factor 1 [km]. |
Returns sea level correction value [ppm] for an EDM of the given height above sea level [m]. The value of the result is always negative. Multiply by 10e-6 before applying the correction value to a slope distance [m].
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=r8), | intent(in) | :: | height |
Height of EDM above sea level [m]. |
Returns horizontal distance [m] from slope distance slope_dist
[m]
and vertical angle v
[rad]. The default mean refraction
coefficient k
is 0.13.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=r8), | intent(in) | :: | slope_dist |
Slope distance [m]. |
||
real(kind=r8), | intent(in) | :: | v |
Vertical cycle reading [rad]. |
||
real(kind=r8), | intent(in), | optional | :: | k |
Mean refraction coefficient. |
Returns (slope) distance as arithmetic mean of all measurements.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=r8), | intent(inout) | :: | dists(:) |
Array of (slope) distances [m]. |
Returns standard deviation of a single slope distance measurement.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=r8), | intent(inout) | :: | dists(:) |
Array of (slope) distances [m]. |
Returns the standard deviation of the arithmetic mean of the distance.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=r8), | intent(in) | :: | s |
Standard deviation of a single measurement. |
||
integer(kind=i8), | intent(in) | :: | n |
Number of measurements. |
Returns height difference [m] from slope distance slope_dist
[m]
and vertical angle v
[rad]. The default mean refraction
coefficient k
is 0.13.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=r8), | intent(in) | :: | slope_dist |
Slope distance [m]. |
||
real(kind=r8), | intent(in) | :: | v |
Vertical cycle reading [rad]. |
||
real(kind=r8), | intent(in), | optional | :: | k |
Mean refraction coefficient. |