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

Ошибка при конвертации 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

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

Добавлено: 20 авг 2012, 22:56
ericsson
А если убрать обе двойные кавычки?

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

Добавлено: 21 авг 2012, 11:26
Максим Дубинин
если убрать одну двойную кавычку, импортируется всё

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

Добавлено: 21 авг 2012, 12:18
Александр Мурый
Может быть, дело ещё в том, что двойные кавычки разные?
err.png
err.png (4.31 КБ) 7282 просмотра
Первые -- нормальные (прямые), вторые странные (косые). После замены косых кавычек на прямые всё конвертируется без ошибок.

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

Добавлено: 21 авг 2012, 12:37
Максим Дубинин
нее, косые на прямые нельзя менять, это потенциально другие проблемы создаст

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

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

Добавлено: 21 авг 2012, 13:52
ericsson
Немного буквоедства, практически буквального.
Не "нормальные" и "косые", а:
“ 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).
Это так, к сведению...

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

Добавлено: 30 авг 2012, 04:02
Boris
был похожий случай - входной текст содержал строку, в которой перед двойной кавычкой (концом тестовых данных) стоял обратный слеш - \"
Tmp3.zip
(1.03 КБ) 482 скачивания
в примере - 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 - он в большом файле просто пропускал несколько сот строк, до какого-то следующего спец.символа, а может до конца буфера чтения.
Если слеш убрать или добавить любой символ, что бы отделить его от кавычек - все работает без проблем.