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

OGR, Python, S57

Добавлено: 16 июл 2015, 14:48
Andrey Zhukov
Пытаюсь через Python работать с S57.
Проблема: атрибуты NOBJNM и NINFOM вытаскиваются до первого пробела. SeeMeENC и Панорама читают без проблем.
При открытии файлов в QGIS встречается все та же проблема. Пробовал QGIS 2.8, 2.10 и NextGIS QGIS 15.3.

Возможно, помогли бы Control Options (http://www.gdal.org/drv_s57.html), но как их вписывать в Питон, я ума не приложу.

Re: OGR, Python, S57

Добавлено: 16 июл 2015, 14:56
Александр Мурый
Andrey Zhukov писал(а):Возможно, помогли бы Control Options (http://www.gdal.org/drv_s57.html), но как их вписывать в Питон, я ума не приложу.
Из офиц. туториала насчёт "Control Options":

Код: Выделить всё

src_ds = gdal.Open( src_filename )
dst_ds = driver.CreateCopy( dst_filename, src_ds, 0, 
                [ 'TILED=YES', 'COMPRESS=PACKBITS' ] )

Re: OGR, Python, S57

Добавлено: 16 июл 2015, 15:01
Andrey Zhukov
Вопрос про ogr, а не про gdal :)

Re: OGR, Python, S57

Добавлено: 16 июл 2015, 15:20
Александр Мурый
Andrey Zhukov писал(а):Вопрос про ogr, а не про gdal :)
Извиняйте. Ну тогда можно пробовать методы CreateDataSource или CopyDataSource с параметром "papszOptions".
Цитирую доки:
papszOptions: a StringList of name=value options. Options are driver
specific, and driver information can be found at the following
url:http://www.gdal.org/ogr/ogr_formats.html

Re: OGR, Python, S57

Добавлено: 16 июл 2015, 15:38
Andrey Zhukov
papszOptions - это ж для сишного кода...

А в питоне CopyDataSource никаких параметров и не подразумевает. Тем более, мне же открыть надо с параметрами, а не сохранить.

Re: OGR, Python, S57

Добавлено: 16 июл 2015, 16:11
Andrey Zhukov
Победил!

Все-таки ogr управляется через gdal.
Данные нормально стали отдаваться с опцией RECODE_BY_DSSI=ON.
Параметр скармливается так:

Код: Выделить всё

gdal.SetConfigOption('OGR_S57_OPTIONS', 'RECODE_BY_DSSI=ON')