Аналитика

Цифровая фотограмметрия, картография и землеустройство
Текущее время: 10 ноя 2024 21:22

Часовой пояс: UTC + 2 часа




Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Универсальный скрипт контроля карт (поиска ошибок)
СообщениеДобавлено: 16 мар 2013 19:55 
Специалист
Специалист

Зарегистрирован:
09 июл 2012 21:08
Сообщения: 36
Дякую!


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Универсальный скрипт контроля карт (поиска ошибок)
СообщениеДобавлено: 18 мар 2013 09:18 
Гуру
Гуру

Зарегистрирован:
06 июл 2009 08:22
Сообщения: 443
Откуда: Старобельск
Очень полезный скрипт. Спасибо большое за проделанную работу.

_________________
П. Вечеров


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Универсальный скрипт контроля карт (поиска ошибок)
СообщениеДобавлено: 26 сен 2013 20:53 
Гуру
Гуру

Зарегистрирован:
06 июн 2010 06:35
Сообщения: 823
Откуда: Ліспроект Володимир Вовчанський
Прохання до розробників, допомогти у вирішенні наступних питань.

1. Не можу підібрати функцію сценарію контролю, що повертала-б помилку при частковому накладанні лінійного об'єкта на межу полігона (треба виловити лінійні об'єкти, дві або більше точки підряд якого, співпадають з двома або більше точками підряд полігонального об'єкта).
Якби функція [Share 2] (выдаст ошибку только в случае двух или более совпадающих точек) контролювала співпадання двох і більше точок підряд, а не двох і більше точок загалом по об'єкту :?:

2. Не вистачає можливості контролювати наявність не примикання об'єктів. Наприклад, той самий струмок, одна з кінцевих точок якого має співпадати з будь-якою точкою іншого об'єкта (струмок, річка, озеро і т.д.). Але ж друга кінцева точка (фактичний початок струмка) може й не примикати до будь-яких інших об'єктів.
Якби мати функцію, подібну [Not Join], яку можна було-б роз'яснити так: помилка виникає тоді, коли жодна з кінцевих точок об'єкта не співпадає з будь-якою точкою іншого об'єкта.

Я дочитувався до кожного слова роз'язнення функцій у файлі Control.doc, але за три дні розбору смислу роз'яснень, так і не знайшов для себе відповіді як вирішити поставлені задачі. Погано, коли немає однозначності у забезпеченні контролю, але до однозначності треба прагнути шляхом розробки функцій, яких не вистачає для контролю.

Може краще писати скрипт такого контролю? Але тоді не вистачає скриптової функції @Map.Object[L].Point[Ln].NodePoints, яка б повертала список: номер об'єкта A точка якого An співпадає з точкою Ln об'єкта L, і номер точки An об'єкта A.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Универсальный скрипт контроля карт (поиска ошибок)
СообщениеДобавлено: 10 май 2016 07:36 
Гуру
Гуру

Зарегистрирован:
06 июн 2010 06:35
Сообщения: 823
Откуда: Ліспроект Володимир Вовчанський
Підкажіть будь-ласка. Чи можливо у сценарії контролю виловити точки полігонів у шарі-1, які не лежать у вузлі з точкою шарів-2,3,...,n?

Простіше так: знайти точки межі ділянки, в яких немає точки суміжника.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Универсальный скрипт контроля карт (поиска ошибок)
СообщениеДобавлено: 10 май 2016 13:34 
Эксперт
Эксперт

Зарегистрирован:
04 ноя 2010 12:28
Сообщения: 77
Откуда: Київ
voha писал(а):
Підкажіть будь-ласка. Чи можливо у сценарії контролю виловити точки полігонів у шарі-1, які не лежать у вузлі з точкою шарів-2,3,...,n?

Простіше так: знайти точки межі ділянки, в яких немає точки суміжника.


Можна зробити так:

Вирізати точки з шарів і перевірити на парність точок. Де кількість точок буде не парна - там і помилка.
Тільки треба заданий шар почерзі перевіряти з шарами 2,3,...,n


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Универсальный скрипт контроля карт (поиска ошибок)
СообщениеДобавлено: 10 май 2016 14:05 
Гуру
Гуру

Зарегистрирован:
18 апр 2007 11:55
Сообщения: 2299
Откуда: Vinnytsia
voha писал(а):
Підкажіть будь-ласка. Чи можливо у сценарії контролю виловити точки полігонів у шарі-1, які не лежать у вузлі з точкою шарів-2,3,...,n?

Простіше так: знайти точки межі ділянки, в яких немає точки суміжника.

Функція @Map.Object[N].Node PointNumber [Layer] повертає номер об'єкта-пікета, на якому розташована точка PointNumber об'єкта N. Необов'язковий параметр Layer задає шар пікетів для пошуку, якщо не задан, то функція шукає в усіх шарах, тип яких пікет або одиночний символ.

На прикладі Ін4-шарів
ID20000 - ділянка
ID50000 - суміжник
ID51000 - тимчасові пікети

Код:
$AM=@ActivateMap
@if $AM=0 then @Break
@Text[1].Clear
@Map.DeselectAll
@Map.Layers.Add 51000 4 Тестові пікети
@Map.Parameters.Add 51001 5 Назва пікета
@Map.Layers.SetValidParameters ID51000 ID51001
@Map.SelectLayer ID50000
@Map.AddNodes ID51000 1
@Map.DeselectAll
@Map.SelectLayer ID20000
$SC=@Map.SelCount
$MC=@Map.Count
$I=0
%LoopObject
$I=$I+1
$Sel=@Map.Object[$I].Selected
@if $Sel=0 then @Goto %NextObject
$PC=@Map.Object[$I].Count
$J=0
%LoopPoint
$J=$J+1
$XYZ=@Map.Object[$I].Point[$J]
$XYZS=%Library.ReplaceComma $XYZ
$XYZS=@DequoteText $XYZS
@if $XYZS=-2684354.56 -2684354.56 0 then @Goto %NextPoint 
$NodeObj=@Map.Object[$I].Node $J ID51000
@if $NodeObj<>0 then @Goto %NextPoint 
@Text[1].Add Об'єкт $I: точка $J не суміщена з суміжником
%NextPoint
@if $J<$PC then @Goto %LoopPoint
%NextObject
@if $I<$MC then @Goto %LoopObject
$TC=@Text[1].Count
;@if $TC=0 then @Break
$S=@Text[1].Text
@Dialog.Message $S

_________________
Команда разработчиков Digitals
(наш e-mail и ICQ находятся в меню Помощь|О программе)
Новичкам сюда | Новые возможности программы | Купить Digitals


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Универсальный скрипт контроля карт (поиска ошибок)
СообщениеДобавлено: 10 май 2016 15:47 
Гуру
Гуру

Зарегистрирован:
06 июн 2010 06:35
Сообщения: 823
Откуда: Ліспроект Володимир Вовчанський
Dmitry_Zolotar писал(а):
...Функція @Map.Object[N].Node PointNumber [Layer] повертає номер об'єкта-пікета, на якому розташована точка PointNumber об'єкта N...
13vp писал(а):
...Вирізати точки з шарів і перевірити на парність точок. Де кількість точок буде не парна - там і помилка.
Тільки треба заданий шар почерзі перевіряти з шарами 2,3,...,n
Дякую.

Два вирішення:
- перебирати в циклі кожну точку кожної межі ділянки, при чому для кожної точки:
1) задавати пошук рядка в текстовому блоці (@Text[N].IndexOf FindStr), який містить координати всіх точок всіх об'єктів суміжників; або
2) знаходити тимчасовий точковий об'єкт (@Map.Object[N].Node PointNumber [Layer]).
Треба пробувати, що працюватиме швидше. Ділянок може бути зо 200-300. Точок ділянок 2-4 тис.

Хотілось, правда, щоб була функція подібна
[Not Share] - Ошибки отсутствия общей границы
"Ошибка возникает в том случае, если объект не имеет совпадающих точек ни с одним объектом из заданного слоя (слоев)", яка звучала б як "Ошибка возникает в том случае, если объект имеет точки несовпадающие ни с одним объектом из заданного слоя (слоев)".


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Универсальный скрипт контроля карт (поиска ошибок)
СообщениеДобавлено: 22 ноя 2018 15:13 
Гуру
Гуру

Зарегистрирован:
06 июн 2010 06:35
Сообщения: 823
Откуда: Ліспроект Володимир Вовчанський
Доброго дня.

Пробував застосовувати функції сценарію контролю, розроблені 22.10.18:

[Overlay] Ошибки наложения полигонов
A,70008:N ; Наложение полигонов %L1 и %L2 (площадь %V кв.м.)

[Gap] Ошибки зазора между полигонами
A,70008:N ; Зазор между полигонами %L1 и %L2 (площадь %V кв.м.)

В функции Gap через пробел можно задать максимальную площадь зазора в кв.м, который считается ошибкой, а в Overlay - минимальную площадь перекрытия, например [Overlay 0.01].

Відтепер легко знайти в карті перекриття полігонів вказаних шарів, а застосувавши функцію [Overlay] без вказування мінімальної площі - знайти усі перекриття :D . Однак, щоб знайти всі зазори між полігонами вказаних шарів, виявляється мало застосувати функцію [Gap], обов'язково вказавши максимальну площу, менше якої зазор буде вважатись помилкою :(

Нижче наведені випадки, коли Gap знаходить:
- "зазор" між двома позначеними полігональними об'єктами, які мають декілька фрагментів спільної межі по лінії (мал.1), хоча є полігон 13 (жовтим кольором);
- "зазор" у межах внутрішнього полігона складного (комплексного) полігонального об'єкта (мал.2), хоча є полігон 13 (жовтим кольором);
- "зазор" між двома позначеними полігональними об'єктами, які мають спільну межу лише в одній-єдиній точці.
Вложение:
Gap.PNG
Gap.PNG [ 374.21 Кб | Просмотров: 22754 ]
Отже, щоб знайти всі зазори між полігональними об'єктами карти треба:
1) запустити функцію [Gap] сценарію контроля;
2) створити точкові об'єкти за координатами з текстового лог-файла;
3) запустити функцію [Not Inside] іншого сценарію контроля, яка запише в лог-файл координати точкових об'єктів, що не знаходяться всередині контура полігональних об'єктів;
4) видалити точкові об'єкти.
В текстовому лог-файлі отримаємо координати центроїдів справжніх зазорів.

В мене питання до розробників: чи не можна в алгоритм роботи функції [Gap] включити таку перевірку (Not Inside) :?: Тоді Gap буде знаходити справжні зазори.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Универсальный скрипт контроля карт (поиска ошибок)
СообщениеДобавлено: 22 ноя 2018 15:17 
Администратор
Администратор

Зарегистрирован:
28 авг 2004 17:19
Сообщения: 1009
voha писал(а):
В мене питання до розробників: чи не можна в алгоритм роботи функції [Gap] включити таку перевірку (Not Inside) :?: Тоді Gap буде знаходити справжні зазори.

Скиньте нам dmf з проблемними полігонами на help@vingeo.com

_________________
Команда разработчиков Digitals
(наш skype, e-mail и телефон находятся в меню Помощь|О программе)
Новичкам сюда | Новые возможности программы | Купить Digitals | Страница в Facebook


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Универсальный скрипт контроля карт (поиска ошибок)
СообщениеДобавлено: 22 ноя 2018 16:27 
Гуру
Гуру

Зарегистрирован:
06 июн 2010 06:35
Сообщения: 823
Откуда: Ліспроект Володимир Вовчанський
Sergey Oleynik писал(а):
voha писал(а):
В мене питання до розробників: чи не можна в алгоритм роботи функції [Gap] включити таку перевірку (Not Inside) :?: Тоді Gap буде знаходити справжні зазори.

Скиньте нам dmf з проблемними полігонами на help@vingeo.com
Скинув карту і сценарій на help@vingeo.com. Тут, мабуть так: якщо для карт землевпорядкування справжній алгоритм принциповий - то нехай так. Просто у лісових картах правила: полігон лісництва повністю заповнений полігонами кварталів, полігони кварталів - полігонами виділів; будь-яка поворотна точка полігона виділу має лежати на поворотній точці іншого полігона виділу або на поворотній точці полігона лісництва.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Универсальный скрипт контроля карт (поиска ошибок)
СообщениеДобавлено: 14 мар 2019 13:27 
Гуру
Гуру

Зарегистрирован:
06 июн 2010 06:35
Сообщения: 823
Откуда: Ліспроект Володимир Вовчанський
Доброго дня, шановні Розробники.

Можна питання?
В збиранні Digitals за 12.02.19 сценарій контролю записує в log-файл рядок:
12 17:7 458 5554087,89 3268896,72 Накладка полігонів

В збиранні Digitals за 14.03.19 той самий сценарій контролю записує в log-файл рядок:
12:0A06ED40 17:7 458:0DD21120 5554087,89 3268896,72 Накладка полігонів

Скрипт запускає сценарій контролю @RunControlScript Filename [/HIDE] і вичитує по рядкам номери об'єктів з log-файла.
Розумію, що 0A06ED4 в десятковому вигляді 10514132, ця інформація може бути корисною?
Тепер парсити рядок log-файла треба ще по символу ":"?

Наперед дякую за відповідь.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Универсальный скрипт контроля карт (поиска ошибок)
СообщениеДобавлено: 15 мар 2019 09:39 
Администратор
Администратор

Зарегистрирован:
28 авг 2004 17:19
Сообщения: 1009
Ці дані потрібні для форми логу, але в файлі вони дійсно зайві.

Прибрали.

_________________
Команда разработчиков Digitals
(наш skype, e-mail и телефон находятся в меню Помощь|О программе)
Новичкам сюда | Новые возможности программы | Купить Digitals | Страница в Facebook


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Универсальный скрипт контроля карт (поиска ошибок)
СообщениеДобавлено: 08 дек 2020 00:01 
Участник
Участник

Зарегистрирован:
07 дек 2020 23:48
Сообщения: 5
Возможно ли в сценарии проводить поиск ошибок параметров.
Например необходимо найти объекты в которых не заполнены определенные параметры (т.е. пустые поля) из списка или справочника. Имеется виду параметр "Стан", который в соответствии с классификатором имеет 17 определенных значений. Возможен ли поиск ошибок если у объекта значение этого параметра не заполнено или отличается от предусмотренного списком/справочником.
Второй вопрос при формировании лог-файла с ошибками, если возможность чтобы в строке с ошибкой указывался IDномер объекта?


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Универсальный скрипт контроля карт (поиска ошибок)
СообщениеДобавлено: 09 дек 2020 17:14 
Гуру
Гуру

Зарегистрирован:
18 апр 2007 11:55
Сообщения: 2299
Откуда: Vinnytsia
mihel0488 писал(а):
Возможно ли в сценарии проводить поиск ошибок параметров.
Например необходимо найти объекты в которых не заполнены определенные параметры (т.е. пустые поля) из списка или справочника. Имеется виду параметр "Стан", который в соответствии с классификатором имеет 17 определенных значений. Возможен ли поиск ошибок если у объекта значение этого параметра не заполнено или отличается от предусмотренного списком/справочником.
Второй вопрос при формировании лог-файла с ошибками, если возможность чтобы в строке с ошибкой указывался IDномер объекта?

Во вложении архив со скриптом контроля, списком значений и примером.


Вложения:
stan.zip [2.05 Кб]
Скачиваний: 647

_________________
Команда разработчиков Digitals
(наш e-mail и ICQ находятся в меню Помощь|О программе)
Новичкам сюда | Новые возможности программы | Купить Digitals
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 2 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 84


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB