Alex писал(а):При загрузке последовательности 14.ecw и 13.ecw, получаю вылет сообщения. Прошу заметить, что вылет произошел в ECW модуле. ECW библиотеки, использованные нами из комплекта ERDAS SDK закрыты для редактирования, а следовательно выяснить причину вылета мы не можем.
1. Вероятнее всего проблема находится в самих ECW файлах так как ошибку выдает сама DLL ERDAS.
В файлах ecw проблем нет, поскольку они без каких либо проблем грузятся в двух других редакторах. Значит проблема в используемых библиотеках.
Отсюда вывод, надо использовать другие, не глючащие библиотеки
Alex писал(а):
2. Рекомендую привязывать файлы в WGS-84 latitude/longitude. В данном случае программе не нужно будет делать целый паравоз преобразований и как следствие вы получите высокую точность.
Согласитесь, это не правильный подход. Нужно исправлять то, что программа не корректно работает с ECW файлами в датуме и системе координат отличной от WGS-84 latitude/longitude, а не подгонять исходные растры под имеющиеся баги.
Alex писал(а):
P.S. Какую цель вы преследуете создавая ECW в PULKOVO, да еще и в метрах? Объяснения я придумать не могу.
Объяснение есть и я его озвучивал еще в самом начале разборов по обсуждаемой проблеме, убедительно прошу все-таки читать по-внимательней. Ну а чуть ниже я повторюсь зачем это нужно.
Alex писал(а):
РЕКОМЕНДУЮ МЕТОДИКУ:
1. Берём подготовленное растровое изображение.
2. Привязываем растр с помощью программы OZIEXPLORER. Систему координат и проекцию выбираем на своё усмотрение, руководствуясь знаниями и особенностями самого растра и его сеткой (если таковая имеется). Выбирая при привязке метры или градусы надо помнить, что OZIEXPLORER при создании *.MAP файла координаты всё равно пересчитает в градусы. Так что рекомендую (по возможности) сразу привязывать в градусах.
3. Проверяем правильность привязки в той же OZIEXPLORER.
4. Открываем растр с привязкой *.MAP (координаты описаны в градусах) в GlobalMapper.
5. Экспортируем растр в ECW формат. При экспорте выбираем WGS-84 latitude/longitude (то есть градусы и никак не метры).
P.S. Если на этапе 5 установить PULKOVO/градусы то вы обрекаете MicroGISEditor на выполнение 1-го пересчёта PULKOVO/градусы ----> WGS-84/градусы. Это не очень страшно, но рекомендую всё же выполнить это преобразование в GlobalMapper.
P.S. Если на этапе 5 установить PULKOVO/метры то вы обрекаете MicroGISEditor на выполнение 2-х пересчётов PULKOVO/метры ----> PULKOVO/градусы и PULKOVO/градусы ----> WGS-84/градусы. Сложным является преобразование №1. Тут хоть MicroGISEditor, хоть MGE теряет точность. Справедливости ради, нужно сказать, что без ошибок данный пересчёт не сделает никто. Но наименьшая погрешность наблюдается в GlobalMapper с её секретными методиками и таблицами.
P.S. И наконец, если на этапе 5 установить WGS-84 latitude/longitude (как было рекомендовано выше), то вы избавляете MicroGISEditor от необходимости выполнять какие либо преобразования. А это значит, что ERDAS DLL справится с любым количеством прикреплённых растров и в максимальной точности.
P.S. А теперь, прочитав всё это, снова ответьте мне на вопрос:
Зачем нужно выбирать на этапе 5 PULKOVO/метры, внося ошибку в расчёты. А потом заставлять MicroGISEditor выполнять обратное преобразовани внося вторую погрешность?
А вот теперь давайте вспомним обсуждавшийся чуть ранее вопрос о том как выполняется преобразование из Pulkovo в WGS84 в GME и MGE, и как оно выполняется в Global Mapper.
В GME и MGE используются либо 3-х параметрические преобразования Молоденского, либо 7-и параметрические преобразования Бурса-Вольфа. Будем называть его способ 1 далее по тексту.
В Global Mapper используются некие таблицы поправок учитывающие нелинейности обусловленные ошибками измерения координат пунктов государственной геодезической сети - назовем его способ 2.
Так вот для генштабовских номенклатурных карт, а также для карт госгисцентра более удачно подходит способ 2 (Global Mapper)
А вот для морских карт более удачен способ 1 (GME и MGE).
Поскольку MGE не способен грузить большие растры (13000х13000 pix например) с привязкой Ozi, приходится их конвертировать в ECW.
А поскольку способ пересчета из Пулково в WGS84, используемый в Global Mapper, в данном конкретном случае меня не устраивает, я при экспорте в формат ECW оставляю исходный датум, т.е. Пулково.
Но все это не имеет отношения к сути проблемы, которая вот в чем:
1) Имеем два растра: один - PNG/JPG + привязка Ozi, другой - ECW.
2) Оба растра имеют одинаковый датум - Пулково, одинаковую проекцию, одинаковую систему координат.
3) Теоретически пересчет координат для обоих растров должен выполняться в редакторе одинаково. Именно так происходит в GME и Global Mapper.
4) В MGE результат иной, для растра с привязкой Ozi координаты пересчитываются корректно, для растра ECW - НЕТ, поэтому он оказывается сильно смещен на 70-90 метров, что абсолютно не приемлимо.
Обратите внимание, что меня в данном случае не интересует правильность преобразования из Pulkovo в WGS84, поэтому секретные таблицы Global Mapper здесь абсолютно не причем и давайте не будем их вспоминать. Проблема в том, что для разных типов исходных данных этот пересчет выполняется по разному, а должен - одинаково.
Почему так происходит, из за ошибки в самом редакторе, или из-за ошибки в сторонних библиотеках, мне как конечному пользователю все равно.
Факт состоит в том, что растры ECW в датуме, проекции и системе координат отличной от WGS-84 latitude/longitude, в MGE пляшут в непредсказуемых направлениях на 70-90 метров (чего не наблюдается в двух других редакторах) и это - однозначно баг!