Страница 1 из 1

Расчет расстояний (построение буферных зон) с учетом кривизны рельефа

Добавлено: 27 апр 2020, 15:12
bender
Здравствуйте.
Работаю в ArcGIS 10.1. Хочу построить буферные зоны вокруг точечного слоя на заданное расстояние (например, 5 км). При этом, важно чтобы расстояние отсчитывалось не как обычно – просто по горизонтали; а по поверхности ЦМР – то есть, с учетом кривизны рельефа (см. рисунок). То есть, обычная функция ArcToolBox: «Анализ-Близость-Буфер», насколько я понимаю, не подходит.
Расстояние по рельефу.png
Расстояние по рельефу.png (15.83 КБ) 8679 просмотров
В качестве ЦМР использую растровый фрагмент 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», просто не активна (см. рисунок).
Функция не активна.png
Функция не активна.png (8.37 КБ) 8689 просмотров

Re: Расчет расстояний (построение буферных зон) с учетом кривизны рельефа

Добавлено: 27 апр 2020, 21:02
gamm
если нужен именно буфер, т.е. кратчайшее расстояние, то нужно делать дистанционное преобразование с сопротивлением (на мелкой сетке), как бы оно там не называлось. Сопротивление равно 1/(cos(slope)), полученное время будет равно пути, и получите примерно то, что нужно. Так считают пешеходную доступность, и пр.

Re: Расчет расстояний (построение буферных зон) с учетом кривизны рельефа

Добавлено: 27 апр 2020, 21:27
bender
gamm, здравствуйте!
Спасибо за совет.
Я видимо не очень ясно выразился. Мне не нужно кратчайшее расстояние.
Нужно очертить зону вокруг точки, где расстояние от точки до края зоны всегда составляет, например, 5 км.

Суть идеи с
gamm писал(а):
27 апр 2020, 21:02
нужно делать дистанционное преобразование с сопротивлением (на мелкой сетке), как бы оно там не называлось. Сопротивление равно 1/(cos(slope))
я вроде бы понимаю.
Деление горизонтального расстояния на косинус уклона (при небольшом размере ячеек) даст как раз расстояние по рельефу. Вроде так, да?
Но как это технически реализовать (я никогда с пространственными преобразованиями не сталкивался)? Можно ли это сделать инструментами ArcGIS? Или может в какой-то другой ГИС?
Прошу Вас подробнее рассказать...

Re: Расчет расстояний (построение буферных зон) с учетом кривизны рельефа

Добавлено: 28 апр 2020, 09:04
gamm
bender писал(а):
27 апр 2020, 21:27
Я видимо не очень ясно выразился. Мне не нужно кратчайшее расстояние.
Нужно очертить зону вокруг точки, где расстояние от точки до края зоны всегда составляет, например, 5 км.
Вы не поняли ответ. Расстояние между двумя точками по рельефу зависит от пути, и кратчайший в проекции путь не будет самым коротким по рельефу. Определитесь для начала, что такое "расстояние до крайней точки", в том варианте, который я описал, это кратчайший путь равный заданному.

Кстати, уже обсуждали https://gis-lab.info/forum/viewtopic.php?t=12577
Реализация в Арке https://desktop.arcgis.com/ru/arcmap/10 ... raster.htm

Re: Расчет расстояний (построение буферных зон) с учетом кривизны рельефа

Добавлено: 28 апр 2020, 23:46
bender
gamm, да сложности изъяснения своих мыслей)). Давайте попробую еще раз изложить то, что мне нужно.

Вы пишите про "кратчайшее расстояние"
gamm писал(а):
27 апр 2020, 21:02
буфер, т.е. кратчайшее расстояние
Из этого у меня складывается впечатление, что вы говорите о ситуации, когда между двумя точками надо найти линию, которая бы соединяла эти точки по самой короткой траектории (по рельефу).

Мой случай другой. Траектории между точками искать не надо.
Нужно построить зону (буфер (см. рисунок)) вокруг одной точки, охватывающую 5-километровое пространство по рельефу.
Буфер.png
Буфер.png (10.78 КБ) 8522 просмотра
То есть, расстояние от точки до края зоны построения должно быть рассчитано, как расстояние на поверхности (как показано на рисунке).
Расстояние по рельефу.png
Расстояние по рельефу.png (15.83 КБ) 8522 просмотра
Спасибо большое за ссылки! Буду изучать (сейчас создал растр "сопротивления" по вашей формуле:)
gamm писал(а):
27 апр 2020, 21:02
1/(cos(slope))

Если запутаюсь напишу еще.

Re: Расчет расстояний (построение буферных зон) с учетом кривизны рельефа

Добавлено: 08 май 2020, 19:22
bender
Проанализировал растр "сопротивления" (1/(cos(slope)). Выяснилось, что для моего случая (когда средний уклон местности примерно 3 градуса) разница между длинной по рельефу и длинной просто по горизонтали составляет всего 5,5 м на 5-км дистанци.
В связи с малозначительностью этой разницы от дальнейших расчетов буферных зон пока отказался.

Спасибо за советы!!!

P.S. Если в будущем все-ж-таки соберусь довести это дело до конца, то отчет о результатах выложу здесь.

Re: Расчет расстояний (построение буферных зон) с учетом кривизны рельефа

Добавлено: 09 май 2020, 08:28
gamm
bender писал(а):
28 апр 2020, 23:46
по рельефу.
Судя по Вашим картинкам, "по рельефу" означает, что нужно провести из точки прямую в проекции линию, и отсчитать расстояние 5км по профилю, это и даст точку на буфере. Весьма странная постановка - ведь может существовать другой путь, не прямой в проекции, длина которого по рельефу до той же точки менее 5км.

Так, как я написал, весь мир испокон веков и считает, под это же сделаны все инструменты во всех ГИС. Под Вашу постановку готовых инструментов нет, нужно писать программу.