Построение батиметрической карты водоема: различия между версиями
Siygal (обсуждение | вклад) мНет описания правки |
Siygal (обсуждение | вклад) мНет описания правки |
||
Строка 1: | Строка 1: | ||
''Данная статья рассчитана на новичка, который практически не имеет опыта использования специализированных ГИС программ, а по факту имеет только точки с координатами и глубинами.'' | ''Данная статья рассчитана на новичка, который практически не имеет опыта использования специализированных ГИС программ, а по факту имеет только точки с координатами и глубинами.'' | ||
Используемые программы: | Используемые программы: ArcGis 10.2, Global Mapper 14, SAS.Планета, MS Excel 2010. | ||
'''1. Получение файла с точками XYZ - долгота, широта, глубина.''' | '''1. Получение файла с точками XYZ - долгота, широта, глубина.''' | ||
Строка 7: | Строка 7: | ||
Предполагается наличие точек с глубинами, снятыми с помощью эхолота, либо по старинке - веревкой с грузом в одной руке, gps приемником в другой. Если в последнем случае файл можно создать ручками, то во втором случае придется их извлекать из файлов эхолота. В конкретном случае рассмотрим извлечение точек из эхолота Lowrance MARK-4, возможно этот способ подойдет и для файлов других форматов других эхолотов благодаря всеядности программы ''Global Mapper''. | Предполагается наличие точек с глубинами, снятыми с помощью эхолота, либо по старинке - веревкой с грузом в одной руке, gps приемником в другой. Если в последнем случае файл можно создать ручками, то во втором случае придется их извлекать из файлов эхолота. В конкретном случае рассмотрим извлечение точек из эхолота Lowrance MARK-4, возможно этот способ подойдет и для файлов других форматов других эхолотов благодаря всеядности программы ''Global Mapper''. | ||
'''1.1.''' В ''Global Mapper'' открываем формат lowrance .usr и экспортируем вектор в формате .csv (Файл->Экспорт векторов…). При экспорте снимаем галку "Формат шир/долг" | '''1.1.''' В ''Global Mapper'' открываем формат lowrance .usr и экспортируем вектор в формате .csv (''Файл->Экспорт векторов…''). При экспорте снимаем галку "''Формат шир/долг''" | ||
'''1.2.''' У получившегося .csv файла меняем расширение на .txt, открываем в блокноте, и заменяем запятые на точки с запятой, точки в числах на запятые. Сохраняем и открываем в ''Excel''. Он предлагает данные разбить на столбцы. Указываем | '''1.2.''' У получившегося .csv файла меняем расширение на .txt, открываем в блокноте, и заменяем запятые на точки с запятой, точки в числах на запятые. Сохраняем и открываем в ''Excel''. Он предлагает данные разбить на столбцы. Указываем ''с разделителями'', качестве разделителей - ''точка с запятой (;)''. Т.к. в некоторых случаях глубина указана в футах (как в нашем), то делаем отдельный столбец в метрах, для этого значение в футах умножаем на 0,3048. Удаляем все лишнее, кроме долготы, широты и глубины. Удаляем некорректные точки с очевидно неправильной глубиной. Сохраняем в формат ''Excel 1997-2003 (.xls)''. Все. Теперь у нас есть точки с глубинами. | ||
'''1.3.''' Теперь необходимо создать периметр озера в виде точек, имеющих нулевую глубину. Для этого скачиваем с | '''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|link=http://wiki.gis-lab.info/images/c/cc/Batim1.jpg]] | [[Файл:Batim1.jpg|link=http://wiki.gis-lab.info/images/c/cc/Batim1.jpg]] | ||
Теперь, когда водоем пододвинут под точки глубин, рисуем периметр озера точками: в ArcCatalog создаем новый шейп-файл (по папке в дереве каталогов щелкаем правой кнопкой мыши->Новый->Шейп-файл...) Тип: точка, система координат: GCS_WGS_1984. Затем 2 раза щелкаем по получившемуся файлу – переходим в закладку Поля, добавляем 2 поля Lat и Long, тип поля - float. Нажимаем Ок. Перетаскиваем шейп а ArcMap. Создаем точки по периметру берега (правой кнопкой мыши по слою->Редактировать объекты->Начать редактирование, в правой части окна должно появиться окно Создать объекты, если не появилось - в меню Редактор, которое может быть в виде маленького окна выбираем Редактор->Окна редактирования->Создать объекты). После того, как создали точки, присваиваем полям Lat и Long соответственно координаты: правой кнопкой по слою в левом меню->Открыть таблицу атрибутов. Здесь правой кнопкой мыши по заглавию столбца->Вычислить геометрию, в открывшемся окне выбираем соответственно для столбца Lat - x, для Long - y. нажимаем Ок. Затем в меню Редактор выбираем Редактор->Завершить редактирование - тем самым сохраняем шейп. Затем данные по периметру экспортируем в | Теперь, когда водоем пододвинут под точки глубин, рисуем периметр озера точками: в ''ArcCatalog'' создаем новый шейп-файл (по папке в дереве каталогов щелкаем ''правой кнопкой мыши->Новый->Шейп-файл...'') Тип: точка, система координат: GCS_WGS_1984. Затем 2 раза щелкаем по получившемуся файлу – переходим в закладку ''Поля'', добавляем 2 поля Lat и Long, тип поля - ''float''. Нажимаем Ок. Перетаскиваем шейп а ''ArcMap''. Создаем точки по периметру берега (''правой кнопкой мыши по слою->Редактировать объекты->Начать редактирование'', в правой части окна должно появиться окно ''Создать объекты'', если не появилось - в меню ''Редактор'', которое может быть в виде маленького окна выбираем ''Редактор->Окна редактирования->Создать объекты''). После того, как создали точки, присваиваем полям Lat и Long соответственно координаты: ''правой кнопкой по слою в левом меню->Открыть таблицу атрибутов''. Здесь ''правой кнопкой мыши по заглавию столбца->Вычислить геометрию'', в открывшемся окне выбираем соответственно для столбца Lat - x, для Long - y. нажимаем Ок. Затем в меню ''Редактор'' выбираем ''Редактор->Завершить редактирование'' - тем самым сохраняем шейп. Затем данные по периметру экспортируем в ''Excel'': Нажимаем кнопку ''ArcToolBox'' (обычно 5 кнопка в меню правее масштаба), здесь в дереве инструментов выбираем ''Конвертация->Excel->Таблица в Excel'', перетаскиваем в пункт ''Входная таблица'' таблицу с периметром, в пункте ''Выходной файл Excel'' указываем куда сохранять. | ||
'''1.4.''' Формируем в одном | '''1.4.''' Формируем в одном Excel файле массив точек, состоящий из точек периметра и глубин. | ||
'''2. Построение по точкам поверхности''' | '''2. Построение по точкам поверхности''' | ||
'''2.1.''' Загружаем лист файла | '''2.1.''' Загружаем лист файла Excel в ''ArcMap''. присваиваем, как говорилось выше, точкам координаты и глубину (''СК: GCS_WGS_1984''). Устанавливаем проекцию вида (двойной щелчок мыши по слову ''Слои'' в левом меню слоев, закладка ''Системы координат'') проекцию WGS_1984_UTM_Zone_??N: ''Системы координат проекции->UTM->WGS1984->Северное полушарие->WGS 1984 UTM Zone ??N'', где вместо ?? выбираете ту, где лежит водоем. | ||
'''2.2.''' Экспортируем в шейп-файл: правой кнопкой мыши по слою->Данные->Экспорт данных. Ставим точку в пункте Фрейма данных, и выбираем путь куда сохранить шейп. Подгружаем шейп на карту. | '''2.2.''' Экспортируем в шейп-файл: ''правой кнопкой мыши по слою->Данные->Экспорт данных''. Ставим точку в пункте ''Фрейма данных'', и выбираем путь куда сохранить шейп. Подгружаем шейп на карту. | ||
'''2.3.''' Выбираем в ArcToolBox: Инструменты 3D Analyst->Интерполяция растра->Топо в растр. Во входные данные перетаскиваем наш шейп-файл, он отобразится в таблице ниже. В столбце "Поле" указываем столбец, где хранятся данные по глубинам (обычно третий столбец), в столбце "Поле" выбираем PointElevation. Указываем выходную растровую поверхность (вручную вбиваем название файла файл с расширением .tif), указываем размер выходной ячейки (лучше выбирать поменьше чем предложено, в зависимости от размера водоема). Нажимаем ОК - растр готов. | '''2.3.''' Выбираем в ''ArcToolBox'': ''Инструменты 3D Analyst->Интерполяция растра->Топо в растр''. Во входные данные перетаскиваем наш шейп-файл, он отобразится в таблице ниже. В столбце "Поле" указываем столбец, где хранятся данные по глубинам (обычно третий столбец), в столбце "Поле" выбираем ''PointElevation''. Указываем выходную растровую поверхность (вручную вбиваем название файла файл с расширением .tif), указываем размер выходной ячейки (лучше выбирать поменьше чем предложено, в зависимости от размера водоема). Нажимаем ОК - растр готов. | ||
'''3. Визуализация полученного растра.''' | '''3. Визуализация полученного растра.''' | ||
'''3.1.''' Разукрашивание в зависимости от глубины. Двойной щелчок по растру в левом окне, откроется окно Свойство слоя, переходим на закладку Символы. В левом поле выбираем Классификация, нажимаем на кнопку Классификация, указываем в выпадающем меню Заданный интервал цифру в метрах - через какой интервал разукрашивать поверхность. Нажимаем Ок. Здесь же можно выбрать цветовую схему из предложенных. Нажимаем Ок. | '''3.1.''' Разукрашивание в зависимости от глубины. Двойной щелчок по растру в левом окне, откроется окно ''Свойство слоя'', переходим на закладку ''Символы''. В левом поле выбираем ''Классификация'', нажимаем на кнопку ''Классификация'', указываем в выпадающем меню ''Заданный интервал'' цифру в метрах - через какой интервал разукрашивать поверхность. Нажимаем Ок. Здесь же можно выбрать цветовую схему из предложенных. Нажимаем Ок. | ||
Как видно, поверхность у нас продолжается за периметром озера. Чтобы сделать ее прозрачной, два раза щелкаем по цветному прямоугольнику в меню слоев слева, который соответствует высоте за периметром озера, в открывшемся окне выбираем закладку Свойства, и ставим галочку напротив пункта Прозрачный цвет. | Как видно, поверхность у нас продолжается за периметром озера. Чтобы сделать ее прозрачной, два раза щелкаем по цветному прямоугольнику в меню слоев слева, который соответствует высоте за периметром озера, в открывшемся окне выбираем закладку ''Свойства'', и ставим галочку напротив пункта ''Прозрачный цвет''. | ||
'''3.2.''' Создание изолиний. ArcToolBox->Инструменты Spatial | '''3.2.''' Создание изолиний. ''ArcToolBox->Инструменты Spatial Alyst->Поверхность->Изолинии''. Во Входной растр перетаскиваем наш растр, указываем файл shape на выходе, и интервал, через который будут нарисованы изолинии (обычно это тот же интервал, что и в предыдущим пункте). Нажимаем Ок - изолинии готовы. Подписать их можно дважды щелкнув по слою изолиний в левом окне, выбрав закладку ''подписи''. Обычно значения высот лежат в поле CONTOUR. | ||
'''3.3.''' Создание карты для публикации. | '''3.3.''' Создание карты для публикации. | ||
Переходим в вид компоновки: Вид->Компоновка. Масштабируем, передвигаем для лучшего представления карту. Делаем подписи. Вставляем градусную сетку: двойной щелчок по слову Слои в левом меню, закладка Сетки, нажимаем Новая сетка. Далее по пунктам оформляем ее. Через пункт меню Вставка вставляем легенду, масштабную линейку. Батиметрическая карта готова! Можно экспортировать: Файл-Экспорт карты. | Переходим в вид компоновки: ''Вид->Компоновка''. Масштабируем, передвигаем для лучшего представления карту. Делаем подписи. Вставляем градусную сетку: двойной щелчок по слову ''Слои'' в левом меню, закладка ''Сетки'', нажимаем ''Новая сетка''. Далее по пунктам оформляем ее. Через пункт меню ''Вставка'' вставляем легенду, масштабную линейку. Батиметрическая карта готова! Можно экспортировать: ''Файл-Экспорт карты''. | ||
[[Файл:Batim2.JPG|link=http://wiki.gis-lab.info/images/3/35/Batim2.JPG]] | [[Файл:Batim2.JPG|link=http://wiki.gis-lab.info/images/3/35/Batim2.JPG]] |
Версия от 11:59, 4 апреля 2014
Данная статья рассчитана на новичка, который практически не имеет опыта использования специализированных ГИС программ, а по факту имеет только точки с координатами и глубинами.
Используемые программы: ArcGis 10.2, Global Mapper 14, SAS.Планета, MS Excel 2010.
1. Получение файла с точками XYZ - долгота, широта, глубина.
Предполагается наличие точек с глубинами, снятыми с помощью эхолота, либо по старинке - веревкой с грузом в одной руке, gps приемником в другой. Если в последнем случае файл можно создать ручками, то во втором случае придется их извлекать из файлов эхолота. В конкретном случае рассмотрим извлечение точек из эхолота Lowrance MARK-4, возможно этот способ подойдет и для файлов других форматов других эхолотов благодаря всеядности программы Global Mapper.
1.1. В Global Mapper открываем формат lowrance .usr и экспортируем вектор в формате .csv (Файл->Экспорт векторов…). При экспорте снимаем галку "Формат шир/долг"
1.2. У получившегося .csv файла меняем расширение на .txt, открываем в блокноте, и заменяем запятые на точки с запятой, точки в числах на запятые. Сохраняем и открываем в Excel. Он предлагает данные разбить на столбцы. Указываем с разделителями, качестве разделителей - точка с запятой (;). Т.к. в некоторых случаях глубина указана в футах (как в нашем), то делаем отдельный столбец в метрах, для этого значение в футах умножаем на 0,3048. Удаляем все лишнее, кроме долготы, широты и глубины. Удаляем некорректные точки с очевидно неправильной глубиной. Сохраняем в формат Excel 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 - выбираем Трансформировать - сохраняем растр.
Теперь, когда водоем пододвинут под точки глубин, рисуем периметр озера точками: в ArcCatalog создаем новый шейп-файл (по папке в дереве каталогов щелкаем правой кнопкой мыши->Новый->Шейп-файл...) Тип: точка, система координат: GCS_WGS_1984. Затем 2 раза щелкаем по получившемуся файлу – переходим в закладку Поля, добавляем 2 поля Lat и Long, тип поля - float. Нажимаем Ок. Перетаскиваем шейп а ArcMap. Создаем точки по периметру берега (правой кнопкой мыши по слою->Редактировать объекты->Начать редактирование, в правой части окна должно появиться окно Создать объекты, если не появилось - в меню Редактор, которое может быть в виде маленького окна выбираем Редактор->Окна редактирования->Создать объекты). После того, как создали точки, присваиваем полям Lat и Long соответственно координаты: правой кнопкой по слою в левом меню->Открыть таблицу атрибутов. Здесь правой кнопкой мыши по заглавию столбца->Вычислить геометрию, в открывшемся окне выбираем соответственно для столбца Lat - x, для Long - y. нажимаем Ок. Затем в меню Редактор выбираем Редактор->Завершить редактирование - тем самым сохраняем шейп. Затем данные по периметру экспортируем в Excel: Нажимаем кнопку ArcToolBox (обычно 5 кнопка в меню правее масштаба), здесь в дереве инструментов выбираем Конвертация->Excel->Таблица в Excel, перетаскиваем в пункт Входная таблица таблицу с периметром, в пункте Выходной файл Excel указываем куда сохранять.
1.4. Формируем в одном Excel файле массив точек, состоящий из точек периметра и глубин.
2. Построение по точкам поверхности
2.1. Загружаем лист файла Excel в 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 Alyst->Поверхность->Изолинии. Во Входной растр перетаскиваем наш растр, указываем файл shape на выходе, и интервал, через который будут нарисованы изолинии (обычно это тот же интервал, что и в предыдущим пункте). Нажимаем Ок - изолинии готовы. Подписать их можно дважды щелкнув по слою изолиний в левом окне, выбрав закладку подписи. Обычно значения высот лежат в поле CONTOUR.
3.3. Создание карты для публикации. Переходим в вид компоновки: Вид->Компоновка. Масштабируем, передвигаем для лучшего представления карту. Делаем подписи. Вставляем градусную сетку: двойной щелчок по слову Слои в левом меню, закладка Сетки, нажимаем Новая сетка. Далее по пунктам оформляем ее. Через пункт меню Вставка вставляем легенду, масштабную линейку. Батиметрическая карта готова! Можно экспортировать: Файл-Экспорт карты.
P.S. Особая благодарность за помощь taimyr
Автор О. Артаев