Начнём с авторской проекции "key.txt". Видим использование линейного сдвига путём подбора параметров false_easting и false_northing. Результат совмещения слоёв на взгляд неплох. Имеется общий сдвиг в юго-западном направлении. Кроме того, на северо-востоке сдвиг больше, чем на юго-западе. Выводы: во-первых, параметры линейного сдвига можно подобрать и получше; во-вторых, похоже, имеется небольшое отличие масштаба от единицы при отсутствии разворота.
Начнём с определения проекции слоя "msk54-3":
Код: Выделить всё
CoordSys Earth Projection 8, 1001, "m", 80.733333333333, 0, 1, 3250000, -5612900.566 Bounds (2900000, 200000) (3400000, 700000)
Сколем несколько общих точек по краям и в центре:
Код: Выделить всё
1 3132745.1906579 420747.75211561 132743.51605869 20745.181566274
2 3145973.7632817 449669.04271388 145971.98969111 49666.522175232
3 3185067.6034519 471999.21476312 185065.49989011 71996.564196683
4 3213307.3524459 467654.86635807 213305.19113907 67652.125772395
5 3180538.3519215 434183.15331588 180536.57833094 34180.812815708
6 3150789.834082 402643.87324254 150788.28322197 2641.2926910622
7 3169349.290419 393503.65994151 169347.87154754 -6498.8505949988
8 3194197.636033 418799.86584433 194195.96968312 18797.665374086
9 3209494.3777822 426682.91048327 209492.46395384 26680.519972404
Вычислим сдвиг как средние разности координат: ∆X = -3000001.7818398569 м, ∆Y = -400002.5005343738 м. Прибавим эти величины к соответствующим параметрам исходной проекции и получем проекцию "msk":
Код: Выделить всё
CoordSys Earth Projection 8, 1001, "m", 80.733333333333, 0, 1, 249998.218160143, -6012903.06653437 Bounds (-100000, -200000) (400000, 300000)
Невязки полученной модели достигают 0.5 метра:
Код: Выделить всё
1 -0.107 0.070
2 -0.008 0.020
3 0.322 0.150
4 0.379 0.240
5 -0.008 -0.160
6 -0.231 0.080
7 -0.363 0.010
8 -0.115 -0.300
9 0.132 -0.110
Попробуем улучшить ситуацию, применив конформное преобразование:
Код: Выделить всё
CoordSys Earth Projection 8, 1001, "m", 80.733333333333, 0, 1, 3250000, -5612900.566 Affine Units "m", 0.9999960792673227, -4.4279826379369796e-06, -2999987.418850312, 4.4279826379369796e-06, 0.9999960792673227, -400014.86972437327 Bounds (-100000, -200000) (400000, 300000)
Невязки не превышают 0.3 метра:
Код: Выделить всё
1 0.110 -0.077
2 0.029 -0.182
3 0.107 0.034
4 0.073 0.266
5 -0.038 -0.148
6 -0.004 0.084
7 -0.169 0.132
8 -0.131 -0.167
9 0.022 0.059
Подтверждается наблюдение, что масштаб несколько отличается от единицы, а разворот практически отсутствует, всего 0.000004428°.
Проекция с использованием аффинного преобразования:
Код: Выделить всё
CoordSys Earth Projection 8, 1001, "m", 80.733333333333, 0, 1, 3250000, -5612900.566 Affine Units "m", 0.99999751608269261, -7.4162417231403678e-06, -2999990.6915455041, 2.0224485630690556e-06, 0.9999965684422456, -400007.44163471251 Bounds (-100000, -200000) (400000, 300000)
Невязки находятся в пределах 0.23 метра:
Код: Выделить всё
1 0.081 0.021
2 -0.067 -0.102
3 0.000 0.031
4 0.020 0.193
5 -0.038 -0.159
6 0.047 0.130
7 -0.063 0.128
8 -0.065 -0.218
9 0.086 -0.024
Выводы: Борис прав, "msk54-3" и "msk" неоднородны. Возможно, лучшее, что можно сделать, это использовать аффинное преобразование, только для вывода ключа следует взять несколько десятков общих точек.