Импорт .shp/.mif в GRASS

Ответить
Methuselah
Интересующийся
Сообщения: 15
Зарегистрирован: 09 июн 2009, 11:08
Репутация: 0

Импорт .shp/.mif в GRASS

Сообщение Methuselah » 03 июл 2009, 11:38

Здравствуйте! Имеется shp (а также mif сделаный по shp) с точками заданными в координатах lon\lat. Также в нем имеются атрибутивные таблицы для этих точек. Вопрос: как импортировать этот файл в GRASS? v.in.ogr ругается - "Projection of dataset does not appear to match current location." (в shp точки для всего мира, датасэты в ГРАССе выбирались с различными проекциями - итог один) (В QGis 1.0.2 она не работает вообще - "Cannot find key r" - понятия не имею как исправить и что это значит). ogr2ogr не поддерживает формат GRASS'a на выходе. Может есть какие-либо еще модули (например gdal'овские) которые помогут переконвертировать мой shp в grass-vector или хотя бы как-нибудь его репроектировать чтобы GRASS его понял хотя бы.
Дополнение к вопросу: Необходимо из этого shp-файла точек раскиданных по всему оставить только те которые попадают в заданную мною проекцию. Например, у меня есть проекция северного Кавказа в UTM (датасэт и мапсэты уже настроены на эту область) и я хочу из всех этих 1250 точек выбрать только те которые относятся к моей области. Я так понимаю, что при успешном импорте в GRASS в заданную локацию, он мне сам должен "отсеять" ненужные мне точки, правильно? Как это сделать? Помогите пожалуйста!
Вложения
test_shp_mif.zip
(184.67 КБ) 536 скачиваний

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

Re: Импорт .shp/.mif в GRASS

Сообщение KolesovDmitry » 03 июл 2009, 12:19

Methuselah писал(а):Имеется shp с точками заданными в координатах lon\lat.
Вопрос: как импортировать этот файл в GRASS? v.in.ogr ругается - "Projection of dataset does not appear to match current location."
...Например, у меня есть проекция северного Кавказа в UTM (датасэт и мапсэты уже настроены на эту область).
Если действительно, координаты shp у вас широта-долгота, а область GRASS - UTM, то ничего удивительного, что ГРАСС не хочет их импортировать. Вам нужно сначала попросту перепроецировать ваш shp в нужную проекцию (ту, на которую настроена область ГРАСС), и только потом проделать импорт.

Однако, даже в случае совпадения проекций области и шейп-файла, v.in.ogr может выдать сообщение о несовпадении проекций. Дело в том, что в формате shp не описывается проекция (хотя ее можно указать в отдельном файле *.prj). Поэтому, вам нужно будет передать ключ -o команде [url=http://grass.gis-lab.info/grass63/manua ... n.ogr.html]v.in.ogr[/ur], который отменяет проверку проецирования.

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

Re: Импорт .shp/.mif в GRASS

Сообщение KolesovDmitry » 03 июл 2009, 12:49

В догонку еще:
Methuselah писал(а): Дополнение к вопросу: Необходимо из этого shp-файла точек раскиданных по всему оставить только те которые попадают в заданную мною проекцию. Например, ... я хочу из всех этих 1250 точек выбрать только те которые относятся к моей области. Я так понимаю, что при успешном импорте в GRASS в заданную локацию, он мне сам должен "отсеять" ненужные мне точки, правильно?
Нет, не правильно. Импортируются все точки. Просто те, которые выходят за границы вашего региона в ГРАСС будут лежать за границами региона (и будут доступны для просмотра и редактирования).
Отсеять их можно на этапе импорта (передав параметр)

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

spatial=xmin,ymin,xmax,ymax[,xmin,ymin,xmax,ymax,...]
команде v.in.ogr. Тогда импортируются точки только из указанной области.
Однако, если область интересов сложная по конфигурации, то проще будет импортировать все, а потом удалить лишнее (если это проделать в ГРАСС) или сначала удалить лишнее, а потом импортировать (если это делать сторонними ГИС).

Methuselah
Интересующийся
Сообщения: 15
Зарегистрирован: 09 июн 2009, 11:08
Репутация: 0

Re: Импорт .shp/.mif в GRASS

Сообщение Methuselah » 03 июл 2009, 13:48

Спасибо за ответ! Добился-таки импорта shp\mif. Теперь меня интересует модуль v.proj. Допустим я импортировал свой вектор в WGS84 и успешно, теперь я хочу его перепроецировать в заданный участок с заданной проекцией.
В результате ошибка:

Input Projection Parameters: +proj=longlat +no_defs +a=6378137 +rf=298.257223563 +towgs84=0.000,0.000,0.000
Input Unit Factor: 1

Output Projection Parameters: +proj=utm +zone=13 +a=6378206.4 +rf=294.9786982 +no_defs +nadgrids=/usr/lib/grass/etc/nad/conus
Output Unit Factor: 1

Creating vector file...
pj_transform() failed
cause: latitude or longitude exceeded limits
Error in pj_do_transform


Изначально longitude была была с отрицательными числами - поменял как 180+(абс(*знач*+180)). Импортируется нормально, при репроектировке та же ошибка.
Как мне перепроектировать мои векторные данные в область с моей проекцией (UTM и т.п.)?
Получилось с помощью модуля ogr2ogr. Хорошо, хоть так, но все же хотелось бы узнать как это сделать без использования терминала. Работа модуля r.proj, в плане перепроектировки, меня полностью удовлетворяет.

Ответить

Вернуться в «GRASS»

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

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