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

Аватара пользователя
eucrariano
Активный участник
Сообщения: 104
Зарегистрирован: 26 авг 2009, 12:09
Репутация: 0
Откуда: Ukraine, Chernivtsy

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

Сообщение eucrariano » 28 фев 2011, 01:11

Здравствуйте.
Конкретно проблема вот в чем: из MAPInfo 7.8 экспортирую слой с горизонталями в формат .mif. Исходная карта создана вероятнее всего в конце 90-х гг. в MAPInfo 3.0. При этом данных про проекцию получить не удается, экспортирует зразу без излишних вопросов (в файле .mif есть такая строчка: CoordSys Earth Projection 1, 0), если экспортирую в формат AutoCAD, то получается получить такое (вложение 1). Реальные размеры физической области - 261.99х94.63 км.
Когда же создаю рабочую область в GRASS, то карта интегрируется маленькая, маленькая, независимо от выбранной системы координат, при выборе же опций (вложение 2) карта вроде помещается как нужно, только вот при построении ЦМР через v.surf.rst - викидывает ошибку: "ERROR2: zero points in the given region!ERROR: Input failed".
Где моя ошибка и как ее исправить?
Спасибо
Вложения
vlogenie_2.jpg
vlogenie_2.jpg (110.14 КБ) 8603 просмотра
from_autocad.jpg
from_autocad.jpg (14.39 КБ) 8603 просмотра

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

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

Сообщение KolesovDmitry » 28 фев 2011, 07:33

А какие параметры у созданного вами региона? Покажите результат команды

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

g.region -p

gamm
Гуру
Сообщения: 2984
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 696
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm » 28 фев 2011, 08:27

eucrariano писал(а):Здравствуйте.
Конкретно проблема вот в чем: из MAPInfo 7.8 экспортирую слой с горизонталями в формат .mif. Исходная карта создана вероятнее всего в конце 90-х гг. в MAPInfo 3.0. При этом данных про проекцию получить не удается, экспортирует зразу без излишних вопросов (в файле .mif есть такая строчка: CoordSys Earth Projection 1, 0), если экспортирую в формат AutoCAD, то получается получить такое (вложение 1). Реальные размеры физической области - 261.99х94.63 км.
Когда же создаю рабочую область в GRASS, то карта интегрируется маленькая, маленькая, независимо от выбранной системы координат, при выборе же опций (вложение 2) карта вроде помещается как нужно, только вот при построении ЦМР через v.surf.rst - викидывает ошибку: "ERROR2: zero points in the given region!ERROR: Input failed".
Где моя ошибка и как ее исправить?
Спасибо
проблема конкретно в том, что у вас проекция стоит долгота/широта, которую ставит МапИнфо по умолчанию при ввобе карт - тот, кто вводил карту, не выставил проекцию, поэтому у вас там все якобы в градусах.

Нужно выставить проекцию План-схема с правильными границами (прямо в MIF, текстовым редактором, с правильными границами), типа такого:
CoordSys NonEarth Units "m" Bounds (-500000, -500000) (500000, 500000)

Только я не знаю, может ли ГРАСС работать с плансхемой (это к тов.Колесову) ... если не может, то придется поставить проекцию типа UTM, прибавив к координатам прримерно 5000000 к каждой (для этого в MIF есть оператор TRANSFORM). В общем, поправить проекцию и импортировать обратно в MI, а потом экспортировать.

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

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

Сообщение KolesovDmitry » 28 фев 2011, 09:48

gamm писал(а): Нужно выставить проекцию План-схема с правильными границами

Только я не знаю, может ли ГРАСС работать с плансхемой
Может, при создании области нужно указать, что это план-схема.

Аватара пользователя
eucrariano
Активный участник
Сообщения: 104
Зарегистрирован: 26 авг 2009, 12:09
Репутация: 0
Откуда: Ukraine, Chernivtsy

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

Сообщение eucrariano » 28 фев 2011, 12:16

