Как использовать mapFieldType с gdal.VectorTranslate

Я пытаюсь экспортировать базу данных postgresql в файл .gpkg, но некоторые из моих полей представляют собой списки, и ogr2ogr отправляет мне сообщение:

Предупреждение 1. Драйвер вывода изначально не поддерживает тип StringList для поля my_field_name. Неверное преобразование может произойти. -mapFieldType может использоваться для управления преобразованием типа поля.

Но, как и в документации, -mapFieldType не является -lco, я не нахожу, как использовать его с версией gdal.VectorTranslate для python.

вот ма конфиг:

      gdal_conn = gdal.OpenEx(f"PG:service={my_pgsql_service}", gdal.OF_VECTOR)

gdal.VectorTranslate("path_to_my_file.gpkg"), gdal_conn,
                      SQLStatement=my_sql_query,
                      layerName=my_mayer_name,
                      format="GPKG",
                      accessMode='append',
                    )

поэтому я попытался добавить его в -lco:

layerCreationOptions=["-mapFieldType StringList=String"]

но это не сработало

поэтому я покопался в коде gdal, добавил полеmapFieldType=Noneв функцию VectorTranslateOptions и добавили в ее код следующие строки:

              if mapFieldType is not None:
            mapField_str = ''
            i = 0
            for k, v in mapFieldType.items():
                i += 1
                mapField_str += f"{k}={v}" if i == len(mapFieldType) else f"{k}={v},"
            new_options += ['-mapFieldType', mapField_str]

И это сработало, но есть ли другой способ? И если нет, то где я могу предложить эту функцию?

спасибо за помощь

0 ответов

Другие вопросы по тегам