Вопросы и ответы по Digitals от опытных пользователей
В первой части рассматриваются самые простые вопросы, обычно возникающие на начальном этапе освоения программы.
Вторая часть (эта) посвящена неочевидным возможностям, хитростям и непонятностям, а также “секретным” функциям Digitals которые по недосмотру разработчиков так и не попали в мануалы.
Это необязательно могут быть ответы на вопросы. Если кто-нибудь из опытных пользователей открыл для себя новую неочевидную возможность, пожалуйста поделитесь этим с другими.
Как связаться с разработчиками или отправить им файл по e-mail?
Все наши реквизиты вы найдете в меню Помощь|О программе Digitals
Ситуация: есть файл с большим колличеством объектов. Нужно заказчику переслать ЧАСТЬ файла. Удаляем лишние объекты, сохраняем - файл остаётся ТАКОГО же размера!
Решение: Открываем этот файл и повторно сохраняем - размер сокращается до реального!
В версии программы с апреля 2009 с целью удаления из файла таких “лишних” объектов добавлена команда меню Карта|Проверка|Очистить удаленные объекты.
Имейте в виду, что это описание применимо только для версии формата без сжатия (в сигнатуре файла нет символа “C”).
Отключить сжатие можно в настройках Ged Сервис|Настройки|Запись.
Ситуация такая - мне нужно написать функцию расширяющую возможности Ged. Можно ли в Ged создавать последовательности команд (кроме тех которые можно задать при создании панели инструментов) с вызовом внешних приложений и установлением связи между ними?
Для создания внешних приложений для Digitals существуют два способа:
Если необходимо лишь обрабатывать данные из Digitals для самостоятального формирования на их основе выходных документов отчетов и пр. то проще всего воспользоваться настраиваемым меню Run.
Создайте (отредактируйте) для этого файл GED.MNU. Все строки из GED.MNU возникнут в меню Run. Например следующая строка: QuickReport QR.exe &SaveSelection,QR.TXT,6
появится в меню под именем QuickReport, при активизации запустит программу QR.exe, предварительно сохранив все помеченные объекты в файл QR.TXT в формате 6 (текстовый файл ASCII).
Второй, более сложный способ, позволяет получать доступ ко всем данным внутри Digitals, в том числе изменять и добавлять объекты, получать и изменять значения параметров, слоев, открывать и закрывать карты и много другое. Для этого внешняя программа должна обращаться к запущенному GED.EXE по протоколу TCP/IP при помощи системы текстовых команд. Более подробно смотрите раздел “Взаимодействие с сервером команд” в оглавлении помощи.
После расширения языка скриптов Digitals, появилась возможность написания довольно сложных скриптов и последовательностей команд средствами инструментальных панелей (Окно|Создать панель инструментов).
Привязку отсканированных карт и планов можно упростить. Вместо того, чтобы указывать все 4 угла рамки карты(плана) в “Опорных точках”, заходим во внешнее ориентирование и нажимаем клавишу F3. В появившемся окне указываем масштаб, ширину, высоту и координаты левого нижнего угла карты.
Если мы имеем дело с непрямоугольной рамкой, необходимо отключить опцию “Прямоугольная”. В этом случае задаем все 4 координаты рамки карты.
При необходимости “сшить” несколько отсканированных карт/планов в один растровый файл используем функции меню Орто. Для этого необходимо, чтобы растры были привязаны (ориентированны).
Итак, для начала необходимо определить общий размер “сшитого” растра. Для этого задайте размер рамки карты. Удобно использовать команду Карта|Помеченные в рамку. Кроме того, чтобы значительно уменьшить количество операций лучше открывать растры командой Вставка/Блок триагуляции. Выбираем тип файлов Image files (*.tif, *.bmp, *.jpg). Помечаем все растры которые требуется “сшить” и Открыть. При этом вставляются границы растров в виде прямоугольников.
Как говорилось выше, задаем рамку карты, задаем масштаб, в котором требуется получить “сшитый” растр и создаем пустую “заготовку” командой Орто|Создать. Указываем имя файла, глубину цвета, разрешение или размер пиксела в метрах. Особое внимание нужно обратить на разрешение - не следует задавать его слишком высоким, так как есть ограничение на размер TIFF файла - 4 Гб.
Теперь переходим к сшивке. Если мы вставляли растры командой Вставка/Блок триагуляции, то включаем Орто/Автозагрузка растров. Выбираем режим Стандартное ортофото. Для того, чтобы растры при сшивке не “налазили” друг на друга, помечаем все вставленные границы растров и используем команду Орто|Выровнять границы, причем рамер перекрытия задаем нуль. Далее если границы растров не помечены - помечаем их и используем Орто|Трансформировать помеченные. Полученный растровый файл является геодезически привязанным в формате GeoTIFF, а кроме того, для него создается так называемый world-файл *.TIFW
Почему при распечатке вектора с растровой подложкой (сканированной картой) вектор и растр смещаются друг относительно друга?
Проблема связана с тем, что сканированный растр не имеет строгой ориентации на север (имеет угол разворота).
При визуализации на экране происходит разворот вектора для его правильного наложения на растр, но при печати на бумаге необходимо сохранить строгую ориентацию на север. Именно из-за того, что вектор печатается с ориентацией на север, а растр “как есть”, возникает смещение.
Эта проблема не затрагивает растров, вставляемых через Вставка|Растровое изображение, а касается только растров, открываемых как подложка через Растр|Открыть.
Для устранения смещения необходимо предварительно выполнить трансформирование растра через пункт меню Орто (команды Вставка|Блок триангуляции и Орто|Трансформировать фрагменты). Детальнее процесс трансформирования описан в предыдущем сообщении и системе контекстной помощи.
В результате ортотрансформирования получится ориентированный на север растр, который будет печататься нормально.
Вставка абрисов объектов в документы Генератора отчетов
Если есть необходимость вставлять определенные изображения в Генераторе отчетов следует использовать функцию LoadFromFile.
Для этого открываем шаблон для редактирования, вставляем рисунок (Левая панель|Вставить рисунок). Не загружаем ни какого файла, а нажимаем кнопку ОК. Вызываем редактор текста (Ctrl+Enter) и в нижней части между begin и end записываем команду LoadFromFile. Далее в круглых скобках задаем имя файла (оно должно быть представлено по правилам систаксиса языка Паскаль как тип string). Например, команда
LoadFromFile(‘D:\Digitals\test.bmp’)
загрузит изображение из файла test.bmp, который находится в папке [i]D:\Digitals[/i]
Имя файла можно брать из параметра, например, команда:
LoadFromFile([P300])
загрузит изображения из файла, заданного параметром с ID равным 300.
Кроме того, в новых версиях Digitals и Генератора отчетов при вызове функции Сервис|Генератор отчетов формируются фрагменты карты, содержащие помеченный(е) объект(ы). Полученные файлы записываются в папку pictures каталога, в котором находится сама программа. Таким образом, если использовать команду
в отчет будет выдаваться фрагмент карты, содержащий текущий объект. Данная команда будет работать корректно для всех типов отчетов (одиночный, пофамильный и групповой).
Для получения данной возможности включите в Сервис>Настройки>Константы ReportPictures=1.
Что это за функции SEL и Parent, которые встречаются в шаблонах?
=Parent[N]
Возвращает значение параметра N из внешнего объекта
(для участков это будет квартал, для угодий - участок, и т.д.)
Часто применяется для создания полного кадастрового номера, включающий номер квартала.
Пример vingeo.com/samples/Parent.dmf
=Neighbors[N]
Возвращает список значений указанного параметра из смежных участков (разделенных запятыми)
Это как бы функция IF, которая берет значение параметра (P[3])
и в зависимости от него возвращает разные значения.
Так если P[3]=1, то вернет “Значение1”, для “3” вернет значения
параметра P[15], и т.д.
В шаблонах документов также можно использовать сумму площадей указанных слоев. Для этого в таблицу необходимо вставить идентификатор площади P[0], а следом (без пробела) в круглых скобках указать ID слоев. Например, если слой Кормовые угодья имеет ID 31, то P0 выдаст сумму всех кормовых угодий внутри участка. Значение -P0 (со знаком минус спереди) выдаст разницу между площадью участка и площадью кормовых угодий.
Расскажите пожалуйста о пирамидах в DIPEdit. Что это такое, зачем, и чем отличаются 1:2, 1:4, 1:8?
Пирамида представляет собой заготовленный набор копий исходного изображения в более низком разрешении.
Например, имеется черно-белое растровое изображение размером 8000 на 8000 пикселей (размер около 64Mb). Допустим, его нужно показать на экране с уменьшением 1:16. И хотя, при этом его размер в пикселях составит всего 500x500 (250Кб), но для расчета такого уменьшенного изображения необходимо целиком просканировать весь исходный файл.
В процессе создания пирамиды все варианты уменьшенныx изображений (зумов) создаются заранее. Пирамиды бывают внешние (в отдельных файлах) и внутренние (добавляются в конец исходного файла). Digitals использует внутренние пирамиды, причем только в формате TIF (Tiled).
Так, в нашем случае к основному изображению 1:1 размером 8000x8000 пикселей будут добавлены:
1:2 4000x4000 (16Mb)
1:4 2000x2000 (4Mb)
1:8 1000x1000 (1Mb)
1:16 500x500 (0.25Mb)
… и т.д.
Как видно, размер каждого следующего зума получается в 4 раза меньше предыдущего и если начинать с 1:2, то размер файла увеличится на одну треть, причем в основном за счет зума 1:2.
Для экономии места на диске пирамиду можно начинать с любого другого зума, например 1:4.
В этом случае программа будет, при необходимости, “на лету” рассчитывать недостающий зум 1:2 из исходного изображения, а все остальные масштабы брать из пирамиды.
Проясните пожалуйста использование функции Полиномиальное ориентирование растра (Сервис-Настройки-Сбор). Как использовать, результативность применения?
При использовании полиномиального метода в расчет координат вводится дополнительная поправка, которая сводит к нулю невязки на опорных точках.
Т.е. если вы например наведетесь на левый нижний угол растра, то координата в нем будет в точности такая, как была задана при ориентировании.
Такой метод есть смысл применять для сильно деформированных планшетов, при этом желательно иметь максимальное количество опорных точек (например, использовать все перекрестия километровой сетки).
Сам процесс ориентирования выполняется как обычно, а полином можно включать и отключать в Ged.exe в Сервис|Настройки|Сбор|Ориентирование растра|Полиномиальное. Кнопку Пересчет нажимать не нужно. Опция вступит в силу после перезапуска программы. Результатом включения полиномиального режима будет точное совмещение опорных точек (углов рамки, перекрестий сетки) с их положением на растре.
Почему штриховая заливка (заданная в Атрибутах заливки в Менеджере слоев) при выводе на принтер/плоттер отображается некорректно (чаще всего заливается черным цветом) или вовсе не отображается?
Многие принтеры/плоттеры некорректно отображают стандартную штриховую заливку Windows. Проблема связана с драйвером самого принтера/плоттера. Кроме того, у этих заливок есть большой недостаток: их размер не привязан к мастшабу.
Чтобы решить эти проблемы необходимо установить “пустую” заливку в Атрибутах заливки для требуемого слоя, а вместо нее использовать условный знак Штриховка абсолютная или Штриховка относительная.
Это масштаб на центральном меридиане зоны, для проекции Гаусса-Крюгера равен 1, для WGS84 (UTM) равен 0.9996.
FE (False East) - добавка к координате на Восток для устранения отрицательной координаты. FN (False North) - то же самое для координаты на Север.
Первые 3 параметра - это смещение начала локальной системы координат относительно WGS84 dX, dY, dZ, в метрах.
Следующие 3 параметра - это углы разворота локальной системы координат относительно WGS84 rX, rY, rZ, в секундах.
7-й параметр - это дифференциальная разность масштабов m, описываемых систем (WGS84 и локальной). В формуле пересчета используется масштаб:
M = 1 + m. Коэффициенты Хельмерта задаются для перехода из локальной в WGS84, для обратного перехода коэффициенты вычисляются программой из указанных кэффициентов.
Как создать описание (датум) для местной системы координат?
Чтобы создать датум для своей местной СК, нужно знать координаты одного или нескольких пунктов в системе СК63 или CK42 и в местной.
Откройте файл Datums.ini из папки \Digitals.
Там в конце будет такое:
В строке TiePoint1 укажите координаты любой точки в СК63, а затем в местной системе. Если точек несколько, то укажите их все, в виде:
TiePoint2=X(CK63) Y(CK63) Z(CK63) X(Местная) Y(Местная) Z(Местная)
TiePoint3=X(CK63) Y(CK63) Z(CK63) X(Местная) Y(Местная) Z(Местная)
…
Обычно задают 3-4 максимально разнесенные точки.
Данный пример написан для СК63(Зона 3). Если в вашей местности зона другая, то измените параметр CurrentZone, например на CurrentZone=4. Указанный номер зоны должен совпадать со старшей цифрой координаты Y у связующих точек.
После редактирования файла Datums.ini перезапустите Digitals чтобы изменения вступили в силу.
Если ваша местная система базируется на СК42, то она создается аналогично, из датума СК42 нужной зоны, с последующим добавлением связующих точек.
Удаление дублирующихся по атрибутам и имени, но отличающихся по ID слоев.
В одной карте имеются слои, с полностью совпадающими атрибутами и именами, но разными ID (которые образовались при копировании объектов из других карт, с отличающимся классификатором). Необходимо их отыскать и слить в один, присвоив правильный ID по-класификатору (этот ID уже имеет один из слоев). важно, чтобы объекты из удаляемых слоев сохранились и были вставлены в объединенный слой. Карт с дублирующиемися слоями более одной.
Решение:
Создаем первую таблицу перекодировки, 1 колонка - ID дублирующихся слоев, которые должны быть удалены, 2 колонка - произвольные ID не встречающиеся в данной карте, и выходящие за диапазон значений ID слоев в карте, с инкрементом 1. (например 1,2,3,4…). Колонки отделяются пробелом файл сохраняем с расширением *.txt.
Создаем вторую таблицу перекодировки, 1 колонка - назначенные слою с инкрементом 1 ID, 2 колонка - правильные ID по-класификатору. Сохраняем файл.
Перекодируем используя 1-ю таблицу, сортируем по ID и видим, что дублирующиеся слои с неверными ID оказались в начале(в конце) списка.
Выполняем команду Правка|Пометить|Слои… и выбираем наши перекодируемые слои.
Копируем выделенные объекты на чистый лист и перекодируем ID слоев, используя 2-ю таблицу перекодировки.
Удаляем дублирующиеся слои из исходной карты, для этого их надо отсортировать по ID, выделить мышкой и выбрать Вырезать из контекстного меню.
Копируем все объекты из новой карты в исходную. Все, проблема решена.
Имейте в виду, что это описание применимо только для версии формата без сжатия (в сигнатуре файла нет символа “C”).
Отключить сжатие можно в настройках Ged Сервис|Настройки|Запись.
К сожалению поддержка режима стерео для игровых видеокарт серии Geforce возможна только для моделей до GeForce 7 включительно.
Поддержка режима стерео в более поздних моделях начиная с GeForce 8 в Delta/Digitals не обеспечивается.
В настоящий момент мы рекомендуем приобретение профессиональных видеокарт на базе nVidia Quadro, обеспечивающих “официальную” поддержку стереорежима. Например Quadro FX 350/Quadro FX 560 и т.д.
Для таких видеокарт не требуется специальный стереодрайвер, а используется стандартный драйвер поставляемый вместе с видеокартой.
Как автоматически вставить текущую дату в форму заполнения In4-дескриптора TD
Для того, чтобы текущая дата автоматически возникала в форме заполнения составных параметров необходимо:
В Менеджере парамеров создать новый параметр с именем =Date
В Менеджере парамеров изменить маску параметра TD или (любого другого) задав в качестве значения нужного поля ссылку на вновь созданный параметр, например 1,10=P[54],>0,>0@Тип документації:26.txt|Дата складання|Назва організації|ПІБ виконавця
(во второе по порядку поле параметра TD засылается значение параметра номер 54)