Программа Пересчет

Программа Пересчет

 

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

Параметры пересчета задаются ключом, заданном в виде параметрического уравнения

u=x0+a1·x+b1·y

v=y0+a2·x+b2·y

где a1, a2, b1, b2 задаются явно, либо через угол разворота проекций a:

a1=cos(a), b1=-sin(a), a2=-sin (a), b2=cos(a).

Программа может пересчитать как список координат, так и графические объекты таблицы.

При запуске программы (файл Пересчет.mbx) в главном меню программы MapInfo возникает новый пункт меню - Пересчет.

В пунктах Таблица исходных пунктов и Таблица координированных точек осуществляется ввод, редактирование координат.

Пересчет координат осуществляется в пунктах меню Пересчет координат, Пересчет координат по ключу, Пересчет МСК21.

В пункте меню Пересчет координат по ключу осуществляется пересчет списка координат (подпункт Пересчет списка координат) или координат объектов графической таблицы (подпункт Пересчет объектов таблицы) по заданному ключу.


При выборе подпункта Пересчет списка координат пункта меню Пересчет координат по ключу возникает диалоговое окно "Выбор ввода ключа". В этом диалоге указываем как будем вводить ключ: набирать его вручную или взять из специально подготовленного текстового файла. При выборе ввода ключа из текстового файла указываем расположение файла ключа. Следующим возникает диалоговое окно "Ввод ключа перехода из с.к. x0y в u0v". Если мы выбирали радио-кнопку "Из текстового файла" то поля ключа перехода будут заполнены, в противном случае необходимо ввести значения ключа.

Следующим шагом выбираем тип пересчитываемого фала: таблица MapInfo или текстовый файл. Формат как таблицы MapInfo так и текстового файла должен быть жестко задан (см.Приложение).

Далее указываем расположение таблицы MapInfo или текстового файла. Если был выбран пункт "Из таблицы" то в выбранной таблице в колонках U и V будут присвоены новые (пересчитанные) координаты. В случае если был выбран тип ­ текстовый файл, то в результате работы программы будет создан новый текстовый файл с именем пересчитываемого файла с добавлением "_out".

При выборе подпункта Пересчет объектов таблицы пункта меню Пересчет координат по ключу возникает диалоговое окно "Выбор ввода ключа". В этом диалоге указываем как будем вводить ключ: набирать его вручную или взять из специально подготовленного текстового файла. При выборе ввода ключа из текстового файла указываем расположение файла ключа. Следующим возникает диалоговое окно "Ввод ключа перехода из с.к. x0y в u0v" (см. рис. выше). Если мы выбирали радио-кнопку "Из текстового файла" то поля ключа перехода будут заполнены, в противном случае необходимо ввести значения ключа. (Все это аналогично подпункту Пересчет списка координат.)

Следующим шагом указываем расположение пересчитываемой таблицы.

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


Указываем название и расположение новой таблицы, в которой все площадные, линейные и точечные объекты будут иметь пересчитанные координаты. Семантика объектов (поля таблицы) останутся без изменений. Текстовые объекты будут иметь размер 1 pt. Их размер надо будет явно задать в окне карты.

 

В пункте меню Пересчет растров по ключу осуществляется пересчет  зарегистрированных растров согласно введенному ключу пересчета. Параметры ключа вводятся аналогично пересчету в пункте меню Пересчет координат по ключу. Пересчитываемые растры задаются текстовым файлом (по молчанию _list_tab.dir). Этот файл представляет собой список имен растров, необходимых пересчитать. Строится этот список с помощью bat-файла _list_tab.bat. Если у вас нет его на диске, вы можете создать его сами. Он содержит всего одну строку - dir *.tab /b /on >_list_tab.dir.

 

В пункте меню Пересчет МСК21 осуществляется пересчет из Чувашской СК в МСК21 и обратно. Пересчитываются как текстовый файл (формат csv) (пункт меню Пересчитать CSV-файл), так и таблица MapInfo (пункт меню Пересчитать таблицу MapInfo).

 

Порядок пересчета с помощью сторонней программы (к примеру GeoCalc).

Работа разбивается в 2 этапа.

1. Готовим таблицу для пересчета.

Для этого через пункт меню Пересчет через GeoCalc, подпункт Выбрать таблицу для сохранения делаем копию таблицы в текстовый файл perechet.txt и perechet.pts. В первом файле храниться структура таблица, все атрибуты и семантика, во втором – координаты. Файл координат пересчитываем в специальной программе (к примеру - GeoCalc). Получаем файл координат новой системе координат.

2. Строим новую таблицу (пункт меню Построить таблицу по координатам) взяв за координаты новый пересчитанный файл. Проекцию задаем – СК-63. Переименовываем полученную таблицу perechet.

 

Приложения

1. Формат текстовой таблицы MapInfo

(Номер char (12), Код char(10), X decimal(12,3), Y decimal(12,3), H decimal(12,3), Примечание char(30), U decimal(12,3), V decimal(12,3))

Обязательные поля: Номер, X, Y, U, V.

2. Формат пересчитываемого текстового файла (.txt)

Номер X Y

 

Пример исходного текстового файла:

5173 -528.162 -5249.675

6809 194.807 1032.332

1 6635.041 -33126.480

2 6633.707 -33121.158

3 6630.399 -33121.987

 

3. Формат пересчитываемого текстового файла (.csv)

Номер;X;Y

 

Пример исходного CSV файла:

5173;-528.162;-5249.675

6809;194.807;1032.332

1;6635.041;-33126.480

2;6633.707;-33121.158

3;6630.399;-33121.987

 

4. Формат файла ключа

Файл ключа представляет собой текстовый файл с расширением key. Формат записи – все числа записываются в одну строку, разделитель дробной части числа точка, а разделитель между числами – запятая.

Пример файла ключа для пересчета координат из местной с.к. в  с.к. 1963 года:

6220157.121,3183408.172,0.99992032,-0.01556127,0.01556127,0.99992032

 

Пример файла ключа для пересчета координат из с.к. 1963 года в местную:

-6268680.296,-3086105.462,0.99983753,0.01555998,-0.01555998,0.99983753

 

5. Проекции таблиц

Чувашская СК

x: 6000000-6500000

y: 0-500000

 

 

 

СК-63

x: 1000000-10000000

y: 1000000-10000000

 

МСК-21

x: 0-500000

y: 1000000-1500000