Страница 1 из 1
OGR и описание формата полей в Mapinfo. Чудеса....
Добавлено: 17 авг 2012, 00:27
Boris
Поимел проблему на ровном месте:
создал CSV файл, как описано в статье
Конвертация данных из CSV в SHP и обратно с OGR, создал файл CSVT - т.к. был принципиален целочисленный индекс:
Integer,String,String(4),String
запускаю
Код: Выделить всё
ogr2ogr -f "mapinfo file" Data0.mif Data0.csv
имею в описании полей в MIF-файле:
Columns 4
id Integer(12)
title Char(254)
isdeleted Char(4)
WKT Char(254)
запускаю
Код: Выделить всё
ogr2ogr -f "mapinfo file" Data0.TAB Data0.csv
имею в описании полей в TAB-файле:
Fields 4
id Integer ;
title Char (254) ;
isdeleted Char (4) ;
WKT Char (254) ;
естественно,
id Integer(12) приводит к сбою при открытии файла в мапинфо:(
вывод в MIF - то же не для красоты сделан, т.к. надо устанавливать границы карты, а указывать это в OGR вроде негде?
---
и еще вопрос, есть способ показать в описании CSV, что поле
WKT, в атрибутивные данные создаваемой таблицы переносить не надо?
---
автору за статью - огромное спасибо.

Re: OGR и описание формата полей в Mapinfo. Чудеса....
Добавлено: 17 авг 2012, 11:44
Максим Дубинин
Борис, а почему "id Integer(12) приводит к сбою при открытии файла в мапинфо"? Поле integer в Mapinfo не может быть 12 разрядов?
Можете приложить пример своих данных?
В спецификации драйвера OGR CSV сказано, что названия типов в CSVT должны быть взяты в кавычки, пробовали?
PS: перенес статью в вики.
Re: OGR и описание формата полей в Mapinfo. Чудеса....
Добавлено: 17 авг 2012, 11:55
Александр Мурый
Boris писал(а):
вывод в MIF - то же не для красоты сделан, т.к. надо устанавливать границы карты, а указывать это в OGR вроде негде?
Опции ogr2ogr
-spat или
-clipsrc не подойдут?
Boris писал(а):
и еще вопрос, есть способ показать в описании CSV, что поле WKT, в атрибутивные данные создаваемой таблицы переносить не надо?
Опция
-select с перечислением нужных полей:
Код: Выделить всё
ogr2ogr -f "MapInfo File" -select id,title,isdeleted Data0.TAB Data0.csv
Re: OGR и описание формата полей в Mapinfo. Чудеса....
Добавлено: 17 авг 2012, 13:39
Boris
дополнительная информация:
строка на выполнение (пример данных в аттаче):
F:\16>ogrinfo --version
GDAL 1.9.0, released 2011/12/29
F:\16>ogr2ogr -f "mapinfo file" -overwrite testData_190.mif testData.csv
результат:
Код: Выделить всё
Columns 4
id Integer
title Char(254)
isdeleted Char(4)
WKT Char(254)
Код: Выделить всё
F:\16>ogrinfo --version
GDAL 1.9.1, released 2012/05/15
F:\16>ogr2ogr -f "mapinfo file" -a_srs epsg:4326 -s_srs epsg:4326 -overwrite testData_191.mif testData.csv
результат:
Columns 4
id Integer(12)
title Char(254)
isdeleted Char(4)
WKT Char(254)

- пойду искать, где что установлено и какая версия есть последняя на сайтах.
---
id Integer(12)
- не может быть, т.к. в MapInfo это единица хранения информации, а не единица отображения. А целое, оно одного размера - 4 байта, есть SmallInt - для любителей экономии, но это уже про другое. На такую запись стандартный импорт мапинфо - ругается.
И в кавычках или без кавычек перечислены типы полей - результат один и тот же.
Re: OGR и описание формата полей в Mapinfo. Чудеса....
Добавлено: 17 авг 2012, 13:50
Boris
amuriy писал(а):
Опции ogr2ogr -spat или -clipsrc не подойдут?
Вот второй параметр
-clipsrc у меня наотрез отказывается работать - выдает
F:\16>ogr2ogr -f "mapinfo file" -overwrite -spat 34 53 42 59 -clipsrc spat_extent -a_srs epsg:4326 -a_srs epsg:4326 testDataClip.mif testData.csv
ERROR 1: IllegalArgumentException: Points of LinearRing do not form a closed linestring
ERROR 1: IllegalArgumentException: Points of LinearRing do not form a closed linestring
хотя экцент данных вот таков:
Layer name: testData
Geometry: Unknown (any)
Feature Count: 72
Extent: (36.029309, 55.310147) - (39.857369, 56.422858)
Layer SRS WKT:
(unknown)
id: Integer (0.0)
title: String (0.0)
isdeleted: String (4.0)
WKT: String (0.0)
---
amuriy писал(а):Boris писал(а):
и еще вопрос, есть способ показать в описании CSV, что поле WKT, в атрибутивные данные создаваемой таблицы переносить не надо?
Опция
-select с перечислением нужных полей:
Код: Выделить всё
ogr2ogr -f "MapInfo File" -select id,title,isdeleted Data0.TAB Data0.csv
C Select'ом понятно, хотелось просто подавить перенос лишнего поля WKT, которое переходит в геометрию, без использования знаний о составе атрибутивных данных.
Re: OGR и описание формата полей в Mapinfo. Чудеса....
Добавлено: 17 авг 2012, 14:05
Voltron
Код: Выделить всё
$ ogr2ogr --version
GDAL 1.9.0, released 2011/12/29
Что в MIF
Код: Выделить всё
Version 300
Charset "Neutral"
Delimiter ","
Columns 4
id Integer
title Char(254)
isdeleted Char(4)
WKT Char(254)
Data
что в TAB сохраняет одинаково
Код: Выделить всё
!table
!version 300
!charset Neutral
Definition Table
Type NATIVE Charset "Neutral"
Fields 4
id Integer ;
title Char (254) ;
isdeleted Char (4) ;
WKT Char (254) ;
Re: OGR и описание формата полей в Mapinfo. Чудеса....
Добавлено: 17 авг 2012, 14:35
Voltron
Код: Выделить всё
ogr2ogr --version
GDAL 1.9.1, released 2012/05/15
и
Код: Выделить всё
ogr2ogr --version
GDAL 2.0dev, released 2011/12/29
формируют MIF
Код: Выделить всё
Version 300
Charset "Neutral"
Delimiter ","
Columns 4
id Integer(12)
title Char(254)
isdeleted Char(4)
WKT Char(254)
Data
и TAB
Код: Выделить всё
!table
!version 300
!charset Neutral
Definition Table
Type NATIVE Charset "Neutral"
Fields 4
id Integer ;
title Char (254) ;
isdeleted Char (4) ;
WKT Char (254) ;
Видимо, что-то поменяли в коде