Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Программное обеспечение геодезии, фотограмметрии, кадастра, инженерных изысканий

Покупка
Основная коллекция
Артикул: 695091.01.99
Рассмотрены возможности использования элементов программирования на языке С# в среде Microsoft Visual Studio для решения разнообразных задач геоматики. Показана связь процессов кадастра и географических информационных систем. Предложены функции для решения задач кадастра и инженерных изысканий на основе данных геодезии и аэротриангуляции. Программно реализовано цифровое моделирование местности, в котором геодезические и геологические изыскания рассматриваются вместе. Создана модель учета перемещаемых земляных масс. Представлено большое количество готовых к использованию функций с исходными текстами и возможностью адаптировать их к различным условиям. Для специалистов в области геоматики, решивших улучшить качество и скорость своей работы с помощью внедрения элементов программирования, а также для студентов инженерно-геодезических и кадастровых направлений.
Браверман, Б. А. Программное обеспечение геодезии, фотограмметрии, кадастра, инженерных изысканий : учебное пособие / Б. А. Браверман. - Вологда : Инфра-Инженерия, 2018. - 244 с. - ISBN 978-5-9729-0224-8. - Текст : электронный. - URL: https://znanium.com/catalog/product/989422 (дата обращения: 14.07.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Б. А. Браверман 

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ГЕОДЕЗИИ, 
ФОТОГРАММЕТРИИ, КАДАСТРА,  
ИНЖЕНЕРНЫХ ИЗЫСКАНИЙ 

Учебное пособие

Инфра‐Инженерия 
Москва – Вологда 
2018 

УДК 528.48 
ББК 26.12 
 Б 87 

Браверман Б. А. 
Б87     Программное обеспечение геодезии, фотограмметрии, кадастра, 
инженерных изысканий: учебное пособие / Б. А. Браверман. – 
М.: Инфра-Инженерия, 2018. – 244 с. 

ISBN 978-5-9729-0224-8 

Рассмотрены возможности использования элементов программирования на языке С# в среде Microsoft Visual Studio для решения 
разнообразных задач геоматики. Показана связь процессов кадастра  
и географических информационных систем. Предложены функции  
для решения задач кадастра и инженерных изысканий на основе данных геодезии и аэротриангуляции. Программно реализовано цифровое 
моделирование местности, в котором геодезические и геологические 
изыскания рассматриваются вместе. Создана модель учета переме- 
щаемых земляных масс. Представлено большое количество готовых 
к использованию функций с исходными текстами и возможностью 
адаптировать их к различным условиям. 
Для специалистов в области геоматики, решивших улучшить 
качество и скорость своей работы с помощью внедрения элементов 
программирования, а также для студентов инженерно-геодезических  
и кадастровых направлений. 

Приложения к книге доступны для скачивания на сайте 

издательства «Инфра-Инженерия» www.infra-e.ru. 

© Браверман Б. А., автор, 2018 
© Издательство «Инфра-Инженерия», 2018 

ISBN 978-5-9729-0224-8 

ФЗ 

№ 436-ФЗ 

Издание не подлежит маркировке  
в соответствии с п. 1 ч. 4 ст. 11 

~ 3 ~ 

Cодержание 

Введение ........................................................................................................  5 
Структура книги  ........................................................................................  6 

Глава 1. Некоторые начальные этапы создания программ  ..............  9 
1.1. Открытие проекта создания программы  ................................  9 
1.2. Элементы интерфейса  ............................................................. 10 

Глава 2. Создание и сопровождение проектов обработки данных ... 15 
2.1. Выбор диска для хранения и функционирования проектов .. 15 
2.2. Открытие нового проекта  ........................................................ 25 
2.3. Возвращение к ранее созданному проекту   ........................... 32 
2.4. Удаление проектов  ................................................................... 38 
2.4.1. Удаление одного проекта  ............................................. 38 
2.4.2. Удаление всех проектов ................................................. 43 

Глава 3. Расширение возможностей программного обеспечения  .... 46 
3.1. Создание динамически подключаемой библиотеки  ............. 46 
3.2. Элементы графики  ................................................................... 49 
3.2.1. Преобразование систем координат ............................... 49 
3.2.2. Изменение масштаба  ..................................................... 60 

