Местные системы координат в WKT 2: различия между версиями
(не показана 31 промежуточная версия 2 участников) | |||
Строка 1: | Строка 1: | ||
{{Статья| | {{Статья|Опубликована|msk-wkt2}} | ||
{{Аннотация|Статья на примерах даёт представление о том, как следует конструировать описание местных систем координат в формате WKT 2.}} | |||
{{Аннотация|Статья даёт представление о том, как следует конструировать описание местных систем координат | |||
== Введение == | == Введение == | ||
Во времена QGIS 2 | Во времена QGIS 2 системы координат представляли в формате PROJ4. По возможностям он практически эквивалентен формату OGC WKT 1. Следует отметить общее в обоих форматах задание трансформации датума через элемент TOWGS84. Также общим является отсутствие дополнительных преобразований, что ставило под вопрос возможность определения городских и строительных систем координат, такие преобразования использующих. | ||
В QGIS 3 стандартом описания систем координат стал формат WKT 2. | В QGIS 3 стандартом описания систем координат стал формат WKT 2. Важное его отличие от предшественника – использование преобразований. Помимо прочего, это сделало ненужным элемент TOWGS84 и сняло затруднения с определением городских систем координат. | ||
На момент написания статьи действуют спецификации OGC ''Well-known text representation of coordinate reference systems''.<ref>[https://www.opengeospatial.org/standards/wkt-crs Geographic information – Well-known text representation of coordinate reference systems] — Open Geospatial Consortium</ref> Они зафиксированы в стандарте ISO 19162:2019.<ref>[https://www.iso.org/standard/76496.html ISO 19162:2019 Geographic information – Well-known text representation of coordinate reference systems] — International Organization for Standardization</ref> | На момент написания статьи действуют спецификации OGC ''Well-known text representation of coordinate reference systems''.<ref>[https://www.opengeospatial.org/standards/wkt-crs Geographic information – Well-known text representation of coordinate reference systems] — Open Geospatial Consortium</ref> Они зафиксированы в стандарте ISO 19162:2019.<ref>[https://www.iso.org/standard/76496.html ISO 19162:2019 Geographic information – Well-known text representation of coordinate reference systems] — International Organization for Standardization</ref> | ||
== | == Типы местных систем координат == | ||
=== Классические проекции === | |||
Бо́льшая часть местных систем координат в Российской Федерации построена на географически подходящей зоне СК-42 или СК-63 и отличается от неё лишь параметрами сдвига EPSG:8806 ''False easting'' и EPSG:8807 ''False northing''. Определение таких систем в WKT 2 не отличается от WKT 1. | Бо́льшая часть местных систем координат в Российской Федерации построена на географически подходящей зоне СК-42 или СК-63 и отличается от неё лишь параметрами сдвига EPSG:8806 ''False easting'' и EPSG:8807 ''False northing''. Определение таких систем в WKT 2 не отличается от WKT 1. | ||
Строка 59: | Строка 60: | ||
Обратите внимание на элемент BBOX. Благодаря ему программы могут при выборе системы координат показать пользователю на карте прямоугольник, охватывающий область действия системы координат. Он содержит величины ''Широта минимальная'', ''Долгота минимальная'', ''Широта максимальная'', ''Долгота максимальная'' в системе координат WGS 84. | Обратите внимание на элемент BBOX. Благодаря ему программы могут при выборе системы координат показать пользователю на карте прямоугольник, охватывающий область действия системы координат. Он содержит величины ''Широта минимальная'', ''Долгота минимальная'', ''Широта максимальная'', ''Долгота максимальная'' в системе координат WGS 84. | ||
== | Также BBOX определяет выбор подходящих трансформаций. | ||
=== Системы координат с особым датумом === | |||
Сюда отнесём разные ситуации: | |||
* датум отсутствует в EPSG; | |||
* трансформация из датума в WGS 84 отсутствует в EPSG; | |||
* трансформация из датума в WGS 84 имеется в EPSG, но относится к другому датуму. | |||
Известен пример МСК-33<ref>[https://docs.cntd.ru/document/965012231 Постановление Губернатора Владимирской обл. от 26.10.2009 N 876 «Об утверждении Положения о местной системе координат Владимирской области (МСК-33)»]</ref>, построенной на датуме СК-95 с выведенными для территории Владимирской области значениями семи параметров. | |||
Самый | Самый интересный пример в этом классе — МСК Москвы на эллипсоиде Бесселя.<ref>[http://sngo.mggt.ru/documents/sngo/PMSK_Moscow.pdf Положение о ПМСК Москвы]</ref> | ||
Используем конструкцию BOUNDCRS, которая связывает исходную систему координат SOURCECRS, в роли которой выступает проекция, с конечной TARGETCRS, в роли которой выступает WGS 84, через трансформацию ABRIDGEDTRANSFORMATION: | Используем конструкцию BOUNDCRS, которая связывает исходную систему координат SOURCECRS, в роли которой выступает проекция, с конечной TARGETCRS, в роли которой выступает WGS 84, через трансформацию ABRIDGEDTRANSFORMATION: | ||
Строка 70: | Строка 78: | ||
BOUNDCRS[ | BOUNDCRS[ | ||
SOURCECRS[ | SOURCECRS[ | ||
PROJCRS["Moscow", | PROJCRS["PMSK Moscow", | ||
BASEGEOGCRS["Unknown datum based upon the Bessel 1841 ellipsoid", | BASEGEOGCRS["Unknown datum based upon the Bessel 1841 ellipsoid", | ||
DATUM["Not specified (based on Bessel 1841 ellipsoid)", | DATUM["Not specified (based on Bessel 1841 ellipsoid)", | ||
Строка 105: | Строка 113: | ||
ORDER[2], | ORDER[2], | ||
LENGTHUNIT["metre",1, | LENGTHUNIT["metre",1, | ||
ID["EPSG",9001]]]]], | ID["EPSG",9001]]], | ||
USAGE[ | |||
SCOPE["Engineering surveying and land cadastre."], | |||
AREA["Moscow and adjacent districts of the Moscow Region."], | |||
BBOX[55.13,36.78,56.23,38.49]]]], | |||
TARGETCRS[ | TARGETCRS[ | ||
GEOGCRS["WGS 84", | GEOGCRS["WGS 84", | ||
Строка 142: | Строка 154: | ||
В данном случае применена трансформация EPSG:9607 ''Coordinate Frame rotation (geog2D domain)'', но могут быть использованы и другие.<ref>[https://gis-lab.info/qa/datum-transform-methods.html Переход от одной системы координат к другой - методы трансформации]</ref> | В данном случае применена трансформация EPSG:9607 ''Coordinate Frame rotation (geog2D domain)'', но могут быть использованы и другие.<ref>[https://gis-lab.info/qa/datum-transform-methods.html Переход от одной системы координат к другой - методы трансформации]</ref> | ||
=== Системы координат с дополнительным преобразованием === | |||
Это системы координат городов и прочих населённых пунктов, основанные на охватывающей зоне государственной системы координат с дополнительным преобразованием. Обычно это конформное преобразование на плоскости, которое является частным случаем аффинного. | |||
В WKT 2 коэффициенты аффинного преобразования участвуют в формулах перехода от исходной проекции к целевой (местной) системе следующим образом: | |||
<syntaxhighlight lang="text"> | <syntaxhighlight lang="text"> | ||
Строка 153: | Строка 165: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Для примера возьмём определение | Для примера возьмём случайное определение с просторов Интернета:<ref>[https://geodesist.ru/threads/pomogite-pereschitat-koordinaty-iz-msk-66-v-sk-g-ekaterinburga.38181/#post-450897 г. Екатеринбург]</ref> | ||
<syntaxhighlight lang="text"> | <syntaxhighlight lang="text"> | ||
Строка 162: | Строка 174: | ||
В этой строке MAPINFOW.PRJ мы видим систему координат на основе базовой проекции СК-63 зона W1 с дополнительным аффинным преобразованием, порядок параметров которого A1, A2, A0, B1, B2, B0. | В этой строке MAPINFOW.PRJ мы видим систему координат на основе базовой проекции СК-63 зона W1 с дополнительным аффинным преобразованием, порядок параметров которого A1, A2, A0, B1, B2, B0. | ||
Также дан охват Bounds, | Также дан охват Bounds, только он слишком широк, чтобы быть правдой. | ||
Применим конструкцию DERIVEDPROJCRS, которая дополняет базовую проекцию ''СК-63 зона W1'' аффинным преобразованием: | Применим конструкцию DERIVEDPROJCRS, которая дополняет базовую проекцию ''СК-63 зона W1'' аффинным преобразованием: | ||
<syntaxhighlight lang="text"> | <syntaxhighlight lang="text"> | ||
DERIVEDPROJCRS[" | DERIVEDPROJCRS["Yekaterinburg", | ||
BASEPROJCRS["Pulkovo 1942 / CS63 zone W1", | BASEPROJCRS["Pulkovo 1942 / CS63 zone W1", | ||
BASEGEOGCRS["Pulkovo 1942", | BASEGEOGCRS["Pulkovo 1942", | ||
Строка 174: | Строка 186: | ||
LENGTHUNIT["metre",1]]], | LENGTHUNIT["metre",1]]], | ||
PRIMEM["Greenwich",0, | PRIMEM["Greenwich",0, | ||
ANGLEUNIT["Degree",0.0174532925199433] | ANGLEUNIT["Degree",0.0174532925199433]]], | ||
CONVERSION["CS63 zone W1", | |||
CONVERSION["CS63 zone | |||
METHOD["Transverse Mercator", | METHOD["Transverse Mercator", | ||
ID["EPSG",9807]], | ID["EPSG",9807]], | ||
Строка 193: | Строка 204: | ||
PARAMETER["False northing",0, | PARAMETER["False northing",0, | ||
LENGTHUNIT["metre",1], | LENGTHUNIT["metre",1], | ||
ID["EPSG",8807]]] | ID["EPSG",8807]]]], | ||
DERIVINGCONVERSION["Affine", | DERIVINGCONVERSION["Affine", | ||
METHOD["Affine parametric transformation", | METHOD["Affine parametric transformation", | ||
Строка 217: | Строка 227: | ||
ID["EPSG",8641]]], | ID["EPSG",8641]]], | ||
CS[Cartesian,2], | CS[Cartesian,2], | ||
AXIS[" | AXIS["easting (X)",east, | ||
ORDER[1], | ORDER[1], | ||
LENGTHUNIT["metre",1]], | LENGTHUNIT["metre",1]], | ||
AXIS[" | AXIS["northing (Y)",north, | ||
ORDER[2], | ORDER[2], | ||
LENGTHUNIT["metre",1]], | LENGTHUNIT["metre",1]], | ||
USAGE[ | USAGE[ | ||
SCOPE["unknown"], | SCOPE["unknown"], | ||
AREA[" | AREA["Asia - Russia - Yekaterinburg"], | ||
BBOX[56.6,60.3,57 | BBOX[56.6,60.3,57,60.9]]] | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Выводы == | == Выводы == | ||
Даны примеры описания WKT 2 для трёх типов МСК, а именно: | |||
* классическая проекция; | * классическая проекция; | ||
* проекция на особом датуме; | * проекция на особом датуме; | ||
* проекция с дополнительным аффинным преобразованием. | * проекция с дополнительным аффинным преобразованием. | ||
== | Как может выглядеть проекция на особом датуме с дополнительным преобразованием, пока не представляю. | ||
== Ссылки == | |||
<references /> | <references /> |
Текущая версия от 07:12, 16 апреля 2023
по адресу http://gis-lab.info/qa/msk-wkt2.html
Статья на примерах даёт представление о том, как следует конструировать описание местных систем координат в формате 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]
Типы местных систем координат
Классические проекции
Бо́льшая часть местных систем координат в Российской Федерации построена на географически подходящей зоне СК-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.
Также BBOX определяет выбор подходящих трансформаций.
Системы координат с особым датумом
Сюда отнесём разные ситуации:
- датум отсутствует в EPSG;
- трансформация из датума в WGS 84 отсутствует в EPSG;
- трансформация из датума в WGS 84 имеется в EPSG, но относится к другому датуму.
Известен пример МСК-33[5], построенной на датуме СК-95 с выведенными для территории Владимирской области значениями семи параметров.
Самый интересный пример в этом классе — МСК Москвы на эллипсоиде Бесселя.[6]
Используем конструкцию BOUNDCRS, которая связывает исходную систему координат SOURCECRS, в роли которой выступает проекция, с конечной TARGETCRS, в роли которой выступает WGS 84, через трансформацию ABRIDGEDTRANSFORMATION:
BOUNDCRS[
SOURCECRS[
PROJCRS["PMSK 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]]],
USAGE[
SCOPE["Engineering surveying and land cadastre."],
AREA["Moscow and adjacent districts of the Moscow Region."],
BBOX[55.13,36.78,56.23,38.49]]]],
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]
Системы координат с дополнительным преобразованием
Это системы координат городов и прочих населённых пунктов, основанные на охватывающей зоне государственной системы координат с дополнительным преобразованием. Обычно это конформное преобразование на плоскости, которое является частным случаем аффинного.
В 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["Yekaterinburg",
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]]],
CONVERSION["CS63 zone W1",
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["easting (X)",east,
ORDER[1],
LENGTHUNIT["metre",1]],
AXIS["northing (Y)",north,
ORDER[2],
LENGTHUNIT["metre",1]],
USAGE[
SCOPE["unknown"],
AREA["Asia - Russia - Yekaterinburg"],
BBOX[56.6,60.3,57,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
- ↑ Постановление Губернатора Владимирской обл. от 26.10.2009 N 876 «Об утверждении Положения о местной системе координат Владимирской области (МСК-33)»
- ↑ Положение о ПМСК Москвы
- ↑ Переход от одной системы координат к другой - методы трансформации
- ↑ г. Екатеринбург