#python #header #ogr
#python #заголовок #ogr
Вопрос:
Я пытаюсь преобразовать csv-файл в шейп-файл ESRI с помощью OGR на Python. Проблема, очевидно, в том, что мои записи заголовка слишком длинные для размера поля по умолчанию:
Warning 6: Normalized/laundered field name: 'SEEHOEHE [m]' to 'SEEHOEHE ['
Я хочу перебрать все элементы заголовка (количество столбцов в моем csv-файле неизвестно) и создать новые поля в шейп-файле — «на лету», так сказать:
for i in range(0,len(header)):
layer_out.CreateField(ogr.FieldDefn(header[i], ogr.OFTString))
работает нормально, но с отсечением записей заголовка (это проблематично, потому что мне нужно обратиться к ним позже). Есть ли способ определить размер записи заголовка на том же шаге? Я пробовал это с SetField(32)
, но, боюсь, это изменяет только размер записей таблицы.
Кто-нибудь может помочь? Заранее спасибо!
Комментарии:
1. Ограничение в 10 символов является фиксированным свойством формата. Возможно, вы можете обойти это, также обратившись к ним с этим ограничением,
header[i][:10]
например, и т.д.2. Спасибо, именно так я решил проблему окончательно, чтобы не попадать в неприятности все время… в любом случае, это ограничение кажется мне немного странным.
3.
Shapefile
Формат давно назрел и по-прежнему популярен только потому, что он обеспечивает отличную совместимость. Возможно, в ближайшем будущем появятся новые альтернативы, такие какGeoPackage
from OGC.