Страница 1 из 1

Чтение S-57. С чего начать?

Добавлено: 13 дек 2011, 09:40
Vitaly1988
Здравствуйте! Нужно написать программу чтения и отображения навигационных карт формата S-57 так, как это делает, например, OpenCPN или SeeMyENC из SevenCS, но не так, как это делает QGis. Еще нашел программу GHelm , которая вроде читает карты с помощью iso8211lib, но судя по скриншотам отображает их совсем не в соответствии со стандартом и явно не всё. Прочел эту статью - и вконец запутался. Подскажите, для начала, есть ли вообще свободные библиотеки, корректно читающие S-57? Какие? И нужно ли мне изучить стандарт S-57 для решения моей задачи или можно это пропустить как задачу низкого уровня и изучать что-то более высокоуровневое? Спасибо.

Re: Чтение S-57. С чего начать?

Добавлено: 13 дек 2011, 11:02
Voltron
Для начала: чем GDAL не устраивает?

Re: Чтение S-57. С чего начать?

Добавлено: 13 дек 2011, 11:22
Vitaly1988
GDAL- то есть OGR? QGis, который, как я понимаю, работает с использованием этих библиотек, отображает карты некорректно. В чем тут проблема, в QGis или в OGR? Если в QGis - то спасибо за подсказку)

Re: Чтение S-57. С чего начать?

Добавлено: 13 дек 2011, 11:29
Voltron
Есть ли проблема сразу сказать не могу. Возможно, ее вообще нет, просто нужны дополнительные действия по настройке отображения.
В чем именно проявляется некорректность отображения в QGIS? Желательно с примером файла и примером корректного отображения в другом ПО.

Re: Чтение S-57. С чего начать?

Добавлено: 13 дек 2011, 13:27
Vitaly1988
В прикрепленном архиве сама карта s-57, скриншот ее отображения в программе SeeMyENC(правильное отображение), и скриншот в QGis. Тут почему-то запрещено выкладывать карты S-57... ?

Re: Чтение S-57. С чего начать?

Добавлено: 13 дек 2011, 15:16
Vitaly1988
OGR вроде подходит для парсинга файла.

Re: Чтение S-57. С чего начать?

Добавлено: 13 дек 2011, 15:48
ericsson
Для парсинга геометрии дофига чего подходит, а вот символика там довольно сложная, при том стандартизированная. Вот её и нет в кугисе. И не уверен, что всё можно решить одной только символикой.

Re: Чтение S-57. С чего начать?

Добавлено: 13 дек 2011, 16:54
Voltron
Посмотрел. Похоже, дело только в символике, все имеющиеся слои определяются, насколько могу судить, правильно. ИМХО, такой подход имеет свои плюсы. Если символика действительно стандартизирована и едина для всех файлов этого формата (в чем я сомневаюсь) можно сделать набор символов для QGIS и она тоже будет открывать файлы так же

Re: Чтение S-57. С чего начать?

Добавлено: 13 дек 2011, 18:14
ericsson
Все как раз стандартизировано.
http://www.iho.int/iho_pubs/IHO_Download.htm
символы описаны в S-4 "REGULATIONS OF THE IHO FOR INTERNATIONAL (INT) CHARTS AND CHART SPECIFICATIONS OF THE IHO" (аналогичные данные, но в чуть более простой форме, изложены вот тут http://www.nauticalcharts.noaa.gov/mcd/chartno1.htm )
Кое-что может быть в документах S-52 и собственно S-57.
Некая трактовка стандартов может быть, возможно, только в выборе конкретных RGB значений для цветов. Но даже они где-то есть.
Добавлю (это, по-моему, важно): тестовые датасеты лежат тут http://www.iho.int/iho_pubs/standard/S- ... _intro.htm вместе с референсными pdf (по ссылке внизу).

Re: Чтение S-57. С чего начать?

Добавлено: 13 дек 2011, 19:17
Konstantin Tokar
Vitaly1988 писал(а):Здравствуйте! Нужно написать программу чтения и отображения навигационных карт формата S-57 так, как это делает, например, OpenCPN или SeeMyENC из SevenCS, но не так, как это делает QGis.
А сам OpenCPN не пробовали использовать?

Re: Чтение S-57. С чего начать?

Добавлено: 13 дек 2011, 19:46
Vitaly1988
ericsson писал(а):Все как раз стандартизировано.
Легче не стало, скорее наоборот. Зато теперь знаю, куда копать - за это спасибо.
Konstantin Tokar писал(а): А сам OpenCPN не пробовали использовать?
OpenCPN - это программа с открытым кодом, не библиотека. А я не настолько высококлассный программист(только начинающий изучать С++), чтобы разобраться в его исходниках и перенести нужное в свою программу. Хотя, сейчас посмотрел, там тоже GDAL/OGR используют. Исходники, конечно, пригодятся, но свое приложение мне легче писать с нуля. )

Re: Чтение S-57. С чего начать?

Добавлено: 13 дек 2011, 19:51
ericsson
Собственно, прочесть структуры формата - не проблема.
Проблема - показать все это, при том сделать это правильно. А то получится, действительно, как в кугисе в нынешнем виде. Там один знак "маяк" чего стоит.

Re: Чтение S-57. С чего начать?

Добавлено: 27 янв 2012, 12:53
Vitaly1988
Показать получилось с использованием библиотеки libS52 из пакета OpenEV. Эту же библиотеку, но с некоторыми изменениями, использовали в OpenCPN.

Re: Чтение S-57. С чего начать?

Добавлено: 14 авг 2014, 12:56
Storkur
Добрый день.
Мне тоже надо сделать приложение отображающие карты формата S-57, если я правильно понял то для чтения S-57 вы использовали OGR, а для отображения libS52?