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

Открыть *.tab с помощью R

Добавлено: 03 авг 2010, 16:11
Juls
Здравствуйте
подскажите пожалуйста как загрузить в R таблицы мапинфо в родном или экспортном формате? Нашел пакет sp. Но не нашел в нем операции открытия.

спасибо :)

Re: Открыть *.tab с помощью R

Добавлено: 03 авг 2010, 19:31
Максим Дубинин
вам надо просто посмотреть слои?

Re: Открыть *.tab с помощью R

Добавлено: 03 авг 2010, 21:12
Juls
нет, открыть и осуществить пространственный запрос

Re: Открыть *.tab с помощью R

Добавлено: 03 авг 2010, 21:31
Максим Дубинин
не лучше ли тогда делать это в ГИС?

Re: Открыть *.tab с помощью R

Добавлено: 03 авг 2010, 22:11
Juls
а в какой именно гис посоветутете? мне нужно написать скрипт, который бы работал с командной строки.

Re: Открыть *.tab с помощью R

Добавлено: 03 авг 2010, 22:20
Максим Дубинин
пока сложно сказать, задача обрастает деталями, может вам потом надо делать статанализ, тогда действительно было бы правильнее держаться в R.

Давайте целиком задачу, по пунктам.

Re: Открыть *.tab с помощью R

Добавлено: 03 авг 2010, 22:50
Juls
нет, статобработки делать не нужно.
нужно открыть векторный слой с растровой подложкой, и обрезать и вектор и растр по полигону.

Re: Открыть *.tab с помощью R

Добавлено: 03 авг 2010, 22:52
Juls
выбор средств решения задачи свободный. но все это должно делаться не вручную

Re: Открыть *.tab с помощью R

Добавлено: 03 авг 2010, 22:58
Максим Дубинин
тогда откуда "всплыл" R и зачем пространственная выборка?

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

Re: Открыть *.tab с помощью R

Добавлено: 03 авг 2010, 23:08
Juls
Спасибо за совет.
С R наибольший опыт работы просто :)
А с GRASS еще ни разу не работал. Видимо, пора начать :)

Re: Открыть *.tab с помощью R

Добавлено: 28 сен 2010, 16:41
Kharlamov
Juls писал(а):Спасибо за совет.
С R наибольший опыт работы просто :)
А с GRASS еще ни разу не работал. Видимо, пора начать :)
Mapinfo+MI_Mozaic
MI_Mozaic.rar
Программа «Mozaic» предназначена для работы с привязанными изображениями в MapInfo. Программа позволят выполнять:

1. аффинные преобразования изображений (сдвиг, поворот, растяжение);
2. монтаж нескольких изображений;
3. выделение изображения внутри объекта.
(2.28 МБ) 234 скачивания

Re: Открыть *.tab с помощью R

Добавлено: 28 сен 2010, 17:25
Александр Мурый
Mapinfo+MI_Mozaic
-- это здорово, но надо, как минимум, иметь MapInfo. Все это делается и в своб. ГИС. Если автор еще заинтересуется, могу подсказать насчет GRASS.

Re: Открыть *.tab с помощью R

Добавлено: 29 сен 2010, 00:56
Juls
подскажите пожалуйста. автор очень интересуется :)

Re: Открыть *.tab с помощью R

Добавлено: 29 сен 2010, 12:22
Александр Мурый
Допустим, у нас есть растр raster.tif, вектор в формате mapinfo vector.tab и полигон, по которому их надо резать - polygon.tab.

Надо создать набор GRASS c этими данными. Проще всего это сделать из любого уже существующего набора. Например, можно скачать набор Геосэмпл http://gis-lab.info/data/geosample/geosample-grass.7z (20 Мб).

-- Запускаем GRASS с регионом geosample-grass и набором PERMANENT. Далее я пишу в командной строке, но то же самое и в граф. интерфейсе (просто мне скриншоты лень делать :) ):

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

r.in.gdal -e input=raster.tif output=raster location=raster_vector_cut
Т.о. мы создали регион с охватом, проекцией и разрешением нашего растра. Кстати, регион можно было создать и из векторного слоя vector.tab.
-- Выходим из GRASS, входим снова, но уже в новый регион raster_vector_cut, набор PERMANENT
-- Импортируем vector.tab (он должен быть в той же проекции, что и растр):

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

v.in.ogr -o dsn=vector.tab output=vector
, где опция "-o" меняет проекцию слоя на проекцию региона
-- Тем же способом импортируем слой polygon.tab (если он есть).
-- Если полигон, по которому резать, еще не создан -- это отдельный вопрос. Тогда надо будет создать полигон модулем v.digit или через граф. интерфейс wxPython.
---------------------------------------------------------------------------------------------------------------------------
Вырезаем растр по полигону:

-- Конвертируем векторный полигон в растр:

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

v.to.rast input=polygon output=polygon use=cat type=area
-- Делаем из этого растра "маску":

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

r.mask input=polygon
. Теперь (почти) все действия с растрами ограничены этой маской.
-- Пересчитываем растр raster с учетом маски (методом "ближайшего соседа"):

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

r.resample input=raster output=raster_cut
. Растр raster_cut будет вырезан по форме маски.

---------------------------------------------------------------------------------------------------------------------------
Вырезаем вектор по полигону:

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

v.select ainput=vector binput=polygon output=vector_cut
. Должен получиться новый слой vector_cut.

Потом "урезанные" растр и вектор можно экспортировать в нужный формат.
----------------------------
Будут вопросы -- спрашивайте.

Re: Открыть *.tab с помощью R

Добавлено: 30 сен 2010, 15:49
Juls
спасибо за информацию :D