Рефераты. Обзор средств для автоматизации геодезических вычислений






Краткое описание электронной таблицы, автоматизирующей выполнение лабораторной работы «Предварительные вычисления в триангуляции».

Довольно большой объем однообразных вычислений, требующийся для выполнения данной работы, натолкнул меня на мысль сделать электронную таблицу, которая бы позволила автоматизировать данный процесс. Кроме того, несмотря на то, что исходные данные в каждом варианте были различны, но их количество и структура бла неизменной-одинаковое число пунктов и одинаковое их расположение. Для решения такой задачи очень хорошо подходила программа MS Excel, тем более что данные представлены в таблицах. Следовательно, задача свелась лишь к формализации процесса вычислений, т.е. необходимо было создать совокупность электронных таблиц, которые внешне выглядели бы точно так же, но вычисления – автоматизированы. Эта задача решается просто записыванием соответсвующих формул в соответсвующие ячейки, где производилась бы обработка данных, которые программа взяла бы из других ячеек(с исходными данными, куда необходимо их ввести вручную).

Например, таблица 1, «Вычисление дирекционных углов и длинн сторон между исходыми пунктами», выглядит так:




Как видно, таблица почти полностью дублирует таблицу, взятую из «методических указаний», только имеется лишний столбец (пустой) между колонками «Румб» и «Градусы», который нужен для записи промежуточных результатов. Дело в том,что все-таки изначально Excel не предназначался для работ в геодезической сфере, поэтому в нем нет встроенных форматов представления результатов угловых измерений. Впрочем, они достаточно легко реализуются вручную, но , скажем, для записи величины угла в формате «градусы, минуты, секунды» требуется не один столбец таблицы, а три, соответственно, доступ к этим данным тоже осуществляется раздельно.Для решения этой проблемы пришлось делать структуру, которая переводит величину в градусах (десятичные доли) в требуемый формат, отбрасывая сначала величину десятых долей и устанавливая количество целых градусов,а после переводя десятичные доли градуса в минуты и секунды. Для примера, формулы, записанные в ячейках:

H4 =ОТБР(G4) – целое число градусов

I4  =ОТБР((G4-H4)*60) – целая часть произведения из десятичых долей градусов, умноженных на 60, т.е. целое число минут

J4  =ОКРУГЛ((G4-H4-(I4/60))*3600;2) – произведение из исходной величины градусов минус целое число градусов минус только что вычисленное целое число минут, деленное на 60 умноженное  на 3600 и округленное до двух знаков после запятой = число секунд, вычисленное  с точностью до 2-х знаков после запятой.

