Ошибка при конвертации CSV+CSVT+VRT в ESRI Shape

Ответить
Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Ошибка при конвертации CSV+CSVT+VRT в ESRI Shape

Сообщение Максим Дубинин » 20 авг 2012, 21:48

В приложении странный набор данных, пробую конвертировать так:

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

ogr2ogr -lco ENCODING=UTF-8 ru_ex1.shp ru_ex.vrt
Есть специфическая строка, после которой огр просто молча прекращает работу без каких-либо сообщений, если глянуть внутрь, то там получается так, строка схлопывается игнорируя табуляции:

Изображение

При этом следующая строка, если ее выделить, конвертируется без проблем. Т.е. проблема в строке (табуляция между Песчаники и 52.8056 присутствует!):

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

8303957	Peschaniki	Peschaniki	Peschaniki,Raz"yezd Peschaniki,Razuezd Peschaniki,Raz”yezd Peschaniki,Разъезд Песчаники	52.8056	32.5483	P	PPL	RU		10				0		182	Europe/Moscow	2012-06-07
Вложения
error.7z
(740 байт) 479 скачиваний
пристегивайтесь, турбулентность прямо по курсу

ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Ошибка при конвертации CSV+CSVT+VRT в ESRI Shape

Сообщение ericsson » 20 авг 2012, 22:56

А если убрать обе двойные кавычки?

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Ошибка при конвертации CSV+CSVT+VRT в ESRI Shape

Сообщение Максим Дубинин » 21 авг 2012, 11:26

если убрать одну двойную кавычку, импортируется всё
пристегивайтесь, турбулентность прямо по курсу

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Ошибка при конвертации CSV+CSVT+VRT в ESRI Shape

Сообщение Александр Мурый » 21 авг 2012, 12:18

Может быть, дело ещё в том, что двойные кавычки разные?
err.png
err.png (4.31 КБ) 6860 просмотров
Первые -- нормальные (прямые), вторые странные (косые). После замены косых кавычек на прямые всё конвертируется без ошибок.
Редактор материалов, модератор форума

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Ошибка при конвертации CSV+CSVT+VRT в ESRI Shape

Сообщение Максим Дубинин » 21 авг 2012, 12:37

нее, косые на прямые нельзя менять, это потенциально другие проблемы создаст

я тут разобрался и описал вот тут, кривые исходные данные, наоборот надо двойные кавычки на что-то еще менять, чтобы все импортировалось.
пристегивайтесь, турбулентность прямо по курсу

ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Ошибка при конвертации CSV+CSVT+VRT в ESRI Shape

Сообщение ericsson » 21 авг 2012, 13:52

Немного буквоедства, практически буквального.
Не "нормальные" и "косые", а:
“ U+201C LEFT DOUBLE QUOTATION MARK
” U+201D RIGHT DOUBLE QUOTATION MARK
„ U+201E DOUBLE LOW-9 QUOTATION MARK
‟ U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK
″ U+2033 DOUBLE PRIME
ʺ U+02BA MODIFIER LETTER DOUBLE PRIME
‶ U+2036 REVERSED DOUBLE PRIME
" U+0022 QUOTATION MARK
так вот последний символ кавычек в этом списке - тот, который входит в приведенный выше пример первым, он является "универсальной" двойной кавычкой из ASCII, а вот второй символ - это уже U+201D, правая двойная кавычка. А дальше начинается самое интересное, потому что:
ISO 9 (ГОСТ 7.79-2000) предписывает в варианте "А" использовать модифицирующие диакритические символы (U+02BA в данном случае), в варианте "Б" для русского языка - вообще два одинарных грависа (U+0060 GRAVE ACCENT).
Это так, к сведению...

Boris
Гуру
Сообщения: 4205
Зарегистрирован: 10 апр 2006, 22:34
Репутация: 433
Откуда: Париж

Re: Ошибка при конвертации CSV+CSVT+VRT в ESRI Shape

Сообщение Boris » 30 авг 2012, 04:02

был похожий случай - входной текст содержал строку, в которой перед двойной кавычкой (концом тестовых данных) стоял обратный слеш - \"
Tmp3.zip
(1.03 КБ) 456 скачиваний
в примере - 5 строк данных, а ogrinfo выдает:
ogrinfo -ro -so -al -geom=summary test.csv
INFO: Open of `test.csv'
using driver `CSV' successful.

Layer name: test
Geometry: None
Feature Count: 1
Layer SRS WKT:
(unknown)
24861667: String (16.0)
...
field_7: String (16.0)
А ogr2ogr - он в большом файле просто пропускал несколько сот строк, до какого-то следующего спец.символа, а может до конца буфера чтения.
Если слеш убрать или добавить любой символ, что бы отделить его от кавычек - все работает без проблем.

Ответить

Вернуться в «GDAL/OGR»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 24 гостя