Глава 4. Условные знаки топографических планов  
   и профилей трасс ........................................................................ 68 

Глава 5. Вариант создания геодезического обоснования   
   топографических работ  ............................................................ 81 
5.1. Вычисление координат точек съемочной сети ....................... 81   
5.2. Вычисление координат характерных точек местности ......... 84 
5.3. Программная реализация .......................................................... 86 

Глава 6. Аэротриангуляция — способ информационного 

обеспечения топографических работ ...................................... 93 
6.1. Технология аэротриангуляции  ................................................ 93   
6.2. Архив аэрофотосъемочных камер  .......................................... 95 
6.3. Архив опорных точек   ............................................................. 96 
6.4. Ввод данных стереоизмерений аэроснимков   ........................ 98 
6.5. Ввод данных моноизмерений аэроснимков  ........................... 99 
6.6. Внутреннее ориентирование аэроснимков   ........................... 99 
6.7. Взаимное ориентирование аэроснимков   ............................. 109 

~ 4 ~ 

6.8. Построение свободной фотограмметрической сети  ........... 117   
6.9. Внешнее ориентирование фотограмметрической сети  ....... 130 
6.10. Аэротриангуляция на основе использования результатов 
  измерений снимков   ............................................................. 137 
6.11. Использование полиномов для устранения деформаций 
  фотограмметрической сети .................................................. 144 
6.12. Графический контроль построения аэротриангуляции  .... 150 
6.13. Формирование кадастровой 
          и топографической информации ........................................ 151 

Глава 7. Обработка результатов кадастровой съемки  .................... 140 
7.1. Элементы теории географических  
   информационных систем  ....................................................... 140 
7.2. Технология обработки данных кадастровой съемки ........... 144 
7.3. Совмещение исходной информации  .................................... 145 
7.4. Способы формирования границ земельных участков  ......... 147 
7.5. Создание проекта для регистрации земельных участков  ... 158 
7.5.1. Исходные данные для проекта  ................................... 158 
7.5.2. Интерактивное формирование границ участков  ...... 159 
7.5.3. Построение и корректировка линейной топологии  . 160 
7.5.4. Построение полигональной топологии  ..................... 167 

7.6. Проект деления существующего земельного участка  ....... 173 
7.7. Проект отчуждения земли  ..................................................... 178 
7.8. Построение и использование модели рельефа  .................... 182 
7.9. Конечные результаты  ............................................................ 192 

Глава 8. Вариант цифровой модели местности .................................. 196 

Глава 9. Модель учета перемещения земляных масс  ...................... 210 

Заключение  .............................................................................................. 220 

Приложение: http://infra-e.ru/products/softwaregeodesy

 

~ 5 ~ 
 

ВВЕДЕНИЕ 
 
Сейчас трудно представить техническую профессию, где в процессе обучения не преподают программирование. Иногда формально, а иногда на достаточно высоком уровне. И если полученные знания не применять, то в первом случае все забудется сразу после окончания учебы,  
во втором — тоже очень скоро. Это как спорт, где нужно постоянно быть 
в форме. В процессе учебы многие увлекаются программированием,  
появляется желание создавать что-то свое. Ждать, что на производстве 
это желание будет поддержано, вряд ли стоит. Но во время работы появляются новые идеи, и тут вся надежда на собственный энтузиазм. Постановка задачи и совместная работа с программистом требуют огромных 
затрат сил и времени и в конечном итоге часто не приносят ожидаемого 
результата. Созданная собственным умом и руками компьютерная программа может найти других пользователей, а это большая радость для 
разработчика. Многие небольшие компании, которые не могут содержать 
в штате программиста, пользуются готовыми разработками. На начальном этапе такой подход оправдан. Это как вступление к началу собственной разработки. Очень часто на рынке предлагают программы-монстры, 
которые стоят немалых денег, не считая регулярных платежей за их поддержку. К тому же нередко эти программы оказываются не готовыми  
к решению неожиданно возникающих в процессе работы обстоятельств. 
Небольшие компании часто являются семейными. В семье всегда найдется энтузиаст, готовый взяться за собственные разработки, не оставляя 
основной работы. В таком случае все появляющиеся неожиданности могут оперативно обрабатываться. Через некоторое время появится возможность не только полностью отказаться от использования чужих разработок, но и предложить другим пользователям свои. Автор надеется, 
что эта книга окажется полезной именно для таких энтузиастов. 
В первую очередь книга расчитана на специалистов в области геоматики, решивших сделать программирование неотъемлемой частью  
своей работы. Представлено огромное количество готовых к использованию функций, причем с исходными текстами и возможностью приспосабливать их к своим условиям. Книга может быть полезной и для студентов при выполнении домашних заданий — например, поможет при 
наличии принтера создать планы в заданном масштабе. Присутствуют  
и некоторые общие решения, которые могут быть полезными специалистам смежных профессий. 
Представленные в книге готовые к использованию комплексы  
программ созданы на основе Microsoft Visual Studio 2005, 2008, 2010  
и C#. 

 

