Местные системы координат в WKT 2
Статья даёт представление о том, как следует конструировать описание местных систем координат, на примерах.
Введение
Во времена QGIS 2 описание систем координат производилось в формате PROJ4. По возможностям он практически эквивалентен формату OGC WKT 1. Следует отметить общее в обоих форматах задание трансформации датума через элемент TOWGS84. Также общим является отсутствие дополнительных преобразований, что ставило под вопрос возможность определения городских систем координат, такие преобразования использующих.
В QGIS 3 стандартом описания систем координат стал формат WKT 2. Важным его отличием от предшественника стало использование преобразований. Помимо прочего, это сделало ненужным элемент TOWGS84 и сняло затруднения с определением городских систем координат.
На момент написания статьи действуют спецификации OGC Well-known text representation of coordinate reference systems.[1] Они зафиксированы в стандарте ISO 19162:2019.[2]
1. Классические проекции
Бо́льшая часть местных систем координат в Российской Федерации построена на географически подходящей зоне СК-42 или СК-63 и отличается от неё лишь параметрами сдвига EPSG:8806 False easting и EPSG:8807 False northing. Определение таких систем в WKT 2 не отличается от WKT 1.
В качестве примера приведём МСК-47 зона 2, основанную на СК-63 зона C3. Параметры можно найти на сайте MapBasic[3] или получить аддитивно от второй зоны EPSG:3352 Pulkovo 1942 / CS63 zone C2[4] с учётом параметров сдвига.
PROJCRS["Pulkovo 1942 / MSK47 zone 2",
BASEGEOGCRS["Pulkovo 1942",
DATUM["Pulkovo 1942",
ELLIPSOID["Krassowsky 1940",6378245,298.3,
LENGTHUNIT["metre",1]]],
PRIMEM["Greenwich",0,
ANGLEUNIT["degree",0.0174532925199433]],
ID["EPSG",4284]],
CONVERSION["MSK47 zone 2",
METHOD["Transverse Mercator",
ID["EPSG",9807]],
PARAMETER["Latitude of natural origin",0.1,
ANGLEUNIT["degree",0.0174532925199433],
ID["EPSG",8801]],
PARAMETER["Longitude of natural origin",30.95,
ANGLEUNIT["degree",0.0174532925199433],
ID["EPSG",8802]],
PARAMETER["Scale factor at natural origin",1,
SCALEUNIT["unity",1],
ID["EPSG",8805]],
PARAMETER["False easting",2250000,
LENGTHUNIT["metre",1],
ID["EPSG",8806]],
PARAMETER["False northing",-6200000,
LENGTHUNIT["metre",1],
ID["EPSG",8807]]],
CS[Cartesian,2],
AXIS["northing (X)",north,
ORDER[1],
LENGTHUNIT["metre",1]],
AXIS["easting (Y)",east,
ORDER[2],
LENGTHUNIT["metre",1]],
USAGE[
SCOPE["unknown"],
AREA["Europe - Russia - MSK47 zone 2"],
BBOX[58.41,28.67,61.19,33.74]]]
Обратите внимание на элемент BBOX. Благодаря ему программы могут при выборе системы координат показать пользователю на карте прямоугольник, охватывающий область действия системы координат. Он содержит величины Широта минимальная, Долгота минимальная, Широта максимальная, Долгота максимальная в системе координат WGS 84.
2. Системы координат с особым датумом
Сюда отнесём также системы со стандартным датумом, но с трансформацией датума, которой нет в базе данных EPSG или которая имеется, но в EPSG односится к другому датуму. Примером может служить МСК-33[5] с выведенными для территории Владимирской области значениями семи параметров.
Самый известный пример в этом классе, конечно, МСК Москвы на эллипсоиде Бесселя.[6]
Используем конструкцию BOUNDCRS, которая связывает исходную систему координат SOURCECRS, в роли которой выступает проекция, с конечной TARGETCRS, в роли которой выступает WGS 84, через трансформацию ABRIDGEDTRANSFORMATION:
BOUNDCRS[
SOURCECRS[
PROJCRS["Moscow",
BASEGEOGCRS["Unknown datum based upon the Bessel 1841 ellipsoid",
DATUM["Not specified (based on Bessel 1841 ellipsoid)",
ELLIPSOID["Bessel 1841",6377397.155,299.1528128,
LENGTHUNIT["metre",1,
ID["EPSG",9001]]]],
PRIMEM["Greenwich",0,
ANGLEUNIT["degree",0.0174532925199433],
ID["EPSG",8901]]],
CONVERSION["Moscow",
METHOD["Transverse Mercator",
ID["EPSG",9807]],
PARAMETER["Latitude of natural origin",55.6666666666667,
ANGLEUNIT["degree",0.0174532925199433],
ID["EPSG",8801]],
PARAMETER["Longitude of natural origin",37.5,
ANGLEUNIT["degree",0.0174532925199433],
ID["EPSG",8802]],
PARAMETER["Scale factor at natural origin",1,
SCALEUNIT["unity",1],
ID["EPSG",8805]],
PARAMETER["False easting",0,
LENGTHUNIT["metre",1],
ID["EPSG",8806]],
PARAMETER["False northing",0,
LENGTHUNIT["metre",1],
ID["EPSG",8807]]],
CS[Cartesian,2],
AXIS["(E)",east,
ORDER[1],
LENGTHUNIT["metre",1,
ID["EPSG",9001]]],
AXIS["(N)",north,
ORDER[2],
LENGTHUNIT["metre",1,
ID["EPSG",9001]]]]],
TARGETCRS[
GEOGCRS["WGS 84",
DATUM["World Geodetic System 1984",
ELLIPSOID["WGS 84",6378137,298.257223563,
LENGTHUNIT["metre",1]]],
PRIMEM["Greenwich",0,
ANGLEUNIT["degree",0.0174532925199433]],
CS[ellipsoidal,2],
AXIS["geodetic latitude (Lat)",north,
ORDER[1],
ANGLEUNIT["degree",0.0174532925199433]],
AXIS["geodetic longitude (Lon)",east,
ORDER[2],
ANGLEUNIT["degree",0.0174532925199433]],
ID["EPSG",4326]]],
ABRIDGEDTRANSFORMATION["Transformation from Moscow to WGS84",
METHOD["Coordinate Frame rotation (geog2D domain)",
ID["EPSG",9607]],
PARAMETER["X-axis translation",316.151,
ID["EPSG",8605]],
PARAMETER["Y-axis translation",78.924,
ID["EPSG",8606]],
PARAMETER["Z-axis translation",589.650,
ID["EPSG",8607]],
PARAMETER["X-axis rotation",1.57273,
ID["EPSG",8608]],
PARAMETER["Y-axis rotation",-2.69209,
ID["EPSG",8609]],
PARAMETER["Z-axis rotation",-2.34693,
ID["EPSG",8610]],
PARAMETER["Scale difference",1.0000084507,
ID["EPSG",8611]]]]
В данном случае применена трансформация EPSG:9607 Coordinate Frame rotation (geog2D domain), но могут быть использованы и другие.[7]
N. B.: Мне не удалось подставить элемент BBOX так, чтобы мой QGIS 3.10 воспринял его.
Городские системы координат
Это системы основаны на охватывающей зоне СК-42 или СК-63 с дополнительным преобразованием. Обычно это конформное преобразование на плоскости, которое является частным случаем аффинного. В WKT 2 коэффициенты аффинного преобразования таким образом участвуют в формулах перехода от исходной проекции к целевой (городской) системе:
X2 = A0 + A1 * X1 + A2 * Y1
Y2 = B0 + B1 * X1 + B2 * Y1
Для примера возьмём определение, обнаруженное в Интернете:[8]
"--- Местная система координат г. Екатеринбург ---"
"уточненная",3008,1001,7,60.05,0,1,1500000,-11057.63,7,0.9999960304,0.0077980643,-1541421.56859,-0.0077980643,0.9999960304,-6238537.78326,-150000,-150000,150000,150000
В этой строке MAPINFOW.PRJ мы видим систему координат на основе базовой проекции СК-63 зона W1 с дополнительным аффинным преобразованием, порядок параметров которого A1, A2, A0, B1, B2, B0.
Также дан охват Bounds, но он не похож на правду, слишком широк.
Применим конструкцию DERIVEDPROJCRS, которая дополняет базовую проекцию СК-63 зона W1 аффинным преобразованием:
DERIVEDPROJCRS["Ekaterinburg",
BASEPROJCRS["Pulkovo 1942 / CS63 zone W1",
BASEGEOGCRS["Pulkovo 1942",
DATUM["Pulkovo 1942",
ELLIPSOID["Krassowsky 1940",6378245,298.3,
LENGTHUNIT["metre",1]]],
PRIMEM["Greenwich",0,
ANGLEUNIT["Degree",0.0174532925199433]],
ID["EPSG",4284]],
CONVERSION["CS63 zone C0",
METHOD["Transverse Mercator",
ID["EPSG",9807]],
PARAMETER["Latitude of natural origin",0.1,
ANGLEUNIT["degree",0.0174532925199433],
ID["EPSG",8801]],
PARAMETER["Longitude of natural origin",60.05,
ANGLEUNIT["degree",0.0174532925199433],
ID["EPSG",8802]],
PARAMETER["Scale factor at natural origin",1,
SCALEUNIT["unity",1],
ID["EPSG",8805]],
PARAMETER["False easting",1500000,
LENGTHUNIT["metre",1],
ID["EPSG",8806]],
PARAMETER["False northing",0,
LENGTHUNIT["metre",1],
ID["EPSG",8807]]]
],
DERIVINGCONVERSION["Affine",
METHOD["Affine parametric transformation",
ID["EPSG",9624]],
PARAMETER["A0",-1541421.56859,
LENGTHUNIT["metre",1],
ID["EPSG",8623]],
PARAMETER["A1",0.9999960304,
SCALEUNIT["coefficient",1],
ID["EPSG",8624]],
PARAMETER["A2",0.0077980643,
SCALEUNIT["coefficient",1],
ID["EPSG",8625]],
PARAMETER["B0",-6238537.78326,
LENGTHUNIT["metre",1],
ID["EPSG",8639]],
PARAMETER["B1",-0.0077980643,
SCALEUNIT["coefficient",1],
ID["EPSG",8640]],
PARAMETER["B2",0.9999960304,
SCALEUNIT["coefficient",1],
ID["EPSG",8641]]],
CS[Cartesian,2],
AXIS["northing (X)",north,
ORDER[1],
LENGTHUNIT["metre",1]],
AXIS["easting (Y)",east,
ORDER[2],
LENGTHUNIT["metre",1]],
USAGE[
SCOPE["unknown"],
AREA["Europe - Russia - Ekaterinburg"],
BBOX[56.6,60.3,57.0,60.9]]]
Выводы
Сконструированы определения WKT 2 для трёх типов МСК, а именно:
- классическая проекция;
- проекция на особом датуме;
- проекция с дополнительным аффинным преобразованием.
Примечания
- ↑ Geographic information – Well-known text representation of coordinate reference systems — Open Geospatial Consortium
- ↑ ISO 19162:2019 Geographic information – Well-known text representation of coordinate reference systems — International Organization for Standardization
- ↑ МСК-47 Ленинградская область параметры для mapinfow.prj
- ↑ EPSG:3352 Pulkovo 1942 / CS63 zone C2
- ↑ Постановление Губернатора Владимирской обл. от N 876 «Об утверждении Положения о местной системе координат Владимирской области (МСК-33)»
- ↑ Положение о ПМСК Москвы
- ↑ Переход от одной системы координат к другой - методы трансформации
- ↑ Родичкин: Для файла проекций МИ встречалось…