Спасибо за ответ. Правлю текстовом редактором mif файл: "CoordSys NonEarth Units "m" Bounds (24.9107, 47.7258) (27.5306, 48.6721)", импортирую назад в MI - там уже стоит проекция План-схема, потом назад экспорт в mif. Импортирую в ГРАСС - карта все равно маленькая и в сером прямоугольнике. В конце mif файла есть строки:
Pen (1,2,11556864)
Rect 24.9107 47.7258 27.5306 48.6721
Pen (1,2,0)
Brush (1,0,16777215). Может поэтому?
Когда zoom to selected maps, то увеличивает до нормальных размеров и координаты показывает при навигации как и установлено, а вот при zoom to default region - охват региона показівает от -23; 0 до 50;48.67(g.proj -p выдает - XY location (unprojected).
ЦМР не строит с той же ошибкой. Что еще можно сделать?
Спасибо

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

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

Сообщение Александр Мурый » 28 фев 2011, 15:24

eucrariano, вам надо "подогнать" текущий регион под векторный слой:

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

g.region vect=мои_чудесные_изолинии res=20
,
причем обязательно указать нужное пространственное разрешение (в единицах области) для будущего растра (ЦМР). Выбор разрешения -- дело тонкое 8), тут надо видеть данные, знать масштаб, просто так не посоветуешь.. В примере разрешение 20 метров для области в метрах (спроецированной или просто XY, как у вас).

После задания региона можно интерполировать.
Редактор материалов, модератор форума

Аватара пользователя
eucrariano
Активный участник
Сообщения: 104
Зарегистрирован: 26 авг 2009, 12:09
Репутация: 0
Откуда: Ukraine, Chernivtsy

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

Сообщение eucrariano » 28 фев 2011, 16:25

