Построение батиметрической карты водоема

Материал из GIS-Lab
Перейти к навигации Перейти к поиску

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

Используемые программы: ArcGIS 10.2, Global Mapper 14, SAS.Планета, MS Excell 2010.

1. Получение файла с точками XYZ - долгота, широта, глубина.

Предполагается наличие точек с глубинами, снятыми с помощью эхолота, либо по старинке - веревкой с грузом в одной руке, gps приемником в другой. Если в последнем случае файл можно создать ручками, то во втором случае придется их извлекать из файлов эхолота. В конкретном случае рассмотрим извлечение точек из эхолота Lowrance MARK-4, возможно этот способ подойдет и для файлов других форматов других эхолотов благодаря всеядности программы Global Mapper.

1.1. В Global Mapper открываем формат lowrance .usr и экспортируем вектор в формате .csv (Файл->Экспорт векторов…). При экспорте снимаем галку "Формат шир/долг"

1.2. У получившегося .csv файла меняем расширение на .txt, открываем в блокноте, и заменяем запятые на точки с запятой, точки в числах на запятые. Сохраняем и открываем в Excel. Он предлагает данные разбить на столбцы. Указываем "с разделителями", качестве разделителей - точка с запятой (;). Т.к. в некоторых случаях глубина указана в футах (как в нашем), то делаем отдельный столбец в метрах, для этого значение в футах умножаем на 0,3048. Удаляем все лишнее, кроме долготы, широты и глубины. Удаляем некорректные точки с очевидно неправильной глубиной. Сохраняем в формат Excell 1997-2003 (.xls). Все. Теперь у нас есть точки с глубинами.

1.3. Теперь необходимо создать периметр озера в виде точек, имеющих нулевую глубину. Для этого скачиваем с помощю SAS.Планета наиболее детализированный космоснимок интересующего водоема. Сохраняем в ECW. Затем изменим его систему координат в WGS 1984: открывает его в Global Mapper'е. В настройках программы (Инструменты->Настройка->Проекция) указываем проекцию Geographic (Latitude/Longitude), СК: WGS84, и экспортируем в формат GeoTIFF (Файл->Экспорт->Экспорт растров…). Здесь стоит упомянуть, что называть файлы лучше на латинице без пробелов, также гарантированно работают цифры и знак нижнее подчеркивание(_), т.к. ArcGIS критично относится к этому. И путь к файлу лучше чтобы был также на латинице. Открываем получившийся файл в ArcGIS. Видим озеро немного искаженным - т.к. пока оно у нас в не спроецированной системе координат. Открываем точки с глубинами, который мы готовили в формате .xls. Присваиваем им значения долготы-широты (правой кнопкой мыши по таблице->Отобразить данные XY…), указываем в каком поле долгота, широта и глубина. СК: GCS_WGS_1984. Получаем точки которые лежат как бы в воде. Зачастую привязка скачанного снимка неточная, поэтому делаем его перепривязку, основываясь на точках с глубинами: вызываем панель Пространственная привязка (правой кнопкой мыши по пустому полю справа от меню->Пространсвенная привязка). Затем, смотрим рис. ниже, где: 1 - выбираем растр, который будем двигать, 2 - добавляем опорные точки: для этого сначала щелкаем по тому место (точке), которое нужно переместить, потом щелкаем туда, куда это место (точку) нужно подвинуть, основываясь на точках с глубинами, чтобы они не выходили на берег и стояли примерно там, где вы их ставили в натуре. 3 - выбираем Трансформировать - сохраняем растр.

Batim1.jpg

