Conformal transformation.
Conformal transformation on the plane is widely used in geodesy when creating local coordinate systems in small areas, limited by the size of the settlement.
Based of Coordinates transformation orthogonal
Theory and practice:
- COORDINATE TRANSFORMATIONS FOR CADASTRAL SURVEYING
- Weighted Coordinate Transformations
- conformal transformations 1-4 power
See doc/*
The procedure for compiling is:
make
Input Data doc/data.dat:
1 1334.71 285.94 66.29 83477.64 47377.60 216.28 1.0
2 563.67 -5197.34 60.21 82557.14 41916.51 210.21 1.0
3 4444.27 1153.79 67.76 86610.19 48160.39 217.77 1.0
4 -252.07 2881.90 65.41 81962.05 50016.34 215.42 1.0
5 1334.71 285.94 66.29
6 563.67 -5197.34 60.21
7 4444.27 1153.79 67.76
8 -252.07 2881.90 65.41
./geofindkey doc/data.dat report.dat
Result report.dat:
key:
(NORM)
--0-----
82135.4073
47128.1437
149.9631
--1-----
0.999787994227
-0.027289778074
1.000606333521
========
1.000160369835
-1.5635324426
var:
1 1334.7100 285.9400 66.2900 83477.6400 47377.6000 216.2800 1 -0.0024 -0.0008 +0.0133 -0.0002735462 -0.0000
2 563.6700 -5197.3400 60.2100 82557.1400 41916.5100 210.2100 1 -0.0165 +0.0132 -0.0004 0.0002137624 +0.0093
3 4444.2700 1153.7900 67.7600 86610.1900 48160.3900 217.7700 1 +0.0318 +0.0160 -0.0058 -0.0000341993 -0.0355
4 -252.0700 2881.9000 65.4100 81962.0500 50016.3400 215.4200 1 -0.0129 -0.0283 -0.0072 -0.0003963128 +0.0189
5 1334.7100 285.9400 66.2900 83477.6376 47377.5992 216.2933
6 563.6700 -5197.3400 60.2100 82557.1235 41916.5232 210.2096
7 4444.2700 1153.7900 67.7600 86610.2218 48160.4060 217.7642
8 -252.0700 2881.9000 65.4100 81962.0371 50016.3117 215.4128
diff:
0.0269 0.0248 0.0115 0.0003672639 0.0292
./geofindkey -m EQUAL doc/data.dat report.dat
Result report.dat:
zvezdochiot@devuan-zvezdochiot:~/WORK/git/geo/geofindkey$ cat report.dat
key:
(EQUAL)
--0-----
82135.6504
47128.1020
150.0025
--1-----
0.999627684101
-0.027285402318
1.000000000000
========
1.000160369835
-1.5635324426
var:
1 1334.7100 285.9400 66.2900 83477.6400 47377.6000 216.2800 1 +0.0255 -0.0826 +0.0125 -0.0002735462 +0.0864
2 563.6700 -5197.3400 60.2100 82557.1400 41916.5100 210.2100 1 +0.1591 +0.8071 +0.0025 0.0002137624 +0.8224
3 4444.2700 1153.7900 67.7600 86610.1900 48160.3900 217.7700 1 -0.4426 -0.1913 -0.0075 -0.0000341993 +0.4822
4 -252.0700 2881.9000 65.4100 81962.0500 50016.3400 215.4200 1 +0.2581 -0.5332 -0.0075 -0.0003963128 +0.5918
5 1334.7100 285.9400 66.2900 83477.6655 47377.5174 216.2925
6 563.6700 -5197.3400 60.2100 82557.2991 41917.3171 210.2125
7 4444.2700 1153.7900 67.7600 86609.7474 48160.1987 217.7625
8 -252.0700 2881.9000 65.4100 81962.3081 50015.8068 215.4125
diff:
0.3798 0.6997 0.0117 0.0003672639 0.7958
Input Data doc/data.dat:
N-030E-030 4401251.530614 385234.157603 1.0000 6179000 626000 11.0000 1.0000
N-020E-020 4410870.677752 395053.144641 2.0000 6189000 636000 12.0000 1.0000
N-020E+020 4410435.860319 433933.803034 3.0000 6189000 676000 13.0000 1.0000
N-015E-015 4415680.047375 399965.233324 4.0000 6194000 641000 14.0000 1.0000
N-015E+015 4415353.577891 429130.894381 5.0000 6194000 671000 15.0000 1.0000
N-005E-005 4425298.398598 409794.581471 6.0000 6204000 651000 16.0000 1.0000
N-005E+005 4425189.337943 419519.905407 7.0000 6204000 661000 17.0000 1.0000
N+000E+000 4430107.388185 414711.833121 8.0000 6209000 656000 18.0000 1.0000
N+005E-005 4435025.557099 409902.047661 9.0000 6214000 651000 19.0000 1.0000
N+005E+005 4434916.259102 419630.797946 10.0000 6214000 661000 20.0000 1.0000
N+015E-015 4444862.266609 400277.353296 11.0000 6224000 641000 21.0000 1.0000
N+015E+015 4444533.661039 429473.851498 12.0000 6224000 671000 22.0000 1.0000
N+020E-020 4449780.815068 395462.452433 13.0000 6229000 636000 23.0000 1.0000
N+020E+020 4449342.200149 434397.932415 14.0000 6229000 676000 24.0000 1.0000
N+030E+030 4458958.974978 444251.183014 15.0000 6239000 686000 25.0000 1.0000
N-030E+030 4400600.730781 443534.428587 16.0000
N-025E-025 4406061.173485 390142.784765 17.0000
N-025E+025 4405518.245899 438734.982441 18.0000
N-010E-010 4420489.286328 404879.046903 19.0000
N-010E+010 4420271.402474 424326.260500 20.0000
N+010E-010 4439943.848599 405090.553046 21.0000
N+010E+010 4439725.015373 424551.472040 22.0000
N+025E-025 4454699.497928 390645.854478 23.0000
N+025E+025 4454150.636770 439323.710888 24.0000
N+030E-030 4459618.319154 385827.563453 25.0000
./geoconformal -p 5 doc/data2.dat report.dat
Result report.dat:
Power: 5
Mean: 15
M 4430107.1035 414715.9447 8.0000 6209000.0000 656000.0000 18.0000
NORM = 4.2442e-05, 4.2442e-05, 0.163663
cond(G) = 344.167
Place (X,Y):
key(0):
--0--:
6208999.7548
656004.2298
--1--:
1.02793265322
-0.0115379918737
--2--:
-1.86441957028e-08
-6.61875925805e-10
--3--:
3.62997666575e-15
-3.50555995009e-17
--4--:
-5.10244217007e-23
-6.75852311145e-24
--5--:
1.71236306923e-28
2.34991032411e-27
Decentralize:
key:
--0--:
2541558.8451
-3690045.9985
--1--:
0.0541190506137
4.4654307921
--2--:
3.54407510072e-07
-2.03772176325e-06
--3--:
-4.85117887654e-14
4.63609637196e-13
--4--:
1.0287260806e-21
-5.24136027545e-20
--5--:
1.71236306923e-28
2.34991032411e-27
Elevation (H):
key:
--0--:
10.0000
--1--:
1
var:
N-030E-030 4401251.5306 385234.1576 1.0000 6179000.0000 626000.0000 11.0000 1 +0.0000 -0.0000 +0.0000
N-020E-020 4410870.6778 395053.1446 2.0000 6189000.0000 636000.0000 12.0000 1 -0.0000 +0.0000 +0.0000
N-020E+020 4410435.8603 433933.8030 3.0000 6189000.0000 676000.0000 13.0000 1 +0.0000 +0.0000 +0.0000
N-015E-015 4415680.0474 399965.2333 4.0000 6194000.0000 641000.0000 14.0000 1 -0.0000 +0.0000 +0.0000
N-015E+015 4415353.5779 429130.8944 5.0000 6194000.0000 671000.0000 15.0000 1 -0.0000 -0.0000 +0.0000
N-005E-005 4425298.3986 409794.5815 6.0000 6204000.0000 651000.0000 16.0000 1 -0.0000 +0.0000 +0.0000
N-005E+005 4425189.3379 419519.9054 7.0000 6204000.0000 661000.0000 17.0000 1 -0.0000 -0.0000 +0.0000
N+000E+000 4430107.3882 414711.8331 8.0000 6209000.0000 656000.0000 18.0000 1 +0.0000 -0.0000 +0.0000
N+005E-005 4435025.5571 409902.0477 9.0000 6214000.0000 651000.0000 19.0000 1 +0.0000 +0.0000 +0.0000
N+005E+005 4434916.2591 419630.7979 10.0000 6214000.0000 661000.0000 20.0000 1 +0.0000 -0.0000 +0.0000
N+015E-015 4444862.2666 400277.3533 11.0000 6224000.0000 641000.0000 21.0000 1 +0.0000 +0.0000 +0.0000
N+015E+015 4444533.6610 429473.8515 12.0000 6224000.0000 671000.0000 22.0000 1 +0.0000 -0.0000 +0.0000
N+020E-020 4449780.8151 395462.4524 13.0000 6229000.0000 636000.0000 23.0000 1 -0.0000 -0.0000 +0.0000
N+020E+020 4449342.2001 434397.9324 14.0000 6229000.0000 676000.0000 24.0000 1 -0.0000 -0.0000 +0.0000
N+030E+030 4458958.9750 444251.1830 15.0000 6239000.0000 686000.0000 25.0000 1 -0.0000 +0.0000 +0.0000
N-030E+030 4400600.7308 443534.4286 16.0000 6179000.0003 686000.0003 26.0000
N-025E-025 4406061.1735 390142.7848 17.0000 6184000.0000 631000.0000 27.0000
N-025E+025 4405518.2459 438734.9824 18.0000 6184000.0001 681000.0001 28.0000
N-010E-010 4420489.2863 404879.0469 19.0000 6199000.0000 646000.0000 29.0000
N-010E+010 4420271.4025 424326.2605 20.0000 6199000.0000 666000.0000 30.0000
N+010E-010 4439943.8486 405090.5530 21.0000 6219000.0000 646000.0000 31.0000
N+010E+010 4439725.0154 424551.4720 22.0000 6219000.0000 666000.0000 32.0000
N+025E-025 4454699.4979 390645.8545 23.0000 6233999.9999 630999.9999 33.0000
N+025E+025 4454150.6368 439323.7109 24.0000 6234000.0000 681000.0000 34.0000
N+030E-030 4459618.3192 385827.5635 25.0000 6238999.9997 625999.9997 35.0000
diff:
0.0000 0.0000 0.0000
./geohelmert3d doc/data.dat report.dat
Result report.dat:
Mean: 4
M 1522.6450 -218.9275 64.9175 83651.7550 46867.7100 214.9200
NORM = 0.000285193
cond(G) = 7.24047
Units: DEG
key:
82135.4074
47128.1438
150.0150
-212.0052
6.71662e-05
-5.55191e-05
-1.56359
1 1334.7100 285.9400 66.2900 83477.6400 47377.6000 216.2800 1 -0.0024 -0.0008 +0.0126
2 563.6700 -5197.3400 60.2100 82557.1400 41916.5100 210.2100 1 -0.0165 +0.0132 -0.0033
3 4444.2700 1153.7900 67.7600 86610.1900 48160.3900 217.7700 1 +0.0318 +0.0160 -0.0037
4 -252.0700 2881.9000 65.4100 81962.0500 50016.3400 215.4200 1 -0.0129 -0.0283 -0.0057
5 1334.7100 285.9400 66.2900 83477.6376 47377.5992 216.2926
6 563.6700 -5197.3400 60.2100 82557.1235 41916.5232 210.2067
7 4444.2700 1153.7900 67.7600 86610.2218 48160.4060 217.7663
8 -252.0700 2881.9000 65.4100 81962.0371 50016.3117 215.4143
diff:
0.0269 0.0248 0.0104
Input Data doc/szb.dat:
OKD-4 8.605 74.08666667 234.38916667 7471.2970 14588.7117 98.7445
OKD-5 8.869 81.18888889 254.73888889 7474.2548 14589.4514 97.7433
OKD-K3-1 3.670 82.43944444 339.05361111 7477.0949 14580.7517 96.8713
OKD-K3-4 3.690 70.66833333 161.16 7469.9723 14580.8231 97.6075
OKD-K5P 3.938 71.95527778 137.52222222 7469.9811 14579.3211 97.6057
OKD-K7L 4.685 83.96444444 17.82444444 7477.1099 14577.8330 96.8789
OKD-K7L 4.684 276.03361111 197.82722222 7477.1099 14577.8330 96.8789
OKD-K5P 3.939 288.04361111 317.52472222 7469.9811 14579.3211 97.6057
OKD-K3-4 3.691 289.32972222 341.16111111 7469.9723 14580.8231 97.6075
OKD-K3-1 3.671 277.55583333 159.05805556 7477.0949 14580.7517 96.8713
OKD-5 8.869 278.80944444 74.74055556 7474.2548 14589.4514 97.7433
OKD-4 8.604 285.91444444 54.38972222 7471.2970 14588.7117 98.7445
OKD-11 3.889 71.6025 313.60777778
OKD-12 3.889 288.39138889 133.60805556
Exec convert:
./geoszbtoyxh doc/szb.dat yxh.dat
Result yxh.dat:
OKD-4 -6.7277 -4.8185 2.3593 7471.2970 14588.7117 98.7445 1
OKD-5 -8.4553 -2.3069 1.3585 7474.2548 14589.4514 97.7433 1
OKD-K3-1 -1.3006 3.3977 0.4829 7477.0949 14580.7517 96.8713 1
OKD-K3-4 1.1244 -3.2954 1.2215 7469.9723 14580.8231 97.6075 1
OKD-K5P 2.5285 -2.7616 1.2198 7469.9811 14579.3211 97.6057 1
OKD-K7L 1.4261 4.4354 0.4926 7477.1099 14577.8330 96.8789 1
OKD-K7L 1.4261 4.4344 0.4923 7477.1099 14577.8330 96.8789 1
OKD-K5P 2.5291 -2.7624 1.2201 7469.9811 14579.3211 97.6057 1
OKD-K3-4 1.1247 -3.2964 1.2217 7469.9723 14580.8231 97.6075 1
OKD-K3-1 -1.3007 3.3987 0.4827 7477.0949 14580.7517 96.8713 1
OKD-5 -8.4554 -2.3067 1.3583 7474.2548 14589.4514 97.7433 1
OKD-4 -6.7269 -4.8178 2.3592 7471.2970 14588.7117 98.7445 1
OKD-11 -2.6720 2.5452 1.2274
OKD-12 -2.6721 2.5453 1.2270
Input Data doc/szbunknow.dat:
OKD-4 -1 74.08666667 234.38916667 7471.2970 14588.7117 98.7445
OKD-5 -1 81.18888889 254.73888889 7474.2548 14589.4514 97.7433
OKD-K3-1 -1 82.43944444 339.05361111 7477.0949 14580.7517 96.8713
OKD-K3-4 -1 70.66833333 161.16 7469.9723 14580.8231 97.6075
OKD-K5P -1 71.95527778 137.52222222 7469.9811 14579.3211 97.6057
OKD-K7L -1 83.96444444 17.82444444 7477.1099 14577.8330 96.8789
OKD-K7L -1 276.03361111 197.82722222 7477.1099 14577.8330 96.8789
OKD-K5P -1 288.04361111 317.52472222 7469.9811 14579.3211 97.6057
OKD-K3-4 -1 289.32972222 341.16111111 7469.9723 14580.8231 97.6075
OKD-K3-1 -1 277.55583333 159.05805556 7477.0949 14580.7517 96.8713
OKD-5 -1 278.80944444 74.74055556 7474.2548 14589.4514 97.7433
OKD-4 -1 285.91444444 54.38972222 7471.2970 14588.7117 98.7445
OKD-11 3.889 71.6025 313.60777778
OKD-12 3.889 288.39138889 133.60805556
Exec finding unknown distances:
./geositer500 doc/szbunknow.dat szb.dat
Result sbz.dat:
OKD-4 8.6045 74.08666667 234.38916667 7471.2970 14588.7117 98.7445
OKD-5 8.8697 81.18888889 254.73888889 7474.2548 14589.4514 97.7433
OKD-K3-1 3.6731 82.43944444 339.05361111 7477.0949 14580.7517 96.8713
OKD-K3-4 3.6912 70.66833333 161.16000000 7469.9723 14580.8231 97.6075
OKD-K5P 3.9388 71.95527778 137.52222222 7469.9811 14579.3211 97.6057
OKD-K7L 4.6861 83.96444444 17.82444444 7477.1099 14577.8330 96.8789
OKD-K7L 4.6861 276.03361111 197.82722222 7477.1099 14577.8330 96.8789
OKD-K5P 3.9388 288.04361111 317.52472222 7469.9811 14579.3211 97.6057
OKD-K3-4 3.6912 289.32972222 341.16111111 7469.9723 14580.8231 97.6075
OKD-K3-1 3.6731 277.55583333 159.05805556 7477.0949 14580.7517 96.8713
OKD-5 8.8697 278.80944444 74.74055556 7474.2548 14589.4514 97.7433
OKD-4 8.6045 285.91444444 54.38972222 7471.2970 14588.7117 98.7445
OKD-11 3.8890 71.60250000 313.60777778
OKD-12 3.8890 288.39138889 133.60805556
Input Data doc/gps.dat:
A 2303.443 5622.903 149.307 2302.854 5623.223 148.856 1.0
B 2474.753 5830.133 114.434 2474.540 5829.768 114.844 1.0
C 2748.516 5313.559 109.125 2748.808 5314.058 109.855 1.0
(2a+3b+5c)/10 2577.372 5530.400 118.754
(a+8b+c)/10 2484.998 5757.752 117.390
(6a+2b+2c)/10 2426.719 5602.480 134.296
a 2303.443 5622.903 149.307
b 2474.753 5830.133 114.434
c 2748.516 5313.559 109.125
(a+b)/2 2389.098 5726.518 131.870
(a+c)/2 2525.980 5468.231 129.216
(b+c)/2 2611.635 5571.846 111.779
A* 2302.854 5623.223 148.856
B* 2474.540 5829.768 114.844
C* 2748.808 5314.058 109.855
Exec finding unknown distances:
./geodeform500 doc/gps.dat gpsout.dat
Result gpsout.dat:
Mean: 3
M 2508.9040 5588.8650 124.2887 2508.7340 5589.0163 124.5183
Deformation coordinate base: 3
(CONST)
A 2303.4430 5622.9030 149.3070 2302.8540 5623.2230 148.8560
B 2474.7530 5830.1330 114.4340 2474.5400 5829.7680 114.8440
C 2748.5160 5313.5590 109.1250 2748.8080 5314.0580 109.8550
(2a+3b+5c)/10 2577.3720 5530.4000 118.7540 2577.2210 5530.5915 118.9920
(a+8b+c)/10 2484.9980 5757.7520 117.3900 2484.7597 5757.4651 117.7270
(6a+2b+2c)/10 2426.7190 5602.4800 134.2960 2426.2635 5602.6663 134.0994
a 2303.4430 5622.9030 149.3070 2302.8540 5623.2230 148.8560
b 2474.7530 5830.1330 114.4340 2474.5400 5829.7680 114.8440
c 2748.5160 5313.5590 109.1250 2748.8080 5314.0580 109.8550
(a+b)/2 2389.0980 5726.5180 131.8700 2388.7176 5726.5110 131.8718
(a+c)/2 2525.9800 5468.2310 129.2160 2525.8176 5468.4730 129.4140
(b+c)/2 2611.6350 5571.8460 111.7790 2611.4850 5571.9893 112.0412
A* 2302.8540 5623.2230 148.8560 2302.2650 5623.5430 148.4050
B* 2474.5400 5829.7680 114.8440 2474.3270 5829.4030 115.2540
C* 2748.8080 5314.0580 109.8550 2749.1000 5314.5570 110.5850
https://github.com/Geo-Linux-Calculations/geofindkey