ООО "ЛесИС" - ГИС TOPOL-L для лесного хозяйства, лесоустройства и арендаторов лесного фонда
ООО "ЛесИС" - ГИС TOPOL-L для лесного хозяйства, лесоустройства и арендаторов лесного фонда
lesis@ya.ru
+7(916)615-42-77

ФОРУМ ТЕХПОДДЕРЖКИ ГИС TOPOL-L

Объявление

Для участия в работе закрытой, технической части форума нужно быть пользователем ГИС TopoL-L2 (10.0) и Зарегистрироваться!

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » ФОРУМ ТЕХПОДДЕРЖКИ ГИС TOPOL-L » КАРТОГРАФИЯ, ВЕКТОРНАЯ И РАСТРОВАЯ » Трансформирование группы растров по одной точке.


Трансформирование группы растров по одной точке.

Сообщений 1 страница 15 из 15

1

Есть ли возможность сдвинуть группу растров по одной точке оптом?

2

Юрий написал(а):

Есть ли возможность сдвинуть группу растров по одной точке оптом?

Если память не изменяет, то макросы для растров работают только с файлами, имеющими одноименные с растрами trt-файлами. Во всяком случае я помню, что такой возможности не нашел и делал копии нужного trt-файла в trt-файлы с именами идентичными растрам с помощью bat-файла:

Если есть трудности в работе с Bat-файлами тут набросал пример

1. В ТоталКоммандере есть кнопка копирования в буфер пути к файлам - cm_CopyFullNamesToClip
2. Получаем список файлов в нужном каталоге, например:
d:\downloads\вв\f34_35m.tif
d:\downloads\вв\e34_35m.tif
d:\downloads\вв\d34_35m.tif
d:\downloads\вв\b34_35.tif
d:\downloads\вв\a34_35.tif
3. Кидаем список в пустой текстовый файл в этом же каталоге. Сохраняем как, например, aa.bat
4. В текстовом редакторе заменяем массово tif на trt, а мой путь d:\downloads\вв\ на copy 34-35_ish.trt (на конце пробел!)
В результате получаем bat следующего содержания:
copy 34-35_ish.trt a34_35.trt
copy 34-35_ish.trt b34_35.trt
copy 34-35_ish.trt d34_35m.trt
copy 34-35_ish.trt e34_35m.trt
copy 34-35_ish.trt f34_35m.trt
5. Запускаем и получаем все нужные файлы в этом же каталоге:
aa.bat
34-35_ish.trt

a34_35.trt
b34_35.trt
d34_35m.trt
e34_35m.trt
f34_35m.trt

f34_35m.tif
e34_35m.tif
d34_35m.tif
b34_35.tif
a34_35.tif

Но, возможно, что я что то не допонял и сделал лишнюю работу.  :blush: Дмитрия Александровича под рукой не было, а на bat файл я потратил минут 5. Растры, несколько десятков большого размера, трансформировались всю ночь, так что для меня окупилось.

3

Допустим, получу этот *.bat - файл, а дальше? В тополе запускаем макрос для работы с растрами "Геометрические преобразования для групы" -> "Трансформирование растров"?
А они не сядут в одну и туже точку? Если что, мне нужно посаженные планы земель сдвинуть на 2 км.

Отредактировано Юрий (23.01.2018 15:08:44)

4

Юрий написал(а):

А они не сядут в одну и туже точку?

Если у Вас только сдвиг, то не должны, там же будут и исходные и целевые точки, находящиеся  за пределами "неродного" растра в равной степени. Более сложные алгоритмы трансформирования вряд ли применимы, так как даже поворот приведет к взаимному смещению. Как повлияет размер сдвига в 2 километра, учитывая, что земля круглая, а сдвиг идет по плоскости, смещаясь относительно своего положения в зоне,  не решусь предсказывать - таких у меня не было (только 100-200м), а мое пространственное воображение, к сожалению, имеет пределы. )
Но это же легко проверить, запустив трансформацию не сотни, а нескольких снимков в одном ряду, например. И проверить. Это же будут другие растры в другом каталоге, не понравится - удалите. А исходные останутся в изначальном состоянии.

5

Сформировал *.bat - файл и получил *.trt-файлы.
Что дальше?

Отредактировано Юрий (26.01.2018 14:29:40)

6

Юрий написал(а):

Что дальше?

Посмотреть видеоурок по работе с макросами на примере их экспорта и повторить тоже самое, выбрав в качестве операции их трансформирование. Разместите в одном каталоге растры с одноименными trt файлами. Запустите инструмент. Меню выбора массовых операций аналогично основному меню Тополя "Растры". После выбора операции "Трансформирование растров" нужно через меню инструмента макросов Выбрать каталог с растрами. Имеющие trt файлы растры будут черным шрифтом, ошибочные - красным. Перенесете как обычно все растры в правое окошко красными стрелками. Потом указать каталог для результата, при этом данные в исходном каталоге остаются не тронутыми, так что ничем не рискуете. Но все равно желательно потренироваться на 2-3 растрах перед использованием на большом объеме.

7

Попробовал.

Грешнов написал(а):

Имеющие trt файлы растры будут черным шрифтом, ошибочные - красным.

Они у меня все красные. Значит что то сделал не так?
На почту отправлю несколько растров.

8

Скачал последнюю версию программы- результат тот же - не идёт макрос.
Решил проверить по одному растру с использованием подменного файла *.trt - топол после трансформации посадил все растры в одно место, там где и был первоначальный растр.
Видимо предложенный пример не работает.
Что делать? Мне в работу объект отдавать нужно.

9

Юрий написал(а):

Видимо предложенный пример не работает.

Странно. Да, повторил на Ваших образцах, то же самое. Работает как будто с неразмещенными растрами. Я передал данные Д.А. для изучения.

Юрий написал(а):

Что делать?

Начать, видимо, нужно с анализа причины сдвига. Если каким то боком это связано с некорректным использованием систем координат - попробовать массовую трансформацию в другие системы координат. Если исходная СК неизвестна, попытаться создать новую "местную", тут с Д.А. посоветоваться нужно.

10

Грешнов написал(а):

Начать, видимо, нужно с анализа причины сдвига.

Уже нашёл в чём проблема и это не топол. Это "сдвиг" ВИСХАГИ.
В ручную правили координаты - в экселе нашли разницу между исходным и сдвинутым растром и на эту разницу правили значения в *.tfw. Сейчас проверяю что получилось.

11

Юрий написал(а):

Уже нашёл в чём проблема и это не топол. Это "сдвиг" ВИСХАГИ.

Тогда самое простое было бы выяснить в какой СК "источник" делал растры. Если "ВИСХАГИ" то это 100% СК-63, для которой в каждом регионе свои параметры. Нужно найти именно Ваши и массово трансформировать в "другие системы координат".

Юрий написал(а):

В ручную правили координаты - в экселе нашли разницу между исходным и сдвинутым растром и на эту разницу правили значения в *.tfw. Сейчас проверяю что получилось.

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

12

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

Опорные точки при трансформировании блоков - это координаты в метрах на Земле, и исходные, и целевые. Опорные точки при трансформировании растров - это точка в пиксельных координатах растра (его локальных координатах) и соответствующая ей целевая точка в метрах на Земле. Кроме того, у всех Ваших растров размер пиксела немного отличается, поэтому координаты в пиксельной системе у них будут индивидуальные.

Сдвинуть растры проще всего их переразмещением, то есть либо размещением по одной точке, изменив координаты на требуемую величину (нажав "0" - ноль, их можно редактировать в числовом виде, но придется дважды для каждого растра), либо исправив их файлы привязки *.tfw (там надо редактировать координаты в метрах левого верхнего угла растра), либо также ручным вводом координат угла при размещении по точке и ширине (ширина разная, не трогаем).

В макросах для растров в списке есть команда AllocateRas(...), где задаются координаты, видимо, правого верхнего угла растра (СВ), его ширина и название (путь), но список команд придется составлять руками. Простого варианта я не вижу.

Самое простое, наверное, слить растры в один и его подвинуть.

Примечание. В меню есть операция "Растр / Вспомогательные / Сместить растры", но выполнить её не удалось. Её описания я тоже не нашел.

13

Кстати, в меню "Растр / Управление растрами" есть возможность построить древовидную структуру с группами растров разных свойств, которую затем можно включить в дерево и можно управлять визуальными параметрами сразу для целых групп растров. Там, правда, надо наводить порядок в подписями кнопок, они не помещаются в кнопки и, возможно, где-то перепутаны.

14

Дмитрий Александрович написал(а):

То, что предложил Сергей Петрович, прошло бы для векторных блоков, но для растров, думаю, неприменимо.

Да, возможно, я запамятовал, что делал по одному trt все же для вектора.

Дмитрий Александрович написал(а):

Самое простое, наверное, слить растры в один и его подвинуть.

К сожалению, у них не маскированные планшеты и при слиянии они планшетными рамками забьют полезную часть растров.

Дмитрий Александрович написал(а):

либо исправив их файлы привязки *.tfw (там надо редактировать координаты в метрах левого верхнего угла растра)

Из всего опробованного это самый простой ручной путь, особенно если его "автоматизировать" хотя бы через Excel, а еще лучше - через утилитку. Мне все же кажется, что лучше через "липовую" проекцию с нужным сдвигом в 2 км ее параметров. Это же должно сработать!? И ручной работы минимум...

15

Юрий написал(а):

В ручную правили координаты - в экселе нашли разницу между исходным и сдвинутым растром и на эту разницу правили значения в *.tfw. Сейчас проверяю что получилось.

Проверил с соседним районом - сдвинулось всё прекрасно. Вопрос можно считать закрытым.

PS

Было бы неплохо иметь возможность в тополе сдвигать растры по точке оптом.


Вы здесь » ФОРУМ ТЕХПОДДЕРЖКИ ГИС TOPOL-L » КАРТОГРАФИЯ, ВЕКТОРНАЯ И РАСТРОВАЯ » Трансформирование группы растров по одной точке.



Почтовый адрес для ЗАКАЗНЫХ писем:
С.П.Грешнов, +7(916)615-42-77, 108832, А/Я №1
НЕ ИСПОЛЬЗОВАТЬ курьерскую доставку!!!
E-Mail: lesis@ya.ru
Вопросы общего характера:
+7(916)615-42-77
РОССИЙСКАЯ ФЕДЕРАЦИЯ
Общество с ограниченной ответственностью "ЛЕСИС"
ОГРН: 1035007204902, ИНН: 5036046400, КПП: 503601001