![]() |
Уникальность строк в файле на выходе
Имеется большое количество файлов с расширением tab (ГИС MapInfo) следующего вида:
Этот файл необходим, чтобы "посадить" на координатную сетку растровую картинку с именем "1-1.tif", где между строками Type "RASTER" и CoordSys NonEarth Units "m" идут строки, в которых описываются в скобках сначала местные координаты, а затем координаты углов растра в пикселях. Все остальные строки в tab-файле постоянны. Растровые и tab файлы, как правило, именуются следующим образом: То есть, левый верхний угол является началом отсчета, а далее слева-направо сверху-вниз. Но это не предполагает что все файлы существуют. Набора, к примеру, 5-3.tab 5-3.tif, может не быть, а набор 6-3, 5-4 или 6-4 могут существовать. Задача следующая: необходимо из всех tab файлов в папке создать один общий tab с такой же структурой, где координаты углов растра будут пересчитаны в соответствии с их номерами набора. Написать данную часть скрипта не составило особых проблем. В моем исполнении выглядит она так: Проблема заключается в том что соседние tab файлы имеют минимум одну, максимум две общих точки, то есть, при пересчете, в итоге, получается дубликат строки, а необходимо чтобы координаты (как местные, так и углов) были уникальные. На это месте я застрял. А также в конце каждой уникальной строки необходимо дописать Label "Pt N", где N порядковый номер строки (это, в принципе, я и сам сделаю). А еще, может быть, есть более логичное решение этой задачи, я для себя нашел только такое, если Вы найдете другой метод или упростите мой, с радостью его рассмотрю и учту в скрипте. P.S. А еще меня в скрипте смущает то, что я при пересчете использую не переменную, а константу 5920 (координата для дальнего угла по любой из осей), можно ли сделать так чтобы это значение определялось скриптом и при этом не добавился еще один цикл. Так как, пока используется константа - скрипт не универсален для аналогичных задач. |
Время: 19:51. |
Время: 19:51.
© OSzone.net 2001-