Спасибо. g.region vect=мои_чудесные_изолинии res=20 - дало возможность запустить v.surf.rst - мигом посчитало: учитывая, что границы области с изолиниями х1=24.9107 у1=47.7258 и х2=27.5306 у2=48.6721, то есть реально в данном случае вся область влазит в ~2х1 м, то у меня получилась ЦМР из 2 таких огромных точек. Пробовал g.region vect=мои_чудесные_изолинии res=0.0001 - начинает считать, но судя с размера файла подкачки на 1 гиг, ясно, что считать будет сутки, поставил res=0.001 - ну здесь уже жду, считает около 15 мин, прошло ~25%, надеюсь на удомоваримый результат. По ходу вопрос не по теме. Вот пробовал импортировать данные SRTM4 из geotiff, процесс проходит без проблем, задаю проекцию и все такое, только вот импортированная карта не отображается ;(. Задавал и цветовую таблицу SRTM, и r.null запускал, и ничего. Почему так?

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

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

Сообщение KolesovDmitry » 28 фев 2011, 16:35

Вам нужно сначала понять, как устроена работа с областями в GRASS: когда вы работаете с растрами, вы всегда работаете с определенным охватом территории и разрешением. Охват и разрешение задаются в g.region. Если вы импортировали данные, не попадающие в текущий охват или разрешение не подходящее, то результата или не будет вовсе, или он будет "так себе".

Поэтому первым делом разберитесь с параметрами области.

Аватара пользователя
eucrariano
Активный участник
Сообщения: 104
Зарегистрирован: 26 авг 2009, 12:09
Репутация: 0
Откуда: Ukraine, Chernivtsy

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

Сообщение eucrariano » 28 фев 2011, 16:40

Вот еще вопрос вдогонку. Создаем рабочую область. Импортируем туда объект произвольной формы. Получается огромное поле, незаполненное ничем. Как создать маску, чтобы отсекать все это безобразие. При построении ЦМР, оно (ГРАСС) только и ругается - taking too long to find points for interpolation--please change the region to area where your points are. Continuing calculations...
Спасибо

Аватара пользователя
eucrariano
Активный участник
Сообщения: 104
Зарегистрирован: 26 авг 2009, 12:09
Репутация: 0
Откуда: Ukraine, Chernivtsy

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

Сообщение eucrariano » 28 фев 2011, 16:45

KolesovDmitry писал(а):Вам нужно сначала понять, как устроена работа с областями в GRASS: когда вы работаете с растрами, вы всегда работаете с определенным охватом территории и разрешением. Охват и разрешение задаются в g.region. Если вы импортировали данные, не попадающие в текущий охват или разрешение не подходящее, то результата или не будет вовсе, или он будет "так себе".

Поэтому первым делом разберитесь с параметрами области.
Спасибо за советы. Только иногда вполне очевидные вещи долго доходят. А когда надо что-то быстро сделать, а предметом владеешь так себе, то получаются проблемы. Походу изучаю матчасть, но не все успеваю, слишком много всего наваливается: и в жизни и тут.
Спасибо.

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

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

Сообщение Александр Мурый » 28 фев 2011, 16:58

Вот пробовал импортировать данные SRTM4 из geotiff, процесс проходит без проблем, задаю проекцию и все такое, только вот импортированная карта не отображается ;(. Задавал и цветовую таблицу SRTM, и r.null запускал, и ничего. Почему так?
Не задан текущий регион
g.region rast=srtm
Создаем рабочую область. Импортируем туда объект произвольной формы. Получается огромное поле, незаполненное ничем. Как создать маску, чтобы отсекать все это безобразие. При построении ЦМР, оно (ГРАСС) только и ругается - taking too long to find points for interpolation--please change the region to area where your points are. Continuing calculations...
Ну так послушайте его, оно ж не просто так ругается -- оно дело говорит.. Задайте текущий регион под ваш "объект произвольной формы": g.region rast=объект или g.region vect=объект
А когда надо что-то быстро сделать..
Не хочу вас расстраивать, но GRASS для этого не совсем предназначена. Хотя если освоиться, то типовые задачи решаются довольно шустро.
Редактор материалов, модератор форума

Аватара пользователя
eucrariano
Активный участник
Сообщения: 104
Зарегистрирован: 26 авг 2009, 12:09
Репутация: 0
Откуда: Ukraine, Chernivtsy

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

Сообщение eucrariano » 28 фев 2011, 17:27

"Ну так послушайте его, оно ж не просто так ругается -- оно дело говорит.. Задайте текущий регион под ваш "объект произвольной формы": g.region rast=объект или g.region vect=объект"


Спасибо, с этим "g.region rast=объект или g.region vect=объект" более-менея ясно, только вот когда объект не прямоугольник, как скажем регион, выделенный под него, а овал, вписаный в этот прямоугольник, то чтобы отсекти лишнеее, надо задать маску. Как ее сформировать? Вот в чем вопрос, может и наивный. Может я неправильно что-то формулируюю.
И наконец дождался результата построения ЦМР - Command finished (3915 sec). Все хорошо вышло, только вот теперь бы маску задать, чтобы интерполяция проходила строго в области, ограниченной горизонталями. Вот, чтобы яснее изложить свою мысль, прилагаю вложение (даю в тонах серого, так красивее).
Спасибо
Вложения
grey.jpg
grey.jpg (8.49 КБ) 8502 просмотра

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

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

Сообщение Александр Мурый » 28 фев 2011, 17:42

когда объект не прямоугольник, как скажем регион, выделенный под него, а овал, вписаный в этот прямоугольник, то чтобы отсекти лишнеее, надо задать маску. Как ее сформировать?
Можно так:
-- перегоняем векторные изолинии в растр

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

v.to.rast in=isolines out=isolines_raster use=cat

-- задаем растровую маску (все дальнейшие растровые операции будут происходить в пределах маски)

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

r.mask input=isolines_raster

удалить потом можно командой

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

r.mask -r


ИЛИ можно вручную (с помощью v.digit или wxGUI) обвести нужный район (с изолиниями), а затем так же перегнать в растр и сделать по нему маску.
Редактор материалов, модератор форума

Аватара пользователя
eucrariano
Активный участник
Сообщения: 104
Зарегистрирован: 26 авг 2009, 12:09
Репутация: 0
Откуда: Ukraine, Chernivtsy

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

Сообщение eucrariano » 28 фев 2011, 17:57

Большое спасибо всем!!! Попробую дома. Очень выручили и помогли!!!

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

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

Сообщение Александр Мурый » 28 фев 2011, 17:59

На здоровье :)
Кстати, по маске можно и обрезать уже имеющийся растр:

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

r.resample input=исходный_растр output=обрезанный_растр
Редактор материалов, модератор форума

Ответить

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

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

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