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

Перепроецирование MapInfo

Добавлено: 11 дек 2011, 15:22
DimonSpb
Хочу задать СК (EPSG:28409) для файла MapInfo (исходная СК: План-схема):

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

ogr2ogr -a_srs "EPSG:28409" -f "MapInfo file" "C:\110510_2.tab" "C:\110510.tab"
Получаю пустой файл. Что делаю не так?

Re: Перепроецирование MapInfo

Добавлено: 11 дек 2011, 15:57
Voltron
Пример файла можно?

Re: Перепроецирование MapInfo

Добавлено: 11 дек 2011, 16:23
DimonSpb

Re: Перепроецирование MapInfo

Добавлено: 11 дек 2011, 16:50
Voltron
Хм... У меня и оригинальный файл открывается не как слой, а как обычная таблица. Такое впечатление, что геометрии там нет.

Re: Перепроецирование MapInfo

Добавлено: 11 дек 2011, 17:30
DimonSpb
Voltron писал(а):геометрии там нет
Вы абсолютно правы.
Изначально пытаюсь получить из csv-файла файл в mapinfo. Согласно документации сsv-файл содержать "признак" СК данных не может, а с vrt-файлом не получилось, поэтому разбил задачу на 3:
1. получение из csv таблицы в mapinfo в СК "План-схема".
2. присвоение полученной таблице необходимой СК.
3. создание "графики".
ИМХО все три задачи можно решить с помощью ogr, но споткнулся уже на второй...
Исходный CSV.

Re: Перепроецирование MapInfo

Добавлено: 12 дек 2011, 22:50
Voltron
Вы пытаетесь назначить СК таблице без геометрии, поэтому у вас ничего и не получается. Чтобы получить желаемо нужно указать OGR, что в CSV есть геометрия. Это делается при помощи VRT.
Рядом с CSV cоздаете файл 110510.vrt

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

<OGRVRTDataSource>
    <OGRVRTLayer name="110510">
        <LayerSRS>WGS84</LayerSRS>
        <SrcDataSource>110510.csv</SrcDataSource>
        <GeometryType>wkbPoint</GeometryType>
        <GeometryField encoding="PointFromColumns" x="X" y="Y"/>
    </OGRVRTLayer>
</OGRVRTDataSource>
Потом в командной строке выполняете

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

ogr2ogr -a_srs EPSG:28409 -f "MapInfo File" 110510.tab 110510.vrt
Почитате статью, там достаточно подробно описано что и почему

Re: Перепроецирование MapInfo

Добавлено: 13 дек 2011, 08:24
DimonSpb
С WGS84 в vrt файле у меня не получилось... Зато с параметрами 9 зоны получил файлы MapInfo в заданной СК.

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

<OGRVRTDataSource>
    <OGRVRTLayer name="110510">
        <LayerSRS>PROJCS["unnamed",
    GEOGCS["unnamed",
        DATUM["Pulkovo_1942",
            SPHEROID["Krassovsky",6378245,298.3],
            TOWGS84[24,-123,-94,0.02,-0.25,-0.13,1.1]],
        PRIMEM["Greenwich",0],
        UNIT["degree",0.0174532925199433]],
    PROJECTION["Transverse_Mercator"],
    PARAMETER["latitude_of_origin",0],
    PARAMETER["central_meridian",51],
    PARAMETER["scale_factor",1],
    PARAMETER["false_easting",9500000],
    PARAMETER["false_northing",0],
    UNIT["Meter",1.0]]</LayerSRS>
        <SrcDataSource>110510.csv</SrcDataSource>
        <GeometryType>wkbPoint</GeometryType>
        <GeometryField encoding="PointFromColumns" x="Y" y="X"/>
    </OGRVRTLayer>
</OGRVRTDataSource>
А вот изменить СК не получается (исходный файл содержит "графику" в СК 9 зона (Пулкова 1942)):

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

ogr2ogr -a_srs EPSG:28409 -f "MapInfo File" 110510_2.tab 110510.tab
Получаю пустые файлы.

Re: Перепроецирование MapInfo

Добавлено: 13 дек 2011, 11:25
Voltron
Что-то я не пойму. Исходные данные у вас в EPSG:28409, так? Тогда зачем все эти пляски с назначением проекции, зачем зря усложнять? Просто в VRT впишите

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

<LayerSRS>EPSG:28409</LayerSRS>
и выполните

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

ogr2ogr -f "MapInfo File" 110510.tab 110510.vrt

Re: Перепроецирование MapInfo

Добавлено: 13 дек 2011, 17:52
DimonSpb
Voltron писал(а):зачем все эти пляски с назначением проекции
Есть функция у оgr2ogr. У меня она не работает, законное желание узнать "почему".

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

<LayerSRS>EPSG:28409</LayerSRS>
Этот вариант у меня не прокатывает. Как версия: для MapInfo не поддерживается "EPSG-кодификация" СК. :(
Какие еще возможны варианты задания СК без формирования vrt-файла? Или что я делаю не так?