В этой версии таблицы применены русские названия формул (хотя мне такое решение представляется весьма и весьма спорным – ведь это как-бы нарушение международного стандарта), так что фомула в ячейке H4 означает «взять целую часть числа, находящегося в ячейке G4 (причем столбец G4 не виден – он скрыт. Это решение применено для удобства – дело в том, что совокупность формул в ячейках H4:J11 является такой, чтобы перевести в формат «градусы, минуты, секунды» любое число, находящееся в соответствующей ячейке столбца G4, и между собой этот диапазон связан относительными ссылками, т.е. при «переброске через буфер» (копировании в буфер и вставке из него)  координаты ячеек будут пересчитаны (эту функцию Excel  выполяет автоматически), т.е. будет преобразовано в формат «градусы, минуты, секунды» любое число, находящееся в соответсвующей строке столбца, соответсвующего столбцу G4 в данном примере. Это очень удобно, но требует того, чтобы работа проводилась с ссылками на соответсвующие  значения, которые нужно преобразовать в формат «градусы, минуты, секунды», причем столбец, содержащий ссылку, можно сделать скрытым, как в данном примере.

Или еще пример:

S4 =ОКРУГЛ(КОРЕНЬ(СТЕПЕНЬ(B5-B4;2)+СТЕПЕНЬ(C5-C4;2));2)

Таким вот непривычым способом записывается теорема Пифагора.

СТЕПЕНЬ(B5-B4;2) означает квадрат разности значений, записанных  в B5 и B4 ( это как раз исходные координаты), двойка-это показатель степени.

КОРЕНЬ – это извлечение квадратного корня из аргумента в скобках.

ОКРУГЛ – это округление результата до второго знака после запятой.

На приведенных примерах хорошо виден принцип работы электронных таблиц – они просто выполняют то, что  записано в их ячейках. Преимуществом по сравнению с разработкой на языках программирования является наглядность и высокая степень конфигурабельности, а также легкость редактирования и модификации.

По такому принципу создана вся так называемая “книга MS Excel» – совокупность электронных таблиц, которые в этом случае называются «листами». Каждый лист содежит отдельную таблицу, которая (в основном) данные для своей работы берет из предыдущих листов, что реализовано с помощью механизма «ссылок» – метода, при помощи которого ячейка одного листа в книге ссылается на значение  ячейки другого листа этой же самой книги.

Нет нужды описывать рлдробным образом каждую таблицу данной книги, потому что принцип работы остается одинаковым, но необходимо сказать о существенных недостатках такого подхода. Во-первых, ссылки могут быть многократными, т.е. на ячейку, содержащую ссылку, в свою очередь ссылается другая ячейка и т.д. Это, с одной стороны, создает удобство работы, так как для исходых данных последующей таблицы можно брать предыдущую, не задумываясь, содержит ли она ссылки или нет, а не искать ту клетку, где хранятся исходные данные, а с другой стороны,  такой подход затрудняет поиск ошибок, так как для поиска ошибки в цепи, содержащей ссылки, необходимо проследовать по ней до самого начала, прослеживая заодно взаимодействия этой цепи с другими элементами кники, что при большом объеме таблицы может быть весьма затруднительно.

Другой минус подобной реализации – это то, что все-таки Excel не имеет достаточно удобных конструкций, необходимых для реализации базовых алгоритмов, как то : следование, развилка, цикл. Скажем, выбор из двух сценариев вычисления (что необходимо, когда, например, получается число градусов больше 360 – ти, такая ситуация не представляет никаких трудностей для человека, но не для компьютера!) представляет собой не очень просто реализуемую задачу , она, будучи по сути простейшей, приводит к появлению, например, таких формул:

=ЕСЛИ(СУММ(D10:D12)+ОКРУГЛВНИЗ(СУММ(E10:E12)/60;0)>=60;ЕСЛИ(СУММ(D10:D12)+ОКРУГЛВНИЗ(СУММ(E10:E12)/60;0)>=120;СУММ(D10:D12)+ОКРУГЛВНИЗ(СУММ(E10:E12)/60;0)-120;СУММ(D10:D12)+ОКРУГЛВНИЗ(СУММ(E10:E12)/60;0)-60);СУММ(D10:D12)+ОКРУГЛВНИЗ(СУММ(E10:E12)/60;0))

Данная формула представляет собой как раз выбор из двух сценариев вычислений, в заисимости от числа секунд и минут в соответсвующих ячейках, учитывающий все варианты.

Ясно, что работать с такого рода формулами очень неудобно.

Направления усовершенствования. Язык Visual Basic.

Хотя разработанная таблица и справляется с поставленной задачей, тем не менее существует ряд моментов, которые хотелось бы улучшить. Это – избавиться от структур, описанных в конце предыдущего параграфа, сделат выбор сценария решения понятным и удобочитаемым, а в далекой перспективе – даже расширить данную таблицу таким образом, чтобы появилась возможность работы  не с фиксироанным количеством точек, а с произвольным, задавая их количество. Данная задача является очень трудоемкой и требует хорошео знания особенностей программирования на встроеном в MS Excel язык программирования Visual Basic.

Это в принципе объектно-ориентированное расширение обычного языка Basic, с очень большим числом новых функций и методов, призванных помочь в решении самых разнообразных задач любой сложности. Интеграция языка программирования и электронной таблицы предоставляет широчайшие возможности, ведь в числе предоставляемых средств есть и средства доступа к значениям клеток электронной таблицы, и даже доступ к их свойствам. Так, например, создается макрос – определенная последовательность инструкций, которая выполняется или сразу при загрузке документа, или же при выборе из меню «Сервис-Макрос-Макросы-Выполнить»(альтернативный вариант – нажать клавишу F8), и при своем выполнении макрос, допустим, опрашивает пользователя, сколько пунктов, каково их взаимное расположение, и т.д. , после чего, используя собственные средства доступа к значениям клеток таблицы, генерирует нужную структуру. Например, подпрограмма

Sub MyInput()

          With Workbooks("Book1").Worksheets("Sheet1").Cells(1, 1)

                          .Formula = "=SQRT(50)"

                          With .Font

                                          .Name = "Arial"

                                          .Bold = True

                                          .Size = 8

                          End With

          End With

End Sub

в результате своего выполнения запишет в клетку A1 (или 1,1 в данном формате записи) листа «Sheet1”  книги с названием “ Book1” формулу “=SQRT(50)», т.е. квадратный корень из 50 – ти, а результат будет записан утолщенным шрифтом Arial размера 8.

К сожалению, процесс создания действительно универсального средства автоматизации вычислений является чрезвычайно трудоемким и длительным, что делает его созданией задачей не одного программиста, но какой-либо фирмы, специализирующейся на разработке программного обнспечения. И, как уже было сказано выше, для подобных задач гораздо более целесообразно использовать специализированные ГИС, разработанные специализирующиимся на выпуске подобных продуктов фирмами. А в практической работе, когда таких задач не ставится, как, например, в данном случае, применение Visual Basic в принципе целесообразно ограничить созданием макросов для упрощения вычисления некоторых частей таблицы, когда напрямую (через запись формул в ячейки) требуемый результат трудно достижим, или его восприятие затруднено. Но при этом не следует забывать, что использование макросов ухудшает понятность таблицы и делает ее модификацию более сложной, так как макрос в принципе является некоторым кодом, написаным на языке программирования,следовательно, для эффективной работы с ним необходимо обладать программисткими навыками и, кроме того, знать специфику данного языка программирования, хорошо ориентироваться в свойствах и методах объектов, и четко представлять себе реультат выполнения той или иной инструкции. Все это делает задачу создания сложных макросов задачей скорее программистов, нежели геодезистов, так как освоение языка программирования требует некоторого, порой весьма значительного времени, и специальных знаний. Правда, ипользование справочной системы облегчает задачу.

Из этого можно сделать вывод, что наиболее эффективным средством самостоятельной разработки  системы, автоматизирующей нужные вычисления, является сочетание средств, предоставляемых собственно электронныим таблицами и средств, предоставляемых языками программирования. В этом и нужно видеть основные направления усовершенствования данной работы.

Заключение.

Автоматизация геодезических вычислений – плюсы и минусы.

В заключении данной работы необходимо еще раз обратить внимание на такой важый аспект проблемы, как плюсы и минусы автоматизации. Казалось бы, что здесь нет никакой проблемы, ведь, как неоднократно было сказано выше, автоматизация позволяет многократно увеличить производительность работ по обработке вычислений за счет увеличения скорости их выполнения, и во много раз сократить вероятность появления любых ошибок в процессе камеральной обработки. Алгоритмы, которые используются при разработке средств автоматизации,многократно проверяются ( по крайней мере, должны) в процессе разработки на наличие скрытых ошибок, что позволяет довести надежность процесса вычислений до неободимого уровня. Поэтому автоматизация на первый взгляд кажется почти абсолютным благом, которое необходимо применять везде и всюду. Ведь никто не спорит, что сокращение затрат времени на производимую работу увеличивает ее эффективность, тем более при сохранении (и даже более того-возрастании, как в данном случае) качества производимой работы. Но что, в сущности, поисходит на самом деле?

Дело все в том, что при применении готовых технологий процессы получения требуемых результатов вообще автоматизированы почти что до предела – съемка местности, запись результатов, произведение камеральных работ происходи автоматически, желательно с минимальным участием человека. Поэтому становится нормальным такое положение дел, при котором исполнитель работ не понимает сущности того, что он делает, а только хорошо и четко знает алгоритм действий, подлежащих выполнению с его стороны. Говоря проще, знает, какую и когда кнопку нажать, чтобы в конечном итоге получился требуемый результат.

Не рискуя заявить о том, что подобное положение вещей является неудовлетворительным (хотя бы потому, что оно имеет место быть), тем не менее нужно обратить внимание на опасности данного подхода. Ведь риск получения неправильного результата возрастает при отсутствии понимания сути работы исполнителем, иными словами, не всегда бывает полностью безопасно полагаться на приборы. Хотя противники данной точки зрения и говорят, что в таком случае , допустим, и программист не может полагаться на компьютер, поскольку не понимает полностью сути происходящих в нескольких миллионах транзисторов центрального процессора процессов, тем не менее, необходимо не забывать о данном аспекте проблемы.

При самостоятельой разработке подобых средств автоматизации подобных проблем не должно возникать, потому что для того, чтобы создать функционирующую таблицу, автоматизирующую вычисления, необходимо как минимум хотя бы приблизительно представлять себе суть происходящего. Но однажды разработанное, проверенное и функционирующее средство в процессе его эксплуатации по прямому назначению позволит даже разработчику со временем надежно забыть, как там что вычисляется и почему. Несмотря на это, результаты будут по-прежнему правильными!

Но, конечно, было бы абсурдом не использовать средства автоматизации, мотивиуя это такими доводами. Просто необходимо разграничить сферы применения тех или иных средств автоматизации в зависимости от решаемых задач.

Необходимость автоматизации.

Подводя краткий итог всему вышесказанному, можно сделать вывод, что в целом автоматизация геодезических вычислений необходима в различных областях, связанных с геодезией. Предпосылки этому создает тотальная продолжающаяся информатизация практически всех сфер функционирования общества, а также повышающаяся доступность компьютерных технологий и снижение стоимости их производства. В геодезии автоматизация необходима в первую очередь, потому что позволяет решать практические задачи самого различного характера с большей эффектитвностью и производительностью, а также увеличивает скорость выполнения и себестоимость работ по камеральной обработке результатов съемок.

Средства автоматизации делятся на два различных класса – первые (специализированные ГИС) позволяют решать широкий круг часто встречающихся практических задач, и представляют собой программно-аппаратные комплексы, позволяющие реализовать технологию например, производства карт, от начала и до конца. Такими являются комплексы TopoCad и FieldWorks.

Вторые же являют собой средства разработки программных продуктов, какими в сущности, являются электронные таблицы, и позволяют создавать средства автоматизации для решения практически любых задач, не имея для этого особых программистских навыков.

Выполнена работа по созданию электронной таблицы, автоматизирущей выполнение работы «Предварительные вычисления в триангуляции», выполнение которой предусмотрено в курсе «Геодезическая основа карт». Рассмотрены средства выбранного для этой цели продукта MS Excel, а также возможности применения объектно-ориентированного языка программирования Visual Basic, который интегрирован практически во все продукты серии Microsoft Office.

Обращено внимание и на негативные аспекты  автоматизации геодезических вычислений.

Делая вывод, можно сказать, что автоматизация геодезических вычислений является актуальной темой, и совершенно необходима во всех сферах работ, где используется обработка результатов геодезических измерений.

Источники:

Интернет:

--Геоинформационные системы (GIS)

Адрес интернет: #"#">#"_com_1">

 [KL1]


Страницы: 1, 2, 3, 4, 5



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.