Есть ли возможность сдвинуть группу растров по одной точке оптом?
Трансформирование группы растров по одной точке.
Сообщений 1 страница 15 из 15
Поделиться223.01.2018 14:27:27
Есть ли возможность сдвинуть группу растров по одной точке оптом?
Если память не изменяет, то макросы для растров работают только с файлами, имеющими одноименные с растрами trt-файлами. Во всяком случае я помню, что такой возможности не нашел и делал копии нужного trt-файла в trt-файлы с именами идентичными растрам с помощью 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
Но, возможно, что я что то не допонял и сделал лишнюю работу. Дмитрия Александровича под рукой не было, а на bat файл я потратил минут 5. Растры, несколько десятков большого размера, трансформировались всю ночь, так что для меня окупилось.
Поделиться323.01.2018 15:07:09
Допустим, получу этот *.bat - файл, а дальше? В тополе запускаем макрос для работы с растрами "Геометрические преобразования для групы" -> "Трансформирование растров"?
А они не сядут в одну и туже точку? Если что, мне нужно посаженные планы земель сдвинуть на 2 км.
Отредактировано Юрий (23.01.2018 15:08:44)
Поделиться423.01.2018 16:24:19
А они не сядут в одну и туже точку?
Если у Вас только сдвиг, то не должны, там же будут и исходные и целевые точки, находящиеся за пределами "неродного" растра в равной степени. Более сложные алгоритмы трансформирования вряд ли применимы, так как даже поворот приведет к взаимному смещению. Как повлияет размер сдвига в 2 километра, учитывая, что земля круглая, а сдвиг идет по плоскости, смещаясь относительно своего положения в зоне, не решусь предсказывать - таких у меня не было (только 100-200м), а мое пространственное воображение, к сожалению, имеет пределы. )
Но это же легко проверить, запустив трансформацию не сотни, а нескольких снимков в одном ряду, например. И проверить. Это же будут другие растры в другом каталоге, не понравится - удалите. А исходные останутся в изначальном состоянии.
Поделиться526.01.2018 14:28:42
Сформировал *.bat - файл и получил *.trt-файлы.
Что дальше?
Отредактировано Юрий (26.01.2018 14:29:40)
Поделиться626.01.2018 17:16:04
Что дальше?
Посмотреть видеоурок по работе с макросами на примере их экспорта и повторить тоже самое, выбрав в качестве операции их трансформирование. Разместите в одном каталоге растры с одноименными trt файлами. Запустите инструмент. Меню выбора массовых операций аналогично основному меню Тополя "Растры". После выбора операции "Трансформирование растров" нужно через меню инструмента макросов Выбрать каталог с растрами. Имеющие trt файлы растры будут черным шрифтом, ошибочные - красным. Перенесете как обычно все растры в правое окошко красными стрелками. Потом указать каталог для результата, при этом данные в исходном каталоге остаются не тронутыми, так что ничем не рискуете. Но все равно желательно потренироваться на 2-3 растрах перед использованием на большом объеме.
Поделиться726.01.2018 19:46:38
Попробовал.
Имеющие trt файлы растры будут черным шрифтом, ошибочные - красным.
Они у меня все красные. Значит что то сделал не так?
На почту отправлю несколько растров.
Поделиться829.01.2018 08:23:48
Скачал последнюю версию программы- результат тот же - не идёт макрос.
Решил проверить по одному растру с использованием подменного файла *.trt - топол после трансформации посадил все растры в одно место, там где и был первоначальный растр.
Видимо предложенный пример не работает.
Что делать? Мне в работу объект отдавать нужно.
Поделиться929.01.2018 10:16:13
Видимо предложенный пример не работает.
Странно. Да, повторил на Ваших образцах, то же самое. Работает как будто с неразмещенными растрами. Я передал данные Д.А. для изучения.
Что делать?
Начать, видимо, нужно с анализа причины сдвига. Если каким то боком это связано с некорректным использованием систем координат - попробовать массовую трансформацию в другие системы координат. Если исходная СК неизвестна, попытаться создать новую "местную", тут с Д.А. посоветоваться нужно.
Поделиться1029.01.2018 11:44:25
Начать, видимо, нужно с анализа причины сдвига.
Уже нашёл в чём проблема и это не топол. Это "сдвиг" ВИСХАГИ.
В ручную правили координаты - в экселе нашли разницу между исходным и сдвинутым растром и на эту разницу правили значения в *.tfw. Сейчас проверяю что получилось.
Поделиться1129.01.2018 12:32:20
Уже нашёл в чём проблема и это не топол. Это "сдвиг" ВИСХАГИ.
Тогда самое простое было бы выяснить в какой СК "источник" делал растры. Если "ВИСХАГИ" то это 100% СК-63, для которой в каждом регионе свои параметры. Нужно найти именно Ваши и массово трансформировать в "другие системы координат".
В ручную правили координаты - в экселе нашли разницу между исходным и сдвинутым растром и на эту разницу правили значения в *.tfw. Сейчас проверяю что получилось.
Это сработает, но это ведь тоже ручная работа с массой файлов. Тогда уж попросите своих программистов, чтобы сделали Вам утилитку по простейшему алгоритму: - открыть файл - считать как число символы с такой то по такую то позицию - прибавить значение - записать в ту же позицию.
Поделиться1229.01.2018 13:18:08
То, что предложил Сергей Петрович, прошло бы для векторных блоков, но для растров, думаю, неприменимо. Постараюсь объяснить, в чем разница.
Опорные точки при трансформировании блоков - это координаты в метрах на Земле, и исходные, и целевые. Опорные точки при трансформировании растров - это точка в пиксельных координатах растра (его локальных координатах) и соответствующая ей целевая точка в метрах на Земле. Кроме того, у всех Ваших растров размер пиксела немного отличается, поэтому координаты в пиксельной системе у них будут индивидуальные.
Сдвинуть растры проще всего их переразмещением, то есть либо размещением по одной точке, изменив координаты на требуемую величину (нажав "0" - ноль, их можно редактировать в числовом виде, но придется дважды для каждого растра), либо исправив их файлы привязки *.tfw (там надо редактировать координаты в метрах левого верхнего угла растра), либо также ручным вводом координат угла при размещении по точке и ширине (ширина разная, не трогаем).
В макросах для растров в списке есть команда AllocateRas(...), где задаются координаты, видимо, правого верхнего угла растра (СВ), его ширина и название (путь), но список команд придется составлять руками. Простого варианта я не вижу.
Самое простое, наверное, слить растры в один и его подвинуть.
Примечание. В меню есть операция "Растр / Вспомогательные / Сместить растры", но выполнить её не удалось. Её описания я тоже не нашел.
Поделиться1329.01.2018 14:15:14
Кстати, в меню "Растр / Управление растрами" есть возможность построить древовидную структуру с группами растров разных свойств, которую затем можно включить в дерево и можно управлять визуальными параметрами сразу для целых групп растров. Там, правда, надо наводить порядок в подписями кнопок, они не помещаются в кнопки и, возможно, где-то перепутаны.
Поделиться1429.01.2018 14:21:18
То, что предложил Сергей Петрович, прошло бы для векторных блоков, но для растров, думаю, неприменимо.
Да, возможно, я запамятовал, что делал по одному trt все же для вектора.
Самое простое, наверное, слить растры в один и его подвинуть.
К сожалению, у них не маскированные планшеты и при слиянии они планшетными рамками забьют полезную часть растров.
либо исправив их файлы привязки *.tfw (там надо редактировать координаты в метрах левого верхнего угла растра)
Из всего опробованного это самый простой ручной путь, особенно если его "автоматизировать" хотя бы через Excel, а еще лучше - через утилитку. Мне все же кажется, что лучше через "липовую" проекцию с нужным сдвигом в 2 км ее параметров. Это же должно сработать!? И ручной работы минимум...
Поделиться1529.01.2018 15:24:14
В ручную правили координаты - в экселе нашли разницу между исходным и сдвинутым растром и на эту разницу правили значения в *.tfw. Сейчас проверяю что получилось.
Проверил с соседним районом - сдвинулось всё прекрасно. Вопрос можно считать закрытым.
Было бы неплохо иметь возможность в тополе сдвигать растры по точке оптом.