Теперь, когда водоем пододвинут под точки глубин, рисуем периметр озера точками: в ArcCatalog создаем новый шейп-файл (по папке в дереве каталогов щелкаем правой кнопкой мыши->Новый->Шейп-файл...) Тип: точка, система координат: GCS_WGS_1984. Затем 2 раза щелкаем по получившемуся файлу – переходим в закладку Поля, добавляем 2 поля Lat и Long, тип поля - float. Нажимаем Ок. Перетаскиваем шейп а ArcMap. Создаем точки по периметру берега (правой кнопкой мыши по слою->Редактировать объекты->Начать редактирование, в правой части окна должно появиться окно Создать объекты, если не появилось - в меню Редактор, которое может быть в виде маленького окна выбираем Редактор->Окна редактирования->Создать объекты). После того, как создали точки, присваиваем полям Lat и Long соответственно координаты: правой кнопкой по слою в левом меню->Открыть таблицу атрибутов. Здесь правой кнопкой мыши по заглавию столбца->Вычислить геометрию, в открывшемся окне выбираем соответственно для столбца Lat - x, для Long - y. нажимаем Ок. Затем в меню Редактор выбираем Редактор->Завершить редактирование - тем самым сохраняем шейп. Затем данные по периметру экспортируем в Excell: Нажимаем кнопку ArcToolBox (обычно 5 кнопка в меню правее масштаба), здесь в дереве инструментов выбираем Конвертация->Excell->Таблица в Excell, перетаскиваем в пункт Входная таблица таблицу с периметром, в пункте выходной файл Excell указываем куда сохранять.

1.4. Формируем в одном Excell файле массив точек, состоящий из точек периметра и глубин.

2. Построение по точкам поверхности

2.1. Загружаем лист файла Excell в ArcMap. присваиваем, как говорилось выше, точкам координаты и глубину (СК: GCS_WGS_1984). Устанавливаем проекцию вида (двойной щелчок мыши по слову Слои в левом меню слоев, закладка Системы координат) проекцию WGS_1984_UTM_Zone_??N: Системы координат проекции->UTM->WGS1984->Северное полушарие->WGS 1984 UTM Zone ??N, где вместо ?? выбираете ту, где лежит водоем.

2.2. Экспортируем в шейп-файл: правой кнопкой мыши по слою->Данные->Экспорт данных. Ставим точку в пункте Фрейма данных, и выбираем путь куда сохранить шейп. Подгружаем шейп на карту.

2.3. Выбираем в ArcToolBox: Инструменты 3D Analyst->Интерполяция растра->Топо в растр. Во входные данные перетаскиваем наш шейп-файл, он отобразится в таблице ниже. В столбце "Поле" указываем столбец, где хранятся данные по глубинам (обычно третий столбец), в столбце "Поле" выбираем PointElevation. Указываем выходную растровую поверхность (вручную вбиваем название файла файл с расширением .tif), указываем размер выходной ячейки (лучше выбирать поменьше чем предложено, в зависимости от размера водоема). Нажимаем ОК - растр готов.

3. Визуализация полученного растра.

3.1. Разукрашивание в зависимости от глубины. Двойной щелчок по растру в левом окне, откроется окно Свойство слоя, переходим на закладку Символы. В левом поле выбираем Классификация, нажимаем на кнопку Классификация, указываем в выпадающем меню Заданный интервал цифру в метрах - через какой интервал разукрашивать поверхность. Нажимаем Ок. Здесь же можно выбрать цветовую схему из предложенных. Нажимаем Ок. Как видно, поверхность у нас продолжается за периметром озера. Чтобы сделать ее прозрачной, два раза щелкаем по цветному прямоугольнику в меню слоев слева, который соответствует высоте за периметром озера, в открывшемся окне выбираем закладку Свойства, и ставим галочку напротив пункта Прозрачный цвет.

3.2. Создание изолиний. ArcToolBox->Инструменты Spatial Analyst->Поверхность->Изолинии. Во Входной растр перетаскиваем наш растр, указываем файл shape на выходе, и интервал, через который будут нарисованы изолинии (обычно это тот же интервал, что и в предыдущим пункте). Нажимаем Ок - изолинии готовы. Подписать их можно дважды щелкнув по слою изолиний в левом окне, выбрав закладку подписи. Обычно значения высот лежат в поле CONTOUR.

3.3. Создание карты для публикации. Переходим в вид компоновки: Вид->Компоновка. Масштабируем, передвигаем для лучшего представления карту. Делаем подписи. Вставляем градусную сетку: двойной щелчок по слову Слои в левом меню, закладка Сетки, нажимаем Новая сетка. Далее по пунктам оформляем ее. Через пункт меню Вставка вставляем легенду, масштабную линейку. Батиметрическая карта готова! Можно экспортировать: Файл-Экспорт карты.

Batim2.JPG

P.S. Особая благодарность за помощь taimyr

Автор О. Артаев