Добро пожаловать!

Войдите или зарегистрируйтесь сейчас!

Войти

WKT формат и численное задание датума

Тема в разделе "Программы для пересчета координат и поиска ключей", создана пользователем Georg Keneberg, 11 ноя 2020.

  1. Georg Keneberg

    Форумчанин

    Регистрация:
    6 мар 2019
    Сообщения:
    61
    Симпатии:
    17
    Адрес:
    Санкт-Петербург
    Добрый день, есть небольшой вопрос/уточнение к формату задания датума в формате WKT. В качестве версии возьмем для примеру эту (вроде последнюю). В табличке Е.4 есть пояснение:
    upload_2020-11-11_21-37-46.png
    Собственно, вопрос в чем .. как я понял формулировка геодезического преобразования/датума по методу Бурса-Вольфе в программах предусматривает использование обратных параметров матрицы поворота осей координат (ωx, ωy, ωz) относительно формулировки по Гельмерту. То есть классический датум EPSG:5044 выглядит по-Гельмерту так - TOWGS84[23.57,-140.95,-79.8,0.00000000,-0.35000000,-0.79000000,-0.22], а вот по Бурса-Вольфе будет уже так: TOWGS84[23.57,-140.95,-79.8,0.00000000,0.35000000, 0.79000000,-0.22]
    Собственно ... текстовое описание датума одинаково но как простите программа понимает в какой формулировке он записан? Нафиг тогда писать в таблице E.4 эти 2 поддерживаемых способа если будет восприниматься только один? QGIS например явно поддерживает формудировку по Бурса-Вольфе, а AutoCAD Civil 3D по Гельмерту ....
    Вопрос в том - верно ли я понимаю разность знаков в этих типах записи датумов? (научной стороны их выведения и различия я специально не касаюсь). И практичней ли тогда использовать все таки выражение через Бурса-Вольфе?
     
    #1
  2. zvezdochiot

    Форумчанин

    Регистрация:
    27 июн 2014
    Сообщения:
    6.015
    Симпатии:
    2.128
    Адрес:
    г. Москва
    Числа одни. Чем практичнее? Это же множители. Действие одно.
     
    #2
  3. Georg Keneberg

    Форумчанин

    Регистрация:
    6 мар 2019
    Сообщения:
    61
    Симпатии:
    17
    Адрес:
    Санкт-Петербург
    Тут вопрос скорее в том, чтобы как-то прописать в этом коде какой именно тип используется (при вставке кода WKT в иное ПО где заведомо неизвестно как он считывает эти параметры) - чтобы не возникло погрешностей. Или в современной версии по дефолту всё читается только по Бурса-Вольфе? Я сильно оторван от ГИС-ПО кроме Autodesk и QGIS ... как оно там в другом воспринимается
     
    #3
  4. cr2

    cr2
    Форумчанин

    Регистрация:
    23 сен 2014
    Сообщения:
    786
    Симпатии:
    516
    towgs84 имеет в виду абсолютно однозначное преобразование - а именно те формулы которые
    имплементированы в исходниках "классической" библиотеки proj4,
    поэтому "формулировки" - результат непонимания и путаной документации.
     
    #4
  5. Georg Keneberg

    Форумчанин

    Регистрация:
    6 мар 2019
    Сообщения:
    61
    Симпатии:
    17
    Адрес:
    Санкт-Петербург
    Но WKT то более универсальным считается? Мне честно PROJ больше импонирует что он короче ::biggrin24.gif::
    Я вообще интересовался с мыслью сконвертировать имеющиеся определения в черт-пойми-чем во что-то адекватное и WKT мне мыслится очень универсальным ...
     
    #5
  6. trir

    Форумчанин

    Регистрация:
    25 ноя 2014
    Сообщения:
    3.253
    Симпатии:
    931
    Адрес:
    gnomtrir@mail.ru
    #6
  7. Georg Keneberg

    Форумчанин

    Регистрация:
    6 мар 2019
    Сообщения:
    61
    Симпатии:
    17
    Адрес:
    Санкт-Петербург
    То есть практичнее уже делать в данном формате описания проекций?
    Я, правда, не нашел сходу - а есть где-то спецификация поддерживаемых определений проекций?
    Код:
    METHOD["Transverse Mercator
    - типа такого, именно формулировки с позиции орфографии, чтобы конечная программа верно идентифицировала коды.И надо ли
    оформлять проекции Гаусса-Крюгера как Поперечная Меркатора? В старой WKT начала 2010х так вроде можно было, не знаю как сейчас? Потому что тот же QGIS ругался на нее .. Интересуюсь другими типами проекций чтобы для пробы попробовать сделать перевод для проекции Ламберта, к примеру ...
     
    #7
  8. trir

    Форумчанин

    Регистрация:
    25 ноя 2014
    Сообщения:
    3.253
    Симпатии:
    931
    Адрес:
    gnomtrir@mail.ru
  9. chnav

    Форумчанин

    Регистрация:
    5 янв 2011
    Сообщения:
    1.003
    Симпатии:
    944
    Адрес:
    Москва
    Раскрыть Спойлер

    С этими обратными знаками разворота осей всегда были проблемы (у американцев и европейцев разные соглашения), поэтому в морской практике заказчик всегда представляет параметры перехода с обязательным образцом/примером координат в WGS84 и выбранном датуме. Слышал историю от коллег (ОБС), что ещё в 80-е наши сейсмики работали на шельфе Сахалина в датуме WGS72 и промахнулись со знаками перехода, в результате ошибочные параметры кочевали из проекта в проект (вынужденная преемственность). И так получается, что у каждой нефтяной компании в одном и том же регионе может использоваться свой датум.
    Чтобы хоть как-то упорядочить этот бардак нефтяниками была создана база EPSG (European Petroleum Survey Group), которая позднее оказалась удобной и в других применениях, только мало уже кто помнит, кто зачинщик )))
     
    #9
    -=13=-, Georg Keneberg и Yuri V. нравится это.
  10. stout

    Форумчанин

    Регистрация:
    5 янв 2008
    Сообщения:
    4.172
    Симпатии:
    11.939
    Адрес:
    Златоглавая и Белокаменная
    #10
  11. Georg Keneberg

    Форумчанин

    Регистрация:
    6 мар 2019
    Сообщения:
    61
    Симпатии:
    17
    Адрес:
    Санкт-Петербург
    Уже не совсем в тему...
    Попробовал перевести XML-библиотеку систем координат Civil3D в тот же WKT2
    Чето QGIS не хочет кушать его
    Выглядит это безобразие так:
    Код:
    BOUNDCRS[SOURCERS[PROJCRS"Russia-MSK26-Zona1",BASEGEOGCRS["Unknown datum based upon the Krasovsky-SK42/95 ellipsoid",DATUM["RUSSIA-REF-SK42",ELLIPSOID["Ellipsoid Krasovsky SK-42/95 GOST 32453-2017_4.2.2",6378245,298.30000000,LENGTHUNIT["metre",1,ID["EPSG",9001]]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8901]]],CONVERSION["Russia-MSK26-Zona1",METHOD["Transverse Mercator",ID["EPSG",9807]],PARAMETER["Latitude of natural origin",40.98333333333,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["Scale factor at natural origin",1,SCALEUNIT["unity",1],ID["EPSG",8805]],PARAMETER["False easting",1300000,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",-4511057.63,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["Reference ellipsoid SK-1942 Datum from GOST_32453-2017",METHOD["Coordinate Frame rotation(geocentric domain)",ID["EPSG",9607]],PARAMETER["X - axis translation",23.57,LENGTHUNIT["metre",1.0],ID["EPSG",8605]],PARAMETER["Y - axis translation",-140.95,LENGTHUNIT["metre",1.0],ID["EPSG",8606]],PARAMETER["Z - axis translation",-79.8,LENGTHUNIT["metre",1.0],ID["EPSG",8607]],PARAMETER["X - axis rotation",0.00000000,ANGLEUNIT["arc - second",4.84813681109535E-06],ID["EPSG",8608]], PARAMETER["Y - axis rotation",-0.35000000,ANGLEUNIT["arc - second",4.84813681109535E-06],ID["EPSG",8609]],PARAMETER["Z - axis rotation",-0.79000000,ANGLEUNIT["arc - second",4.84813681109535E-06],ID["EPSG",8610]],PARAMETER["Scale difference",-0.22,ID["EPSG",8611]]]]
    QGIS ругается так:
    upload_2020-11-13_1-12-27.png
    Что ему надо, не пойму((
    И название указал метода, и единицы измерения (коих не было к слову на gis-lab), и пробелы вроде убрал везде, и параметров 7 штук.. фиг знает :(
    Делал по примеру описания СК для г. Москва отсюда. Также ориентировался на http://docs.opengeospatial.org/is/18-010r7/18-010r7.html
    Если не нравится МСК 26 Зона 1 во вложении остальные 389 (?) проекций для России .... все равно материал из открытых источников весь. Не наказуемо ::unsure.gif::?
    P.S. Обработку делал в Visual Studio
     

    Вложения:

    #11
  12. Yuri V.

    Форумчанин

    Регистрация:
    31 мар 2009
    Сообщения:
    2.406
    Симпатии:
    2.116
    Во всю биографию, при передаче уточняющих параметров даю контрольный пример. Жгуче плюсую под вашим постом!!
     
    #12
  13. ErnieBoyd

    Форумчанин

    Регистрация:
    10 июн 2014
    Сообщения:
    272
    Симпатии:
    161
    Эк Вас, батенька, занесло! Там для Вашего случая другой пример на основе любой проекции на датуме "Pulkovo 1942". Держите определение WKT 2 для МСК26 зона 1:
    Код:
    PROJCRS["Pulkovo 1942 / MSK26 zone 1",
        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["MSK26 zone 1",
            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",40.9833333333333,
                ANGLEUNIT["degree",0.0174532925199433],
                ID["EPSG",8802]],
            PARAMETER["Scale factor at natural origin",1,
                SCALEUNIT["unity",1],
                ID["EPSG",8805]],
            PARAMETER["False easting",1300000,
                LENGTHUNIT["metre",1],
                ID["EPSG",8806]],
            PARAMETER["False northing",-4500000,
                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 - MSK26 zone 1"],
            BBOX[44.30,40.84,46.14,42.48]]]
    Трансформацию выберите "Pulkovo 1942 to WGS 84 (20)" и установите её по умолчанию.
     
    #13
  14. Georg Keneberg

    Форумчанин

    Регистрация:
    6 мар 2019
    Сообщения:
    61
    Симпатии:
    17
    Адрес:
    Санкт-Петербург
    Мне не нужна такая интерпретация системы координат на родном эллипсоиде - нужно именно свести ее к WGS-84. Упрощенно, мне нужна четкая связь между данной СК на N-эллипсоиде с WGS-84, где будет использоваться ABRIDGEDTRANSFORMATION с нужными параметрами.
    .... Тут я что-то недопонимаю как включить в определение WKT эту трансформацию тогда... Ваш блок то есть вставить в конструкцию?
    BOUNDCRS[SOURCECRS[...ваш блок], TARGETCRS[..трансформация?]]
     
    #14
  15. ErnieBoyd

    Форумчанин

    Регистрация:
    10 июн 2014
    Сообщения:
    272
    Симпатии:
    161
    В базе данных EPSG системы координат ассоциированы с наборами трансформаций. Нужная Вам трансформация там уже есть и привязана к "Pulkovo 1942". Она называется EPSG:5044 "Pulkovo 1942 to WGS 84 (20)"
    Когда открываешь данные на датуме "Pulkovo 1942", программа спрашивает, какую трансформацию использовать. По умолчанию предлагает "Pulkovo 1942 to WGS 84 (16)". Выберите вместо неё двадцатую (20) и внизу справа поднимите флажок "установить по умолчанию".
    Вот здесь об этом с картинками.
     
    #15
    Georg Keneberg нравится это.
  16. Georg Keneberg

    Форумчанин

    Регистрация:
    6 мар 2019
    Сообщения:
    61
    Симпатии:
    17
    Адрес:
    Санкт-Петербург
    А если в конечном приложении вообще нет готовой базы данных или этой трансформации? Как себя максимально обезопасить включив это в WKT или лучше тогда создать именно отдельное описание трансформации в WKT?
    QGIS один из примеров только .. это что угодно может быть
    PS Или если это преобразование отсутствует в EPSG ... как тогда в этом случае?
     
    #16
  17. ErnieBoyd

    Форумчанин

    Регистрация:
    10 июн 2014
    Сообщения:
    272
    Симпатии:
    161
    Всё немножко наоборот. Многие коммерческие программы давно перешли на EPSG: ArcGIS, BMG Geographic Calculator и др. Так что проблемы с использованием стандартного датума нет. Скорее интересно, научилась ли такая программа понимать WKT 2.

    Другое дело, когда программе, понимающей WKT 2, надо скормить нестандартную трансформацию. Об этом второй пример.
     
    #17
  18. Georg Keneberg

    Форумчанин

    Регистрация:
    6 мар 2019
    Сообщения:
    61
    Симпатии:
    17
    Адрес:
    Санкт-Петербург
    Вооооот, тут и начинается интерес - на статье в gis-lab нет единиц для параметров трансформации, когда как в спецификации 18-010r7_WKT тот же Scale difference может быть как "parts per million" или части единицы (если мас. коэф >0, то 1+ m/10^6; если меньше - то 1-m/10^6) ... также и для угловых параметров вращения - то в arc-seconds то в радианах ... то есть корректней все таки указывать на единицы же? Странно почему тогда в статье на gis-lab этого нет
    PS И почему тогда сама трансформация там называется (..) если в спецификации это Coordinate Frame rotation (geocentric domain) Простите, увидел и такой вариант для неподтвержденных случае
     
    #18
  19. -=13=-

    Форумчанин

    Регистрация:
    26 июн 2013
    Сообщения:
    2.254
    Симпатии:
    3.321
    Адрес:
    Окраины Нерезиновска на немцеопасном направлении
    Можно же создать свою на основе этой, как раз введя отличные от вшитых коэффициенты.
    Но знаки да - приходится перепроверять.
     
    #19
  20. ErnieBoyd

    Форумчанин

    Регистрация:
    10 июн 2014
    Сообщения:
    272
    Симпатии:
    161
    Очень хорошо! Наконец-то появился человек, который во всём этом разберётся и разъяснит!
     
    #20

Поделиться этой страницей

  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление