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

Re: Проблема с построением ЦМР после импорта из MAPInfo

Добавлено: 01 мар 2011, 11:39
Александр Мурый
Я тут подумал.. На самом деле, пример "v.to.rast in=isolines out=isolines_raster use=cat" не подходит для этого случая (создание маски по границам изолиний). Т.к. при задании маски по растеризованным изолиниям все промежутки между ними не будут иметь значений (т.е. null) и будут игнорироваться при растровых операциях.

Надо либо оцифровать границу вручную, как было написано выше, либо:
-- сделать так называемую "выпуклую оболочку" (или "конвексную" оболочку) с пом. модуля v.hull

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

v.hull input=isolines output=isolines_hull
, которая и будет границей изолиний;
-- вектор в растр (используем use=cat)

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

v.to.rast in=isolines_hull out=isolines_hull_rast use=cat

-- задаем маску по этому растру

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

r.mask input=isolines_hull_rast

Re: Проблема с построением ЦМР после импорта из MAPInfo

Добавлено: 01 мар 2011, 11:54
eucrariano
Вот еще вопрос возник.
"d.profile rast=chern_11_elev_0.001@PERMANENT

Use mouse to choose action
No socket to connect to for monitor <x1>.
ERROR: No graphics device selected
(Tue Mar 1 10:49:41 2011) Command finished (0 sec) "

Вот такая ошибка постоянно. Проблема с моей стороны, или это глюк. В документации утверждается, что BUGS None known. Не могу понять что делать?

Re: Проблема с построением ЦМР после импорта из MAPInfo

Добавлено: 01 мар 2011, 12:19
Александр Мурый
eucrariano писал(а):Вот еще вопрос возник.
"d.profile rast=chern_11_elev_0.001@PERMANENT

Use mouse to choose action
No socket to connect to for monitor <x1>.
ERROR: No graphics device selected
Для работы модуля d.profile надо запустить вначале т.н. "графический монитор" (d.mon x0).
Можно проводить профили в wxGUI (которым, как я понял, вы пользуетесь) -- ищите спец.иконку (ниже на скриншоте), а также в Tcl/Tk
wxGUI_profile.png
wxGUI_profile.png (13.09 КБ) 8131 просмотр

Re: Проблема с построением ЦМР после импорта из MAPInfo

Добавлено: 01 мар 2011, 12:44
eucrariano
Спасибо! Все получилось. А ведь настолько очевидно !!! С v.hull также разобрался. Много лучше уже. Хотя конечно, чтобы идеально обрисовать контур территории, надо поработать немного руками. Спасибо еще раз за помощь.

Re: Проблема с построением ЦМР после импорта из MAPInfo

Добавлено: 01 мар 2011, 13:07
eucrariano
Уфф. Маски работают просто замечательно. Спасибо

Re: Проблема с построением ЦМР после импорта из MAPInfo

Добавлено: 01 мар 2011, 17:40
eucrariano
Еще вот вопрос: можно ли преобразовать замкнутый сложный контур в центроид или ареал штатными средствами GRASS?
Спасибо.

Re: Проблема с построением ЦМР после импорта из MAPInfo

Добавлено: 01 мар 2011, 18:09
Александр Мурый
eucrariano писал(а):Еще вот вопрос: можно ли преобразовать замкнутый сложный контур в центроид или ареал штатными средствами GRASS?
В грасс полигон (area) = граница (boundary) + центроид (точка внутри границы, к которой относится информация о полигоне). Линия -- не граница, это отдельный векторный тип. Итак, нужно сделать из линии полигон?
Поехали:
-- модуль v.type переводит линию в границу

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

v.type input=object_line output=object_boundary type=line,boundary

-- далее либо вручную (v.digit / wxGUI), либо с помощью модуля v.category добавляем центроид внутрь нашей границы

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

v.category input=object_boundary output=object_boundary_cats option=add

Все, полигон готов.

Re: Проблема с построением ЦМР после импорта из MAPInfo

Добавлено: 01 мар 2011, 18:26
eucrariano
Как всё-таки был прав В.И.Ленин: учится, учится и еще раз учится :D .
Спасибо.

Re: Проблема с построением ЦМР после импорта из MAPInfo

Добавлено: 01 мар 2011, 22:39
eucrariano
amuriy писал(а):
eucrariano писал(а):Еще вот вопрос: можно ли преобразовать замкнутый сложный контур в центроид или ареал штатными средствами GRASS?
В грасс полигон (area) = граница (boundary) + центроид (точка внутри границы, к которой относится информация о полигоне). Линия -- не граница, это отдельный векторный тип. Итак, нужно сделать из линии полигон?
Поехали:
-- модуль v.type переводит линию в границу

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

v.type input=object_line output=object_boundary type=line,boundary

-- далее либо вручную (v.digit / wxGUI), либо с помощью модуля v.category добавляем центроид внутрь нашей границы

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

v.category input=object_boundary output=object_boundary_cats option=add

Все, полигон готов.
Получилось сделать задом наперед: внутри контура был создан центроид, я же вначале сам пробовал решить проблему, а когда запустил v.type input=object_line output=object_boundary type=line,boundary, то сразу создался центроид и залился серым цветом.