Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

ГИС: обсуждаем, изучаем, делимся. Выпуск 5.


Информационный Канал Subscribe.Ru

ГИС: обсуждаем, изучаем, делимся.

Выпуск 5. Изменяем координаты.

Добрый день.

Радует, что рассылка набирает обороты, переведена в разряд "серебряные" и проаннонсирована в новых рассылках. Оказалось, что "высокие технологии", в которых я её зарегистрировал, относятся к области экономики. :) Через пару дней исправлю.

Продолжим

Преобразования делятся на изменение проекции и изменение системы координат.

Регистрация растровых изображений.

Все преобразования, про которые мы сейчас говорим- это аффинные преобразования. т.е. повороты и сжатия-растяжения.

В MapInfo всё просто. При открытии файла пакет сам предлагает его отрегистрировать. В результате создаётся tab- файл с координатами.

Теперь вы можете открывать растровый файл как таблицу. В растровой таблице можно изменять проекцию и контрольные точки.

В АrcInfo есть команда register. Всё интуитивно понятно. Для запуска register file_name

register c:\rastr.bmp

В результате создаётся файл rastr.bpw в котором хранятся коэффициенты преобразования. При небольшом опыте, когда нет под рукой arcinfo, и нужно отрегистрировать картинку, можно методом проб и ошибок самому поподбирать коэффициенты.

Команды register я в ArcGIS не нашёл. В той версии что у меня стоит её нет и в хелпе, я про неё ничего не нашёл. :(

А теперь векторные данные:

В ArcView стандартными средствами решена только задача изменения проекции. Хотя слышал, что есть написанные умельцами на Avenue скрипты, позволяющие решать и задачу изменения системы координат, но самому мне их видеть не довелось.

В ArcView есть ArcView Projection Utility, которая позволяет конвертировать данные из одной проекции в другую. А если у вас есть просто две поверхности и вам их нужно просто совместить. ArcView уже не справится.

MapInfo

Сохранение данных в новой проекции:

Файл- сохранить копию.-> диалог:сохранить копию таблицы->кнопка Проекция-> выбираем проекцию.

для трансформации координат есть стандартные утилиты.

Register_Vector более простая и интуитивно понятная. Две поверхности совмещаются по трём точкам. К недостаткам я бы отнёс во-первых. т.к. привязка происходит только по трём точкам, то нет возможности оценить погрешность. Ведь две, оцифрованные разными людьми из различных источников поверхности не совпадут с 99,99(9) вероятностью. Второй недостаток. Почему-то эта утилита периодически подвисает. Иногда приходится делать по несколько попыток. Иногда привязывает и подвисает, нужно обрубать через Task Manager. Ещё интерсное наблюдение: вероятность того, что всё пройдёт успешно зависит от того, какую поверхность вы в MapInfo открываете первой. Лучше первой открывать поверхность, на которую происходит наложение, а второй ту, которая накладывается. Почему так- загадка природы. Тут уже методом проб и ошибок.

Affine сложнее в ней для привязки нужно создать две поверхности реперных точек. В исходной системе координат и в новой. Зато считаются погрешности. Работает стабильно, но возни больше.

ArcInfo

Изменение системы координат, команда transform.

По принципу похожа на работу Affine, только вместо поверхностей с точками используются tic-и (специальные точечные объекты, служащие для регистрации поверхностей). Создаётся TIC-поверхность с координатами. Командой Transform происходит преобразование.

Пример:

а) создать поверхность ticcov с введенными значениями tic-ов:create ticcov

б) в arcedit меню edittable задаём координаты

в) трансформируем координаты исходной поверхности в координаты ticcov: transform your_cover ticcov

Главный недостаток в том, что transform работает с Arc-ами, т.е. линейными объектами, а если у вас изначально полигональные объекты, то при конвертации в arc и обратном построении полигонов командой build атрибутика теряется. Приходится выкручиваться. Или потом после создания ручками вбивать id и подключать таблицы или создавать центроиды объектов, привязывать обе поверхности, а дальше уже на своё усмотрение. Или пытаться путём пространственных запросов считать атрибутику центроидов назад в полигоны или так и оставить.

Изменение проекции, команда project.

Изменение проекции можно производить в двух режимах. Через файл проекции или вводом команд.

1) project cover old_cover_name new_cover_name

2) project cover old_cover_name new_cover_name proj_file

ArcGIS

Принцип тот же, что и в ArcInfo. В Coverage Tools project и transform

Через командную строку:

Формат: transform_arc old_cover_name new_cover_name {AFFINE | PROJECTIVE | SIMILARITY}

project есть ещё в Data management tools->Projections and transformations-> Feature

Один из ближайших выпусков посвятим вашим вопросам-ответам. На большинство я уже ответил по e-mail-у. Еще планирую выложить что-нибудь из макросов на MapBasic.

С уважением.

Дмитрий Суворов.

sdm98"собачка"mail.ru

P.S. Я делюсь своим опытом, и мне интересно узнать Ваши замечания и предложения. Возможно эти же задачи Вы решали как-то по-другому. Пишите.

P.P.S. Большое спасибо Катюше Новицкой за замечания и уточнения.


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: industry.comp.gisdiscuss
Архив рассылки
Отписаться Вебом Почтой
Вспомнить пароль

В избранное