Расчет расстояний (построение буферных зон) с учетом кривизны рельефа
-
- Новоприбывший
- Сообщения: 4
- Зарегистрирован: 26 апр 2020, 14:25
- Репутация: 0
- Откуда: Пермь
Расчет расстояний (построение буферных зон) с учетом кривизны рельефа
Здравствуйте.
Работаю в ArcGIS 10.1. Хочу построить буферные зоны вокруг точечного слоя на заданное расстояние (например, 5 км). При этом, важно чтобы расстояние отсчитывалось не как обычно – просто по горизонтали; а по поверхности ЦМР – то есть, с учетом кривизны рельефа (см. рисунок). То есть, обычная функция ArcToolBox: «Анализ-Близость-Буфер», насколько я понимаю, не подходит. В качестве ЦМР использую растровый фрагмент SRTM 90m DEM Version 4. Конкретно мой кусок доступен по ссылке – http://srtm.csi.cgiar.org/wp-content/up ... _48_01.zip
Подскажите пожалуйста – как построить буферные зоны с учетом кривизны рельефа? Ну или хотя бы как измерять расстояния (от точки до точки) с учетом кривизны рельефа?
P.S. В справке к ArcMAP (https://desktop.arcgis.com/ru/arcmap/10 ... magery.htm) вычитал, что в окне «Анализ изображения (Image Analysis)», включив опцию «Измерение в 3D (Measure in 3D)» можно измерить расстояния как раз по поверхности (естественно при этом в ArcMAP должна быть подгружена ЦМР) .
Но у меня, почему-то строка, в которой надо ставить галочку напротив «Измерить в 3D», просто не активна (см. рисунок).
Работаю в ArcGIS 10.1. Хочу построить буферные зоны вокруг точечного слоя на заданное расстояние (например, 5 км). При этом, важно чтобы расстояние отсчитывалось не как обычно – просто по горизонтали; а по поверхности ЦМР – то есть, с учетом кривизны рельефа (см. рисунок). То есть, обычная функция ArcToolBox: «Анализ-Близость-Буфер», насколько я понимаю, не подходит. В качестве ЦМР использую растровый фрагмент SRTM 90m DEM Version 4. Конкретно мой кусок доступен по ссылке – http://srtm.csi.cgiar.org/wp-content/up ... _48_01.zip
Подскажите пожалуйста – как построить буферные зоны с учетом кривизны рельефа? Ну или хотя бы как измерять расстояния (от точки до точки) с учетом кривизны рельефа?
P.S. В справке к ArcMAP (https://desktop.arcgis.com/ru/arcmap/10 ... magery.htm) вычитал, что в окне «Анализ изображения (Image Analysis)», включив опцию «Измерение в 3D (Measure in 3D)» можно измерить расстояния как раз по поверхности (естественно при этом в ArcMAP должна быть подгружена ЦМР) .
Но у меня, почему-то строка, в которой надо ставить галочку напротив «Измерить в 3D», просто не активна (см. рисунок).
-
- Гуру
- Сообщения: 4057
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: Расчет расстояний (построение буферных зон) с учетом кривизны рельефа
если нужен именно буфер, т.е. кратчайшее расстояние, то нужно делать дистанционное преобразование с сопротивлением (на мелкой сетке), как бы оно там не называлось. Сопротивление равно 1/(cos(slope)), полученное время будет равно пути, и получите примерно то, что нужно. Так считают пешеходную доступность, и пр.
-
- Новоприбывший
- Сообщения: 4
- Зарегистрирован: 26 апр 2020, 14:25
- Репутация: 0
- Откуда: Пермь
Re: Расчет расстояний (построение буферных зон) с учетом кривизны рельефа
gamm, здравствуйте!
Спасибо за совет.
Я видимо не очень ясно выразился. Мне не нужно кратчайшее расстояние.
Нужно очертить зону вокруг точки, где расстояние от точки до края зоны всегда составляет, например, 5 км.
Суть идеи с
Деление горизонтального расстояния на косинус уклона (при небольшом размере ячеек) даст как раз расстояние по рельефу. Вроде так, да?
Но как это технически реализовать (я никогда с пространственными преобразованиями не сталкивался)? Можно ли это сделать инструментами ArcGIS? Или может в какой-то другой ГИС?
Прошу Вас подробнее рассказать...
Спасибо за совет.
Я видимо не очень ясно выразился. Мне не нужно кратчайшее расстояние.
Нужно очертить зону вокруг точки, где расстояние от точки до края зоны всегда составляет, например, 5 км.
Суть идеи с
я вроде бы понимаю.
Деление горизонтального расстояния на косинус уклона (при небольшом размере ячеек) даст как раз расстояние по рельефу. Вроде так, да?
Но как это технически реализовать (я никогда с пространственными преобразованиями не сталкивался)? Можно ли это сделать инструментами ArcGIS? Или может в какой-то другой ГИС?
Прошу Вас подробнее рассказать...
-
- Гуру
- Сообщения: 4057
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: Расчет расстояний (построение буферных зон) с учетом кривизны рельефа
Вы не поняли ответ. Расстояние между двумя точками по рельефу зависит от пути, и кратчайший в проекции путь не будет самым коротким по рельефу. Определитесь для начала, что такое "расстояние до крайней точки", в том варианте, который я описал, это кратчайший путь равный заданному.
Кстати, уже обсуждали https://gis-lab.info/forum/viewtopic.php?t=12577
Реализация в Арке https://desktop.arcgis.com/ru/arcmap/10 ... raster.htm
-
- Новоприбывший
- Сообщения: 4
- Зарегистрирован: 26 апр 2020, 14:25
- Репутация: 0
- Откуда: Пермь
Re: Расчет расстояний (построение буферных зон) с учетом кривизны рельефа
gamm, да сложности изъяснения своих мыслей)). Давайте попробую еще раз изложить то, что мне нужно.
Вы пишите про "кратчайшее расстояние"
Мой случай другой. Траектории между точками искать не надо.
Нужно построить зону (буфер (см. рисунок)) вокруг одной точки, охватывающую 5-километровое пространство по рельефу. То есть, расстояние от точки до края зоны построения должно быть рассчитано, как расстояние на поверхности (как показано на рисунке). Спасибо большое за ссылки! Буду изучать (сейчас создал растр "сопротивления" по вашей формуле:)
Если запутаюсь напишу еще.
Вы пишите про "кратчайшее расстояние"
Из этого у меня складывается впечатление, что вы говорите о ситуации, когда между двумя точками надо найти линию, которая бы соединяла эти точки по самой короткой траектории (по рельефу).gamm писал(а): ↑27 апр 2020, 21:02буфер, т.е. кратчайшее расстояние
Мой случай другой. Траектории между точками искать не надо.
Нужно построить зону (буфер (см. рисунок)) вокруг одной точки, охватывающую 5-километровое пространство по рельефу. То есть, расстояние от точки до края зоны построения должно быть рассчитано, как расстояние на поверхности (как показано на рисунке). Спасибо большое за ссылки! Буду изучать (сейчас создал растр "сопротивления" по вашей формуле:)
gamm писал(а): ↑27 апр 2020, 21:021/(cos(slope))
Если запутаюсь напишу еще.
-
- Новоприбывший
- Сообщения: 4
- Зарегистрирован: 26 апр 2020, 14:25
- Репутация: 0
- Откуда: Пермь
Re: Расчет расстояний (построение буферных зон) с учетом кривизны рельефа
Проанализировал растр "сопротивления" (1/(cos(slope)). Выяснилось, что для моего случая (когда средний уклон местности примерно 3 градуса) разница между длинной по рельефу и длинной просто по горизонтали составляет всего 5,5 м на 5-км дистанци.
В связи с малозначительностью этой разницы от дальнейших расчетов буферных зон пока отказался.
Спасибо за советы!!!
P.S. Если в будущем все-ж-таки соберусь довести это дело до конца, то отчет о результатах выложу здесь.
В связи с малозначительностью этой разницы от дальнейших расчетов буферных зон пока отказался.
Спасибо за советы!!!
P.S. Если в будущем все-ж-таки соберусь довести это дело до конца, то отчет о результатах выложу здесь.
-
- Гуру
- Сообщения: 4057
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: Расчет расстояний (построение буферных зон) с учетом кривизны рельефа
Судя по Вашим картинкам, "по рельефу" означает, что нужно провести из точки прямую в проекции линию, и отсчитать расстояние 5км по профилю, это и даст точку на буфере. Весьма странная постановка - ведь может существовать другой путь, не прямой в проекции, длина которого по рельефу до той же точки менее 5км.
Так, как я написал, весь мир испокон веков и считает, под это же сделаны все инструменты во всех ГИС. Под Вашу постановку готовых инструментов нет, нужно писать программу.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 13 гостей