OGR и описание формата полей в Mapinfo. Чудеса....

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

OGR и описание формата полей в Mapinfo. Чудеса....

Сообщение Boris » 17 авг 2012, 00:27

Поимел проблему на ровном месте:
создал 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, в атрибутивные данные создаваемой таблицы переносить не надо?
---
автору за статью - огромное спасибо. :!:

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

Re: OGR и описание формата полей в Mapinfo. Чудеса....

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

Борис, а почему "id Integer(12) приводит к сбою при открытии файла в мапинфо"? Поле integer в Mapinfo не может быть 12 разрядов?

Можете приложить пример своих данных?
В спецификации драйвера OGR CSV сказано, что названия типов в CSVT должны быть взяты в кавычки, пробовали?

PS: перенес статью в вики.
пристегивайтесь, турбулентность прямо по курсу

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

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
Редактор материалов, модератор форума

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

Re: OGR и описание формата полей в Mapinfo. Чудеса....

Сообщение Boris » 17 авг 2012, 13:39

дополнительная информация:
строка на выполнение (пример данных в аттаче):
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 - для любителей экономии, но это уже про другое. На такую запись стандартный импорт мапинфо - ругается.
И в кавычках или без кавычек перечислены типы полей - результат один и тот же.
testData.7z
(7.17 КБ) 430 скачиваний
Последний раз редактировалось Boris 17 авг 2012, 13:55, всего редактировалось 2 раза.

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

Re: OGR и описание формата полей в Mapinfo. Чудеса....

Сообщение Boris » 17 авг 2012, 13:50

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, которое переходит в геометрию, без использования знаний о составе атрибутивных данных.

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: OGR и описание формата полей в Mapinfo. Чудеса....

Сообщение Voltron » 17 авг 2012, 14:05

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

$ 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) ;

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: OGR и описание формата полей в Mapinfo. Чудеса....

Сообщение Voltron » 17 авг 2012, 14:35

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

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) ;
Видимо, что-то поменяли в коде

Ответить

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

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

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