Репроекция растров.mbx

(C)Дмитрий Мазуров, 2006


				Введение.

	Данная программа позволяет производить некоторые манипуляции с растровыми таблицами. В большинстве своем эти манипуляции можно произвести с помощью встроенных функций МапИнфо. Разница в том, что программа может обработать сразу множество таблиц.
	В основном, программа служит для изменения проекции (координатной системы) растровых таблиц. Изначально проекция растровой таблицы задается при регистрации(привязке) растра в MapInfo. Проекция растровой таблицы и остальные параметры привязки хранятся в текстовом виде в файле с расширением tab. Программа меняет проекцию растровых таблиц, внося изменения в их tab-файлы. Сами растры программой не изменяются. Перед изменением содержимого tab-файла программа создает его резервную копию в специальной подпапке папки расположения tab-файла. Предусмотрено формальное изменение указания проекции без стандартного пересчета координат точек привязки. Такое преобразование необходимо, например, для перевода из проекции в план-схему и обратно. Также предусмотрен координатный сдвиг (его можно задавать только при репроекции без стандартного пересчета координат).
	
	Кроме того, в программе есть несколько дополнительных функций. Она умеет:

1. Менять расширение растрового файла, указанное в tab-файле таблицы (при этом расширение растрового файла на диске не меняется!). Иногда требуется поменять формат растров. Различные программы, например, Adobe Photoshop, позволяют сделать это сразу с множеством растров. После такой конвертации можно (и нужно) воспользоваться данной функцией, чтобы привести tab-файлы в соответствие с новым расширением растровых файлов.

2. Задавать параметры подстройки изображения (аналогично диалогу Таблица/Растр/Подстройка изображения).

3. Создавать проект программы Mozaic (mzp-файл) для ориентирования, сшивки, обрезки и перекройки растров.

				Порядок работы.

	Запуск mbx добавляет в стандартное меню "Программы" пункт "Репроекция растров...", открывающий главный диалог. Обращаю ваше внимание на то, что НЕ требуется открывать растровые таблицы в MapInfo для того, чтобы программа могла с ними работать.


			Главный диалог.

	Вверху вы	можете видеть список tab-файлов, подлежащих изменению. Под списком пишется название проекции растровой таблицы, выбранной в данный момент в списке, а также расширение соответствующего файла изображения. Чуть ниже располагаются кнопки:

"Добавить tab-файл..." - позволяет добавить в список 1 файл.

"Добавить все tab-файлы из папки..." - позволяет добавить в список все tab-файлы растровых таблиц в указанной папке, включая или не включая подпапки.

"Убрать" - убирает из списка выбранные в данный момент строки.

"Очистить список" - убирает все строки из списка.

	Далее идет группа элементов управления "Новая проекция". Поле ввода здесь должно содержать предложение CoordSys новой проекции. Кнопка "...", как обычно, служит для указания проекции с помощью стадартного диалога выбора проекции. Кнопка "Та же!" (слева от поля ввода) позволяет задать в качестве новой проекции проекцию растровой таблицы выбранной в данный момент в списке. Эта кнопка может быть полезна, если нужен только координатный сдвиг. Под полем ввода пишется название новой проекции. Если вы изменили содержимое поля ввода вручную, нажмите кнопку "<-обновить", чтобы обновить название проекции.

	Внизу диалога располагается ключевая галка "Не выполнять стандартный пересчет координат привязки" - если галочка не установлена, то репроекция будет производиться стандартным способом. С тем же успехом вы могли бы вызвать стандартный диалог "Таблица/Растр/Регистрация изображения" и нажав кнопку "Проекция" выбрать новую проекцию. При этом координаты точек привязки изменятся так, чтобы их географическое расположение сохранилось. Если же галочка установлена, то изменится только указание проекции, значения координаты точек привязки останутся прежними. Этот режим следует использовать при репроекци из/в план-схему. Впрочем, программа не позволит вам репроекцию из/в план схему с пересчетом координат. Если вы не понимаете действия этой галочки, просто не включайте ее.

"Координатный сдвиг" - если выбрана репроекция без пересчета координат, то вы можете задать сдвиг, т.е. величины, которые будут добавляться к координатам X и Y точек привязки.

"Новое расширение растров", подстройка изображения - см. введение.

"Создать проект программы Mozaic для сшивки растров" - эта группа элементов управления служит для включения и настройки режима создания проекта Mozaic (mzp-файла). Этот режим позволяет избежать некоторые ограничения и неудобства, связанные с использованием самой программы Mozaic для создания проекта. После использования данного режима программы "Репроекция таблиц" вам останется только отдать команду программе Mozaic на создание мозаики растров, указать созданный "Репроекцией" mzp-файл и ей же созданный пустой tab-файл для сохранения результата (т.е. мозаики). Подробно процесс создания мозаики с помощью "Репроекции растров" и Mozaic-а описан чуть ниже.

Параметры главного диалога сохраняются только до перезапуска программы или MapInfo.


		Создание мозаики растров с помощью "Репроекции растров" и Mozaic-а.

Предположим что у нас есть множество растровых таблиц, которые нужно сориентировать по координатной сетке проекции, в которой они зарегистрированы, и/или обрезать и/или склеить или перекроить по новым границам листов. Следуем алгоритму:

1. Установка Mozaic.
Если у вас еще не установлена программа Mozaic, устанавливаем ее. Установить ее можно из дистрибутива MapInfo версии не новее 7.8, папка RUSUTILS. После установки добавляем в каталог программ mozaic.MBX (путь примерно такой: c:\program files\mapinfo\professional\Mozaic\mozaic.MBX). Можно просто взять и скопировать откуда-нибудь папку с этой программой, она работает и без установки.

2. Подготовка растровых таблиц.
Если предполагается перекрой растров, нужно поместить все растры на данный объект в одну папку (не в подпапки!). Для прочих операций это не обязательно.
Перед склейкой или перекроем растров необходимо привести все исходные растровые таблицы к целевой проекции с помощью все той же "Репроекции растров" (растровые изображения при этом не будут затронуты). 

3. Конвертация растров.
Программа Mozaic не работает со всеми форматами изображений, поэтому, возможно, придется сконвертировать их в другой формат.
1-битные (т.е. 2-х цветные) изображения можно конвертировать в tif со сжатием CCITT Group 4 с помощью ACDSee, а можно в 8-битные (256-цветные) bmp-шки без сжатия с помощью Photoshop.
4-битные (16-цветные) - тоже в 8-битные bmp-шки.
Все прочие - просто в bmp без сжатия.
После конвертации выставляем в tab-файлах новое расширение файлов изображений с помощью специальной функции программы "Репроекция растров"

ВНИМАНИЕ! Если неточно следовать данной инструкции, возможен вылет во время последующей работы программы Mozaic по созданию мозаики. Также возможна инверсия полученного в результате изображения или его фона.

4. Настройка режима "Создание проекта Mozaic".
В главном диалоге "Репроекции растров" включаем галку "Создание проекта Mozaic". Нажмиие кнопку "..." напротив галки "Создание проекта Mozaic", появится диалог "Создание проекта Mozaic. Параметры". В этом диалоге выбираем папку исходных растров. В процессе работы программа "Репроекция" создаст в этой папке подпапку Mozaic (если ее нет). Предполагается, что в этой подпапке будут сохраняться результаты работы программы Mozaic, т.е. уже обработанные растры. Не нужно убирать или конвертировать их до того, как будут обработаны все растры во входной папке.
	Дальнейшие настройки также зависят от задачи по преобразованию растров. 

а) Только ориентирование растра.
В диалоге параметров режима все галочки отключаем.

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

в) Перекрой растров.
Перекрой растров подразумевает объединение нескольких смежных растров и обрезка полученного изображения по границам нового листа. Для перекроя потребуется таблица с границами всех новых листов, оформленными площадными объектами. В одной из колонок этой таблицы должны быть указаны имена (номенклатура) листов. 
В диалоге параметров режима включаем галку "Перекроить растры по новым границам листов", указываем расположение таблицы границ листов и колонку имени листа. Также следует указать здесь размер запаса в пикселах растра (рекомендуемое значение 2, можно выставлять 0 и дробные числа). Дело в том, что при разрезке растра на листы программой Mozaic, между листами, как правило, получаются щели в 1-2 пиксела. Во избежание этого в "Репроекции растров" и введен параметр "нахлест". Значение этого параметра таково: при определении области обрезки растра, границы, указанные в таблице границ листов, расширяются на эту величину (в пикселах растра) со всех сторон. В итоге листы будут немного выходить за пределы назначенных границ, но зато не будет щелей между листами.

г) Перекройка растров с обрезкой зарамочного оформления.
Поступаем как в пункте в), но включаем также галочку "Обрезать растры областью с углами в точках привязки".

д) Склейка растров
В диалоге параметров режима все галочки отключаем.

е) Склейка растров с обрезкой зарамочного оформления.
Поступаем как в пункте в), но включаем также галочку "Обрезать растры областью с углами в точках привязки".

5. Выбор таблиц для обработки.
Для всех задач, кроме тотальной склейки растров, рекомендуется использовать кнопку автовыбора очередного листа (в левом нижнем углу). По нажатию на эту кнопку программа автоматически определяет, какой растр (лист) еще не обработан (его название появляется на кнопке), определяет какие таблицы должны участвовать в создании мозаики и заносит их в список обрабатываемых растровых таблиц. В случае склейки растров нужно самим добавить все склеиваемые растры в список.

6. Запуск "Репроекции растров".
По нажатию кнопки ОК в главном диалоге программа проверяет заданные параметры и если все верно, запускается процесс создания проекта Mozaic. В подпапке Mozaic входной папки создается файл Мозаика.mzp, а также пустой tab-файл, имя которого соответствует имени обрабатываемого растра или листа, если происходит перекрой растров. Для контроля имя этого tab-файла будет выведено в окне сообщений. Затем открываются все обрабатываемые растры (это необходимо для успешной работы Mozaic).

7. Запуск Mozaic.
Нажимаем кнопку "Построить мозаику"(с бегущим человечком) на панели Мозаика, указываем вышеупомянутый файл Мозаика.mzp, а затем указываем в качестве tab-файла результата tab-файл, только что созданный для вас "Репроекцией таблиц" (его название будет в окне сообщений). Обратите внимание на то, что если вы всегда обрабатывали растры по порядку (т.е. с использованием кнопки автовыбора листа), нужный tab-файл будет последним в папке. После этого на вопрос "Выполнить преобразование?" отвечаем ОК и ждем пока пройдет процесс построения мозаики. По окончании процесса будет создан зарегистрированный tif-файл с мозаикой (указанный вами tab-файл будет перезаписан).

8. Если производится склейка растров, то переходим к пункту 9. В противном случае повторяем пункты 5-7 пока при нажатии кнопки автовыбора программа не сообщит, что обработаны все растры (листы).  Чтобы переделать растр (лист), созданный Mozaic-ом, нужно удалить его tif из папки Mozaic и повторить пункты 5-7. Обратите внимание, что на панели Mozaic появилась кнопка "Р", она служит для быстрого вызова "Репроекции растров"

9. Конвертация растров для дальнейшего хранения и использования.
Черно-белые (монохромные) растры лучше хранить в tif со сжатием CCITT Group 4 (формат поддерживается AcdSee).
Серые растры лучше хранить в jpg progressive с максимальным сжатием (не используйте для конвертации AcdSee, Photoshop подойдет).
	После конвертации выставляем в tab-файлах новое расширение файлов изображений с помощью специальной функции программы "Репроекция растров"

10. Подстройка изображения.
Используя спец.функцию программы "Репроекция растров", задаем нужные параметры отображения растров, например, назначаем белый цвет прозрачным. При склейке растров это делать необязательно