~ 6 ~ 
 

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

 

~ 7 ~ 
 

Седьмая глава открывается рассмотрением основных понятий 
теории географических информационных систем (ГИС): узловой, линейной и полигональной топологии. Эти понятия являются неотъемлемой 
частью программного обеспечения кадастровой съемки. Для решения 
задач кадастра могут быть использованы результаты аэротриангуляции, 
наземной кадастровой съемки или ASCII-файл точек определенного формата, полученный в результате использования других программных продуктов. В последнем случае методы аэротриангуляции и наземной кадастровой съемки могут вообще не использоваться. Программное обеспечение кадастра решает широкий круг задач: 
 графическое интерактивное формирование границ земельных 
участков с использованием различных типов линий; 
 автоматическое построение линейной и полигональной топологий; 
 учет наличия юридически закрепленных (легальных) площадей; 
 установление допуска на разность вычисленных и легальных 
площадей; 
 автоматизация процессов деления, соединения и отчуждения 
площадей; 
 формирование и корректировка модели рельефа и горизонталей; 
 формирование и печать планов земельных участков в заданном 
масштабе; 
 формирование и печать таблиц площадей. 
 
В восьмой главе рассмотрена и реализована возможность создания и использования цифровой модели местности (ЦММ), объединяющей топографическую и инженерно-геологическую информацию. Основная цель работы — построение профиля трассы (топография и инженерная геология) по любому заданному направлению при произвольном расположении скважин. Также возможна ЦММ-обработка данных изысканий месторождений строительных материалов при возведении автомобильных дорог.  
В девятой главе представлено программное обеспечение определения объемов земляных работ, основанное на сравнении данных двух 
топографических съемок участков местности, перекрывающихся полностью или частично. По данным первичной съемки, охватывающей, как 
правило, всю рассматриваемую площадь, создают модель ситуации и 
рельефа. По данным последующей оперативной (исполнительной) съемки части или всей территории также создают модель ситуации и рельефа. 
Результатом автоматического сравнения этих данных являются цифровая 
модель разности высот и модели ситуации и рельефа, представляющие 

 

~ 8 ~ 
 

исполнительную съемку всей территории. Полученные модели являются 
частью архива данных рассматриваемой территории. По модели разности 
высот определяют объемы перемещаемых земляных масс. Результаты 
каждой последующей оперативной съемки сравниваются с данными архива. Последняя версия архива практически является исполнительной 
съемкой всей рассматриваемой площади. 
Все названные разделы не объединены общим интерфейсом. Такой подход позволяет упростить анализ программного обеспечения. Поэтому в каждый раздел включены программы сопровождения проектов  
и создания условных знаков. Тем не менее, при переходе из раздела  
в раздел используется один и тот же архив условных знаков. Геодезическая съемка и аэротриангуляция рассматриваются как информационное обеспечение кадастра и изысканий. Поэтому при проведении этих 
работ программно обеспечен доступ к исходной информации. 
Специалист в области геоматики, начинающий осваивать программирование, скорее всего, попытается сделать это в наиболее близкой 
ему области. Вероятнее всего, будет выбрана геодезия. После первого 
успеха возникнет желание продолжить работу в связанном с геодезией 
направлении. Возможно, это будет связка «геодезия — кадастр» или другое сочетание. Опыт автора подсказывает, что сочетание профессионализма в определенной области и умения программировать неизменно 
обеспечивают высокую востребованность специалиста. 
 
 

~ 9 ~ 
 

ГЛАВА 1. Некоторые начальные этапы создания 
программ 
 
Для тех, кто забыл или кто только приступает к освоению  
программирования, на простых примерах показаны начальные шаги  
по созданию программ в Microsoft Visual Studio, а именно создание часто 
используемых элементов интерфейса.  
 
1.1. Открытие проекта создания программы 
 
Для хранения результатов формирования программы необходимо 
на одном из дисков создать некоторую директорию. Пусть это будет диск 
C:\, а директории присвоим имя ShrpDemo. Теперь обратимся к Microsoft 
Visual Studio. В меню File выберем путь NewProject. Появляется окно 
New Project, в котором разделы заполним следующим образом: 
 
Project Types — Visual C# 
Templates      — Windows Application 
Name             — DemoShrp 
Location        — C:\ShrpDemo 
Create directory for solution 
 
После этого нужно щелкнуть по кнопке OK. Автоматически создается Windows Form с именем Form1. Опция Windows Application необходима для создания графического интерфейса. Обратимся к окну Solution 
Explorer. В нем по умолчанию также идет привязка к имени Form1.  
Для удобства имена целесообразно изменить, например, согласовать их  
с содержанием решаемой задачи или оставить название Demo. Для этого 
в окне Solution Explorer на имени Form1.cs нужно щелкнуть правой кнопкой мыши и заменить имя на Demo.cs. Дальше щелкнуть по кнопке Enter 
на клавиатуре и в полученном предупреждении согласиться с изменением имен. После этих изменений окно Solution Explorer должно выглядеть как на рис. 1.1. 
 

 
Рис. 1.1. Окно Solution Explorer 

~ 10 ~ 
 

При этом имя самой формы не изменяется. Для изменения имени 
формы следует открыть окно Properties (кнопка на рис. 1.1) и внести следующие изменения: 
Техт               — Main Form 
MaximizeBox — False 
MinimizeBox  — False 
Из формы удалены две кнопки MaximizeBox и MinimizeBox, которые не будут использованы в проектах. Для открытия автоматически созданного файла Demo.cs достаточно дважды щелкнуть левой кнопкой 
мыши над формой. Исходя из характера рассматриваемых задач, нужно 
обязательно предусмотреть наличие в форме графического интерфейса  
и группы кнопок для выполнения определенных процессов. Под графическим интерфейсом следует понимать не только возможность видеть 
некую картинку, но и возможность корректировки изображения в интерактивном режиме. Дополнения и изменения могут производиться как  
в форме, так и в тексте программы. Кроме этого, важно все процессы 
обеспечивать необходимым набором информационных сообщений.  
 
1.2. Элементы интерфейса 
 
Для создания графического интерфейса перейдем к окну Toolbox 
(кнопка на рис. 1.1) и используем опцию Panel. Установите курсор мыши 
на этой опции и нажмите левую кнопку мыши. Перетащите картинку  
в верхнюю левую часть формы и отпустите кнопку. В окне Properties 
(кнопка на рис. 1.1) с помощью опций BackColor и BorderStyle следует 
сделать так, чтобы панель выделялась на фоне формы. 
Следующим элементом интерфейса, который следует создать, является набор кнопок для запуска определенных процессов. Здесь ограничимся созданием одной кнопки, которая обеспечивает завершение всех 
процессов. Вновь обратимся к окну Toolbox. Сначала выделим область на 
форме, в которую будем помещать все или часть кнопок. Воспользуемся 
опцией groupBox для создания прямоугольной области. Принцип переноса тот же. В окне Properties в свойстве Text изменим название этого прямоугольника, например, на «Options», и зададим цвет, отличающийся  
от цвета формы. Можно создавать несколько таких областей и помещать 
в них группы кнопок, с помощью которых можно будет запускать последовательное выполнение различных этапов одного процесса. Вновь переходим к окну Toolbox, находим опцию Button и тем же способом переносим кнопку в область groupBox. Появляется кнопка с условным именем button1. В окне Properties (рис. 1.1) в свойстве Text изменим его на 
логическое название кнопки Exit. Конечно, можно было бы выполнить 
все действия в окне Toolbox, а затем перейти в окно Properties. 

~ 11 ~ 
 

Для вывода текущей текстовой или графической информации, 
трансформированной в текстовую, обычно используют строку состоя- 
ния (status bar) формы. Открываем окно Toolbox (рис. 1.1). В нем может 
не оказаться опции StatusBar. Должна существовать обладающая бóльшими возможностями опция StatusStrip. Установите курсор мыши на 
этой опции и нажмите левую кнопку мыши. Не отпуская кнопку, перетащите строку в нижнюю часть формы, где обычно располагается стро- 
ка состояния, и отпустите кнопку. После этого перейдите в окно 
Properties (рис. 1.1) и придайте строке состояния более наглядный вид, 
допустим, изменив цвет. В строке состояния автоматически создано меню, с помощью первой опции которого (StatusLabel) можно разделить 
строку состояния на заданное число частей. В данном конкретном случае 
достаточно строку состояния разделить на пять частей. Откройте меню 
 и щелкните по названной опции. Появляется первая часть с текстом  
по умолчанию toolStripStatusLabel1. Тот же текст видим в окне Properties 
в свойстве Text и здесь заменим toolStripStatusLabel1 на слово Ready. Эта 
замена должна автоматически появиться и в строке состояния. Первая 
часть предназначена для оперативных сообщений. Слово Ready будет 
заменяться посылаемым сообщением. Также с помощью StatusLabel  
создаются все остальные части. Части 2 и 4 в свойстве Text будут иметь 
неизменяемые значения «Х =» и «У =» соответственно. Части 3 и 5 предназначены для вывода значений координат, которые должны изменяться 
при движении курсора мыши по графической панели. Их можно инициализировать любыми символами, например, «******» и «******» соответственно.  
Осуществим первый пуск программы нажатием кнопок CtrlF5. 
Если не было допущено никаких ошибок, то на экране дисплея должна 
появиться приблизительно следующая картина (рис. 1.2): 
 

 

Рис. 1.2. Некоторые типы интерфейса 
 

~ 12 ~ 
 

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

дважды щелкнуть левой кнопкой мыши по кнопке Exit. Автоматически 
открывается текст программы Demo.cs, в который добавлена функция: 
 
       
 private void button1_Click(object sender, EventArgs e) 
        
{ 
        
 
Application.Exit(); 
        
} 
 
Единственный оператор Application.Exit() внесен вручную. Нужно 
снова запустить программу CtrlF5 и щелкнуть по кнопке Exit. Дол- 
жен выполниться нормальный логический выход из программы. Логический — потому что в функцию выхода может быть добавлено перед 
Application.Exit() множество других операторов или функций. Например, 
сохранение результатов обработки, сохранение одних файлов и удаление 
временных. Для удобства работы с файлом Demo.cs следует в имени 
функции button1_Click заменить условное button1 на более логичное Exit 
(Exit_Click). Если снова запустить программу CtrlF5, то в окне ошибок 
(Error) получим сообщение об ошибке. Следует дважды щелкнуть левой 
кнопкой по этой строке. Автоматически открывается текст функции 
Demo.Designer.cs, в которой также следует button1 заменить на Exit. Для 
проверки снова запустить программу. 
Следующим шагом активизируем первую часть строки состояния 
на одном из примеров. При большой плотности кнопок невозможно дать 
понятное назначение каждой кнопки. Для этого можно воспользоваться 
двумя готовыми стандартными функциями MouseHover и MouseLeave. В 
первом случае при нахождении курсора мыши над кнопкой в строке состояния появляется описание назначения кнопки, составленное пользователем. Вторая функция восстанавливает строку состояния при уходе курсора с кнопки. Обе функции добавляют в class Demo: Form после функции public Demo() обращение к этим функциям непосредственно в public 
Demo(). На этом этапе необходимо подключить библиотеку ввода/вывода 
using System.IO и функцию this.StartPosition = FormStartPosition.Manual, 
позволяющую всегда располагать форму в левом верхнем углу экрана. 
Вот так выглядит фрагмент класса после внесения соответствующих изменений: