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

Получение, новые источники, открытость
Ответить
bender
Новоприбывший
Сообщения: 4
Зарегистрирован: 26 апр 2020, 14:25
Репутация: 0
Откуда: Пермь

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

Сообщение bender » 27 апр 2020, 15:12

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

gamm
Гуру
Сообщения: 4044
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1049
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm » 27 апр 2020, 21:02

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

bender
Новоприбывший
Сообщения: 4
Зарегистрирован: 26 апр 2020, 14:25
Репутация: 0
Откуда: Пермь

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

Сообщение bender » 27 апр 2020, 21:27

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

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

gamm
Гуру
Сообщения: 4044
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1049
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm » 28 апр 2020, 09:04

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

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

bender
Новоприбывший
Сообщения: 4
Зарегистрирован: 26 апр 2020, 14:25
Репутация: 0
Откуда: Пермь

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

Сообщение bender » 28 апр 2020, 23:46

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

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

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

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

bender
Новоприбывший
Сообщения: 4
Зарегистрирован: 26 апр 2020, 14:25
Репутация: 0
Откуда: Пермь

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

Сообщение bender » 08 май 2020, 19:22

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

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

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

gamm
Гуру
Сообщения: 4044
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1049
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm » 09 май 2020, 08:28

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

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

Ответить

Вернуться в «Данные»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя