Автор |
Сообщение |
|
Дата: 25 Авг 2010 15:02:06
#
Доброго всем времени суток.
Вот, вызрел вопрос. Пеленгация, хоть и оптическая, но темы родственные
Имеется перескопическая артиллерийская буссоль, используемая по своему прямому назначению - определению дирекционных углов. Бусоль установлена в хорошей (в смысле обзора местности) точке.
Допустим, где-то на горизонте появляется, к примеру, зарево или столб дыма. Бусслью определяется дирекционник на дым, а потом с использованием линейки, карандаша и транспортира угол переносится на бумажную карту с целью определения (весьма приблизительно) места пожара. Правильнее, разумеется, использовать как минимум две точки, но пока имеем то, что имеем.
Необходим софт, который-бы избавил от построений на бумажной карте с использованием чертёжных инструментов, а за одно позволял-бы вести быстрый пересчёт из тысячных в градусы и минуты, а так-же сохранять значения ранее вводившихся азимутов. Т.е. программа должна являть собой электронный аналог штабного планшета оперативной обстановки (вертикального,прозрачного). Кто чего посоветует?
Буду очень признателен.
|
|
Дата: 25 Авг 2010 15:37:31
#
В бедные и паскудные 90-е годы пытались как-то решить нечто подобное (но для радиодел).
Один из самых детских вариантов типичная программ Эксель или Аксес где макросами прописываете теорему Пифагора и формулу перерасчета тысячных (дуй-в-тыщщу).
Для вашей "оптики" может есть смысл посмотреть учебники типа военной топографии и войсковой разведки где грубо можно найти данные типа высота типичного дерева, столба, башни, дыма от разрыва снаряда (может пожара). Получите грубо еще один угол и плюс-минус два лаптя - дальность.
|
Реклама Google
|
|
|
Дата: 25 Авг 2010 16:27:50 · Поправил: Programmist (25 Авг 2010 16:37:50)
#
Сначала нужно перевести бумажную карту в электронный вид. Важный параметр - необходимое разрешение карты.
Потом надо наложить координатную сетку и можно отмечать точки в простейшем редакторе (Paint), потом сохранять как отдельный файл, где дата и время = имя файла.
Если нужна высокая точность, нужно искать векторную карту.
|
|
Дата: 25 Авг 2010 19:11:39
#
Делал скан карты, и в Автокаде строил луч из центра системы кординат под определённым углом. Не ахти, скажу: долго. Да и не привяжешся по скану, тяжело совместить сетку карты с нулём отсчётной шкалы, а на местности это километры ошибки. Должны-же быть какие-то проги именно под такую задачу!
|
|
Дата: 26 Авг 2010 07:43:16 · Поправил: Programmist (26 Авг 2010 12:19:45)
#
Emil
Вот тут сегодня набросал программку: http://www.radioscanner.ru/files/construction/file10842/
Размер карты 800х800 точек, формат bmp. Буссоль точно по центру. Разрешение: плюс-минус два лаптя (радиус ~3км.).
Может на что и сгодится :)
Если будет время, смогу подправить (добавить знаков после запятой, сколько?).
1. Нужна исходная карта с точным масштабом и меткой центра.
2. Сколько км. максимальный радиус действия?
3. Какое разрешение рабочего экрана?
P.S. В принципе, уже работает с картой 5000x5000 (можно наносить множество меток с координатами). |
|
Дата: 26 Авг 2010 23:42:23
#
Огромное спасибо!!! За реальную помощь и неравнодушие! Респект!
|
|
Дата: 27 Авг 2010 00:17:16
#
Вообще-то все проще: простейшие координаты можно получить азимутально (угол от магнитного севера, что и есть азимут), у ПАБ-2 есть собственно сама буссоль - то есть встроенный точный компас. Вообще, если правильней - ПАБ-2 не есть буссоль, это простейший теодолит с самой буссолью.
Определять приблизительные расстояния можно благодаря сетке нитей, встроенной в оптику ПАБ-2. "Плясать" можно от заранее измеренного по высоте предмета (столб, вышка, дом и тп). Высоту предмета можно определить простейшим эклиметром (по сути, транспортир с ниткой и грузиком).
Для удобства карта долбжна быть ориентирована по северу, если она находится тут же, у прибора.
|
|
Дата: 27 Авг 2010 02:54:13 · Поправил: Programmist (27 Авг 2010 20:42:52)
#
Emil
Обновление: http://www.radioscanner.ru/files/construction/file10842/
Для работы лучше всего использовать две карты:
1. Маленькая и быстрая (800x800x16bit 1,2Mb 65535 цветов ).
2. Большая оригинал (5000x5000x8bit 24Mb 256 цветов).
Основная работа будет производится на карте стандартного (800x800) разрешения.
Детальная прорисовка делается после загрузки карты большого размера, по сохраненным ранее координатам.
*Размеры карт требуют уточнения. Пока опции масштабирования нет.
Техноген
Дополнительно коррекцию ориентации и шкалу (единицы изм.) дистанции сделаю в следующей версии.
До 1,5 км. можно применить лазерный дальномер. Точность комплекса будет достаточно высокой.
Очень много зависит от масштаба и разрешения карты. Даже при размере 8000x8000 тысячные доли градуса прорисовываются не полностью.
P.S. Версию 1.0.4 адаптировал под радиус 40 км. Угадал? |
|
Дата: 28 Авг 2010 14:50:16
#
Обновление: http://www.radioscanner.ru/files/construction/file10842/
Возможность смещения центра для пеленгации из нескольких пунктов.
Размер карты 80x80 километров (фиксировано).
Размер рисунка 800x800 или 4000x4000 точек (5x увеличение).
Точность позиционирования на большой карте 20 метров и 100 метров на маленькой.
Система координат работает одинаково на рисунках всех размеров.
Карта, представленная для примера не является точной. |
|
Дата: 28 Авг 2010 19:32:45
#
Programmist
Интересная и полезная программка, но у меня, почему-то, при обращении к координатам, выдает ошибку:
Исправить в настройках Windows XP не получается... |
|
Дата: 28 Авг 2010 19:59:21
#
cryptomaster Типовая проблема с разделителями в флоат, имхо. Не должен юзер ничего у себя менять в этом плане, это не есть гуд. Это должен подшаманить Programmist.
|
|
Дата: 28 Авг 2010 20:09:00
#
Mesh
Спасибо за консультацию, буду ждать ответа от Programmist.
|
|
Дата: 28 Авг 2010 20:22:04 · Поправил: Programmist (28 Авг 2010 20:58:36)
#
cryptomaster
Проверил еще раз, у меня вроде все нормально, файлы от старых версий программы не совместимы с новыми, формат записи данных изменился. Возможно, Вы пытались открыть файл координат от версии 1.0.5 версией 1.0.0. Спасибо за инфромацию!
Сейчас последнее обновление 1.0.6 загрузил.
Пока не ясен нужный размер карты все расстояния можно делить на 10,100,1000 (m/1000 будет в сантиметрах). Умножать тоже можно.
|
|
Дата: 28 Авг 2010 21:02:57
#
Programmist
К сожалению, справится с ошибкой не получается... На сколько я понимаю, это что-то связано с числовыми операциями с плавающей запятой. Как программист, может подскажите в чем может быть причина?
С уважением, cryptomaster.
|
|
Дата: 28 Авг 2010 21:11:10
#
cryptomaster
Сейчас буду проверять на других машинах. У меня только XP и Server2003. Может быть дело в версии Windows.
|
|
Дата: 28 Авг 2010 21:16:54 · Поправил: Mesh (28 Авг 2010 21:18:20)
#
Programmist Э-э погодите зачем проверять на других машинах? Поменяйте у себя ж в дате или в файле откуда дату прогоа берёт, например 12,3456 на 12.3456 и проверте. Проблема имхо в этом и версия винды не причём. Это типовой косяк. Когда пишут прогу и забывают, что у флоат может быть разный разделитель. Может конечно чего и другое тут, но окно какое у cryptomaster показано это типовое окно когда разделитель в проге один, а в винде другой. Прога должна работать и с точкой и с запятой.
|
|
Дата: 28 Авг 2010 21:42:46 · Поправил: Programmist (28 Авг 2010 21:48:38)
#
Mesh
Все перекрутил, ничего не помогает - везде работает, странно. А прога датой пока не пользуется. Нет возможности проверить на V7 и Vista, может из-за этого. Очень важный момент.
Интересно кто-нибудь еще проверял?
cryptomaster
А если новую карту создать и координаты занести будет ошибка? Пока пробую вернуть функцию из первой версии.
|
|
Дата: 28 Авг 2010 21:48:31
#
Programmist Гм, если прога датой не пользуются значит есть окошки куда юзер чего-то вписывает, а прога читает, или сама чего вписывает, а потом читает. Нужно просто в этих окошках ввести с одним и другим разделителем и посмотреть. Да нет других причин выскочить такому окну. Оно или когда вобще вместо циферок там пурга какая на вроде текста, или когда всё правильно а разделитель другой.
|
|
Дата: 28 Авг 2010 21:55:43
#
Mesh Да там юзер ничего не вводит, всего-то один тип double. Записывается как строка, читается с разбивкой по точке на два integer. Все машина делает.
|
|
Дата: 28 Авг 2010 22:01:54
#
Programmist В общем, имхо, проблема с разделителем. Как юзер вводит этот тип double? Руками?
|
|
Дата: 28 Авг 2010 22:05:43 · Поправил: Programmist (28 Авг 2010 22:09:52)
#
Mesh
Нет, конечно, не руками. Это значение угла - с движков берется. Там юзер вообще ничего не вводит, только ручки крутит. Сам не могу понять. У меня на 3х машинах уже проверено.
|
|
Дата: 28 Авг 2010 22:10:56
#
Programmist
Загрузил свою карту - все пошло. Но, самое интересное - перешел на прилагаемую карту (Москвы) и то же все наладилось...
Небольшое замечание к визуализации: линия пеленга должна быть "потолще" (ее почти незаметно) и, желательно, цвет линии сделать красным.
|
|
Дата: 28 Авг 2010 22:11:19 · Поправил: Mesh (28 Авг 2010 22:13:02)
#
Programmist Тогда подробнее чутка. У вас два движка, юзер их выставляет. А зачем тогда double? Ведь с движков значения целые? Странно как-то имхо, если правильно вьезжаю. Вы эти значения загоняете в double, потом из double делаете стринг, и по разделителю получете два интежер? Или всё не так?
з.ы. А уже решилось всё, ну и отлично. :)
|
|
Дата: 28 Авг 2010 22:17:53
#
cryptomaster
Спасибо большое за подсказку. В следующей версии сделаю настройку линий и цвета. Пока проге три дня от роду, возможны разные нюансы. Ошибок там наверно еще много.
|
|
Дата: 28 Авг 2010 22:24:32
#
Mesh Да, вроде работает. A double это угол, просто его выставлять удобней двумя движками (один типа градусы, второй - минуты и секунды).
|
|
Дата: 28 Авг 2010 22:34:57 · Поправил: Mesh (28 Авг 2010 22:35:38)
#
Programmist Всё таки есть у вас что-то типо floattostr? Имхо раделить можно без перевода в строку. Целое взять как Trunc(x), а дробное как Frac(x). Ну да ладно, если работает и устраивает. то и нормально.
|
|
Дата: 28 Авг 2010 22:54:00 · Поправил: Programmist (28 Авг 2010 23:21:31)
#
Mesh Точно! Потом так и сделаю (Trunc(x) и Frac(x)). Там у меня пока по-другому, через ж..у закручено, но вроде без ошибок. Когда до ума доведу, исходник в архив положу.
А там вот так: String:= IntToStr(значение1) + '.' + IntToStr(значение2), потом этот String пишется-читается, потом делится на 2 String-а по точке, далее значение1:= StrToInt(1-й String); значение2:= StrToInt(2-й String). Angle(double):= значение1 + значение2/1000.
|
|
Дата: 28 Авг 2010 23:13:39
#
думаю что с задачей справятся два точных теодолита (с разрешением не менее секунды) установленных на расстоянии 5-10 м друг от друга (чем больше тем естественно точнее будет. На основании их показаний (углы и расстояние между приборами) вычисляется простейшим образом местоположение наблюдаемой точки.
Угол в одну секунду-это 4.8 мм на расстоянии в 1 км. точность думаю будет более чем достаточная.
|
|
Дата: 28 Авг 2010 23:25:56
#
Perehvatchik
Подтверждаю. Можно использовать старые советские теодолиты типа Т2, ОТБ, ОТШ, Т10 и т.д., точность у них высокая - средняя квадратическая ошибка на километр хода - не более 10 секунд. Оптико-механические инструменты дают порой фору современным тахеометрам; один лишь минус - отсчет по лимбам делается визуально, и нужен дальномер =)
Расстояние между теодолитами - так называемый базис - не менее 100 метров, это даст бОльшую точность.
Имея базис - можно строить неплохую триангуляционную сеть.
Дальномер можно использовать советский, лазерный. Отражатель для него - обычная триппель-призма. Но точность у них (дальномеров) высокая, использовать можно до 3-5 км, в зависимости от местности, и, собственно марки самого дальномера.
Ныне это оборудование стоит недорого, нужно только отнести его в геокамеру на поверку и юстировку в ближайшее предприятие, занимающееся геодезией. Стоит это также недорого.
|
|
Дата: 28 Авг 2010 23:27:49 · Поправил: Programmist (28 Авг 2010 23:32:07)
#
Perehvatchik Думаю что справятся, здесь задача проще: определить где пожар, сантиметры роли не играют. А расстояния тут - десятки километров.
|
Реклама Google |
|