4.17. Построение основы геологических разрезов в ArcGis
Построение разрезов в ArcGis штатными средствами программы не предусмотрено. Поэтому по заказу ФГУП ВСЕГЕИ в ФГУП ГНЦ РФ ВНИИГЕОСИСТЕМ было разработано специализированное расширение ArcGis (igk_arcmap_profil.dll) для решения задачи построения основы геологических разрезов. Данное расширение можно скачать на сайте ФГУП ВСЕГЕИ (http://www.vsegei.ru/ru/info/normdocs/). Предлагаемое расширение по своей функциональности аналогично известному модулю razrez.avx ArcView, но решено более технологично и имеет гораздо более дружественный интерфейс. Решаемые задачи включают получение профиля рельефа по произвольно выбранной линии разреза (графика аномального геофизического поля и т.д.), получения засечек в точках пересечения с рельефом элементов гидрографии, геологических границ, разломов. Дальнейшее построение разреза выполняется автором самостоятельно в режиме свободного редактирования.
4.17.1. Установка
Перепишите файл “igk_arcmap_profil.dll” в любую директорию. Запустите программу “ArcMap”. В главном меню в подменю “tools” выберите пункт “Customize”. В открывшемся окне нажмите кнопку “Add from file…” (рис. 4.17.1). После этого откроется диалог выбора файла. В этом диалоге нужно указать списанный ранее файл “igk_arcmap_profil.dll”. Рис 4.17.1. Вид окна “Customize” («Настроить»). Команда «Добавить из файла». Программа “ArcMap” сообщит, что добавлено два новых объекта: “ig_arcmap_tool_bar_profile” и “ig_arcmap_command_profile”. В результате к панелям инструментов программы “ArcMap” добавиться еще одна панель с единственным инструментом построения разреза (рис.4.17.2).
Рис. 4.17.2. Панель модуля построения разреза Так как панели инструментов пользователь может перетаскивать и располагать так, как ему удобно, то расположение инструментов не будет в точности таким, как показано на рисунке. На этом установка закончена.
4.17.2. Настройка параметров
Загрузите карту, по которой будет строиться разрез. Нажмите на кнопку инструмента построения разреза. На экране появится окно с несколькими закладками (рис. 4.17.3). На первой закладке “Линия разреза” нужно указать линию, по которой будет строиться разрез. В выпадающем списке “Слой линии разреза” содержатся названия всех линейных слоёв, находящихся на карте. В этом списке нужно выбрать слой, который содержит объект – линию, по которой будет строиться разрез. Имена объектов выбранного слоя находятся в выпадающем списке “Объект линии разреза”.
Рис. 4.7.3. Вид панели задач инструмента построения разреза (выбрана закладка «Линия разреза»). Имена объектов берутся из поля имён объектов атрибутивной таблицы слоя. Имя поля имён объектов выбирается в настройках слоя программы “ArcMap”. Окно настроек слоя программы “ArcMap” с помеченным выпадающим списком, где назначается поле названий объектов (рис. 4.17.4).
Рис. 4.7.4. Задание свойств слоев Выбранный объект можно посмотреть ближе на карте, нажав кнопку “Сфокусировать”. Если нажать кнопку “Подсветить”, то выбранный на карте объект помигает. В нижней части закладки “Линия разреза” располагается элемент управления “Папка разреза”. В нём можно выбрать каталог, где по умолчанию будут располагаться файлы данных, созданные инструментом построения разрезов. Большинство редактируемых полей окна для настройки параметров построения разреза программа пытается заполнить самостоятельно значениями по умолчанию. Значения по умолчанию программа пытается установить в соответствии с “Требованиями по представлению в НРС и ГБЦГИ цифровых моделей листов Государственной геологической карты Российской Федерации масштаба 1:200 000 второго издания”. Например, источник данных слоя линий разрезов в соответствии с указанными требованиями должен называться “sectl.shp”. Соответственно, программа по умолчанию установит выбранным именно такой слой (если он есть) в выпадающем списке “Слой линии разреза”. Если такого слоя нет или пользователь просто хочет выбрать другой слой с линиями разрезов, то он может это сделать, просто указав нужный слой в выпадающем списке. После того как выбрана линия, по которой будет строиться разрез, нужно указать, откуда брать данные о рельефе. Это делается на закладке “Рельеф” окна настроек инструмента построения разреза (рис. 4.17.5).
Рис. 4.7.5. Вид панели задач инструмента построения разреза (выбрана закладка «Рельеф»). В верхней части закладки располагается выпадающий список “Слой изолиний”. В этом списке перечислены все линейные слои на карте. Из этих слоёв нужно выбрать тот, который содержит данные о рельефе. Значения высот изолиний берутся из поля атрибутивной таблицы слоя изолиний. Это поле нужно указать, выбрав его из выпадающего списка “Поле значений изолиний”, в который попадают названия всех полей атрибутивной таблицы выбранного слоя. На равнинных участках перепад высот вдоль линии разреза может быть достаточно небольшим. Поэтому при построении линии рельефа пользователь может задавать разные масштабы по вертикальной и горизонтальной осям. Вертикальный и горизонтальный масштабы выбираются в соответственно озаглавленных выпадающих списках. Построенная линия рельефа и линия уровня моря будут сохраняться в шейп-файл, имя которого задаётся в поле “Файл с линией рельефа”. Следующие две закладки позволяют настроить построение засечек пересечения линией разреза полигональных и линейных векторных слоёв (рис. 4.17.6).
.
Рис. 4.7.6. Настройка опций построения засечек пересечения линией разреза полигональных и линейных векторных слоёв. В списках, озаглавленных “Список слоёв”, отображены названия всех полигональных или линейных слоёв карты, в зависимости от того какие засечки настраиваются. Если пометить слой галочкой в квадрате слева от имени слоя, то для данного слоя будут строиться засечки. Для каждого слоя, для которого строятся засечки, нужно указать имя файла, куда будут записываться объекты засечек и атрибутивная информация к ним. Если в списке расположить курсор на помеченном для построения засечек слое, то внизу закладки в поле “Выходной файл” задаётся имя шейп-файла, куда будут сохранены данные построенных засечек. Атрибуты у каждого из объектов засечек записываются такие же, как и у исходного пересекаемого объекта. Следующие две закладки “Гравика” и “Магнитка” позволяют указать слои изолиний гравитационного и магнитного поля, по пересечениям которых с линией разреза программа построит график изменения соответствующего параметра, заданного изолиниями вдоль линии разреза (рис. 4.17.7). Устроены они похожим образом, поэтому рассмотрим только закладку “Гравика”. В выпадающем списке “Слой изолиний” содержаться названия всех линейных слоёв карты. Из них нужно выбрать тот, который содержит изолинии для построения графика. Значения изолиний программа получает из поля атрибутивных данных. Имя этого поля нужно указать в выпадающем списке “Поле значений изолиний”, расположенном под списком “Слой изолиний”. В нижней части закладки располагается поле “Файл с графиком гравики”. В нём указывается имя шейп-файла, куда будут сохранен построенный график.
Рис.4.7.7. Работа с закладками «Гравика» и «Магнитка» После того, как произведены все настройки, нужно нажать кнопку “Применить”.
Форумы GIS-Lab.info
Как делать разрез (геология), или как повернуть шейп на 90
ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
9 сообщений • Страница 1 из 1
Сообщения: 86 Зарегистрирован: 12 янв 2011, 16:56
Репутация: 1 Откуда: Москва
Как делать разрез (геология), или как повернуть шейп на 90
Сообщение GreatDeal » 10 сен 2013, 10:12
Делаю разрез (геолгоразведка) в ArcGIS 9.3
Вопрос генеральный — какие есть алгоритмы изготовления разрезов ( отрисовка геологических тел, в принципе, экспертная, субъективная).
Вопрос локальный — а как развернуть шейп на 90 град.? Решил просто развернуть шейп с геологией и по линии канавы (линия наблюдений) начать отрисовывать разрез.
Сообщения: 3058 Зарегистрирован: 19 май 2010, 19:44
Репутация: 189
Re: Как делать разрез (геология), или как повернуть шейп на
Сообщение Донецков » 10 сен 2013, 10:59
Да уж, по-моему ArcGIS не есть наиболее удачное средство для отрисовки геологических разрезов. Опять же не ясно в каком масштабе проводятся работы, если инженерно-геологические, то смотреть нужно на CAD, в них можно как вручную, так имеются и всякие примочки для облегчения этого вида работ, потом если очень нужно, то можно результат импортировать в ArcGIS или вставить как растр.
Если картирование в средних и мелких масштабах, то смотрите на рекомендации по оформлению ГГК на сайте ВСЕГЕИ, там что-то и по профилям было. в т.ч. модули для ArcGIS, правда только 9.3.
Сообщения: 86 Зарегистрирован: 12 янв 2011, 16:56
Репутация: 1 Откуда: Москва
Re: Как делать разрез (геология), или как повернуть шейп на
Сообщение GreatDeal » 10 сен 2013, 11:05
Масштаб 1:1000
Модуль ВСЕГЕИ деревянный, там отстраивается рельеф и заготовка под геологию с вертикальными границами.
У подрядчика видел что рисуют в Арквью, довольно удачно.
КАД не интересен, Аркгис все его функции дублирует (отложить линию на заданном расстоянии, под заданным углом и т.д.)
Разрез
Разбивает или переклассифицирует диапазон значений входных ячеек на зоны равных интервалов, равных областей или по естественным границам.
Использование
- Интервальная перекодировка лучше работает с данными, имеющими нормальное распределение. При использовании искаженных входных растровых данных, выходной результат может не содержать все классы, которые вы ожидаете или задаете.
- При использовании метода EQUAL_AREA иногда не все выходные зоны (классы) имеют равное или даже приблизительно соизмеримое количество ячеек. Такой результат объясняется внутренними свойствами алгоритма и может быть связан со свойствами входных значений и заданным количеством зон. Если вы сочтете такой результат нежелательным, можно попробовать использовать меньшее количество зон или применить статистическую трансформацию (например, логарифм или квадратный корень) для ввода данных.
Синтаксис
arcpy.ddd.Slice(in_raster, out_raster, number_zones, , )
Входной переклассифицируемый растр.
out_raster
Выходной переклассифицированный растр.
Выходные данные всегда будут целочисленными.
number_zones
Количество зон для переклассификации входного растра.
Если метод интервальной перекодировки – EQUAL_AREA , выходной растр будет иметь определенное количество зон с одинаковым количеством ячеек в каждой.
Если используется EQUAL_INTERVAL , выходной растр будет иметь определенное количество зон, каждая из которых будет содержать равные диапазоны значений выходного растра.
Если используется NATURAL_BREAKS , выходной растр будет иметь определенное число зон, количество ячеек в каждой из которых определяется границами классов.
slice_type
(Дополнительный)
Метод интервальной перекодировки значений входного растра.
- EQUAL_INTERVAL —Определяет диапазон входных значений и делит диапазон на заданное количество выходных зон. Значения входных ячеек в каждой зоне в перекодированном выходном растре будут разделены на равные интервалы. Используется по умолчанию.
- EQUAL_AREA —Определяет, что входные значения будут разделены на заданное количество выходных зон, при этом все зоны будут состоять из равного количества ячеек. Каждая зона будет представлять одинаковое количество областей.
- NATURAL_BREAKS —Устанавливает, что классы будут созданы на основе естественных групп, определяемых значениями в данных. Разрывы в данных определяются через выбор границ классов, которые наилучшим образом группируют схожие значения и максимизируют разницу между классами. Значения ячеек делятся на классы, границы которых задаются в тех местах, где есть относительно большие скачки в значениях данных.
base_output_zone
(Дополнительный)
Определяет самое низкое значение зоны в выходном наборе растровых данных.
Значение по умолчанию равно 1.
Пример кода
Slice, пример 1 (окно Python)
Переклассификация входного растра на пять классов на основе естественных групп, присущих данным.
import arcpy from arcpy import env env.workspace = "C:/data" arcpy.Slice_3d("elevation", "c:/output/elevslice", 5, "NATURAL_BREAKS")
Slice, пример 2 (автономный скрипт)
Переклассификация входного растра на десять классов на основе естественных групп, присущих данным.
# Name: Slice_3d_Ex_02.py # Description: Slices a range of values of the input cells of a raster by # zones of equal interval or equal area. # Requirements: 3D Analyst Extension # Import system modules import arcpy from arcpy import env # Set environment settings env.workspace = "C:/data" # Set local variables inRaster = "elevation" outRaster = "C:/output/outslice" numberZones = 10 baseOutputZone = 5 # Check out the ArcGIS 3D Analyst extension license arcpy.CheckOutExtension("3D") # Execute Slice arcpy.Slice_3d(inRaster, outRaster, numberZones, "NATURAL_BREAKS", baseOutputZone)
Параметры среды
- Автоматическое подтверждение
- Размер ячейки
- Метод проецирования размера ячейки
- Сжатие
- Текущая рабочая область
- Экстент
- Географические преобразования
- Маска
- Выходное ключевое слово CONFIG
- Выходная система координат
- Временная рабочая область
- Растр привязки
- Размер листа
Информация о лицензиях
- Basic: Требуется 3D Analyst или Spatial Analyst
- Standard: Требуется 3D Analyst или Spatial Analyst
- Advanced: Требуется 3D Analyst или Spatial Analyst
Связанные разделы
- Обзор группы инструментов Переклассификация растра
- Группировка значений в интервалы или по площади с помощью Интервальной перекодировки
Разрез
Разбивает или переклассифицирует диапазон значений входных ячеек на зоны равных интервалов, равных областей или по естественным границам.
Использование
- Интервальная перекодировка лучше работает с данными, имеющими нормальное распределение. При использовании искаженных входных растровых данных, выходной результат может не содержать все классы, которые вы ожидаете или задаете.
- При использовании метода EQUAL_AREA иногда не все выходные зоны (классы) имеют равное или даже приблизительно соизмеримое количество ячеек. Такой результат объясняется внутренними свойствами алгоритма и может быть связан со свойствами входных значений и заданным количеством зон. Если вы сочтете такой результат нежелательным, можно попробовать использовать меньшее количество зон или применить статистическую трансформацию (например, логарифм или квадратный корень) для ввода данных.
- См. раздел Среда анализа и Spatial Analyst для получения дополнительной информации о среде геообработки данного инструмента.
Синтаксис
Slice(in_raster, number_zones, , )
Входной переклассифицируемый растр.
number_zones
Количество зон для переклассификации входного растра.
Если метод интервальной перекодировки – EQUAL_AREA , выходной растр будет иметь определенное количество зон с одинаковым количеством ячеек в каждой.
Если используется EQUAL_INTERVAL , выходной растр будет иметь определенное количество зон, каждая из которых будет содержать равные диапазоны значений выходного растра.
Если используется NATURAL_BREAKS , выходной растр будет иметь определенное число зон, количество ячеек в каждой из которых определяется границами классов.
slice_type
(Дополнительный)
Метод интервальной перекодировки значений входного растра.
- EQUAL_INTERVAL —Определяет диапазон входных значений и делит диапазон на заданное количество выходных зон. Значения входных ячеек в каждой зоне в перекодированном выходном растре будут разделены на равные интервалы. Используется по умолчанию.
- EQUAL_AREA —Определяет, что входные значения будут разделены на заданное количество выходных зон, при этом все зоны будут состоять из равного количества ячеек. Каждая зона будет представлять одинаковое количество областей.
- NATURAL_BREAKS —Устанавливает, что классы будут созданы на основе естественных групп, определяемых значениями в данных. Разрывы в данных определяются через выбор границ классов, которые наилучшим образом группируют схожие значения и максимизируют разницу между классами. Значения ячеек делятся на классы, границы которых задаются в тех местах, где есть относительно большие скачки в значениях данных.
base_output_zone
(Дополнительный)
Определяет самое низкое значение зоны в выходном наборе растровых данных.
Значение по умолчанию равно 1.
Значение отраженного сигнала
Выходной переклассифицированный растр.
Выходные данные всегда будут целочисленными.
Пример кода
Slice, пример 1 (окно Python)
Переклассификация входного растра на пять классов на основе естественных групп, присущих данным.
import arcpy from arcpy import env from arcpy.sa import * env.workspace = "C:/sapyexamples/data" outslice = Slice("elevation", 5, "NATURAL_BREAKS") outslice.save("C:/sapyexamples/output/elev_slice")
Slice, пример 2 (автономный скрипт)
Переклассификация входного растра на десять классов на основе естественных групп, присущих данным.
# Name: Slice_Ex_02.py # Description: Slices a range of values of the input cells of a raster by # zones of equal interval or equal area. # Requirements: Spatial Analyst Extension # Import system modules import arcpy from arcpy import env from arcpy.sa import * # Set environment settings env.workspace = "C:/sapyexamples/data" # Set local variables inRaster = "elevation" numberZones = 10 baseOutputZone = 5 # Check out the ArcGIS Spatial Analyst extension license arcpy.CheckOutExtension("Spatial") # Execute Slice outSlice = Slice(inRaster, numberZones, "NATURAL_BREAKS", baseOutputZone) # Save the output outSlice.save("C:/sapyexamples/output/outslice")
Параметры среды
- Автоматическое подтверждение
- Размер ячейки
- Метод проецирования размера ячейки
- Сжатие
- Текущая рабочая область
- Экстент
- Географические преобразования
- Маска
- Выходное ключевое слово CONFIG
- Выходная система координат
- Временная рабочая область
- Растр привязки
- Размер листа
Информация о лицензиях
- Basic: Требуется Spatial Analyst или 3D Analyst
- Standard: Требуется Spatial Analyst или 3D Analyst
- Advanced: Требуется Spatial Analyst или 3D Analyst
Связанные разделы
- Обзор группы инструментов Переклассификация
- Основы переклассификации
- Группировка значений в интервалы или по площади с помощью Интервальной перекодировки
