Интерполяция в ArcGIS
-
- Новоприбывший
- Сообщения: 7
- Зарегистрирован: 04 апр 2019, 19:57
- Репутация: 0
- Откуда: Саратов
Интерполяция в ArcGIS
Всем доброго дня! Прошу помощи в построении интерполированного растра значений глубин водного объекта. Задача состоит в следующем: имеются данные промера глубин участка реки, который проводился по поперечным створам (галсам) с расстоянием между ними в среднем 150 м. Общее количество створов 55. Русло реки извилистое.
Пробовал проводить интерполяцию различными инструментами Интерполяции растра, но получается, если честно, какая я то ерунда. Включал в массив нулевые значения береговой линии, так и пробовал и без них. Пробовал строить растр как в целом по всему участку реки, так и только между двумя створами. Хотелось, чтобы программа автоматически построила (классифицировала) промежуток между двумя створами в виде продольных линий, так как исходные данные очень близкие по значениям.
Конечная цель - подсчитать объем воды при НПУ и построить батиграфическую и объемную кривые.
Пробовал проводить интерполяцию различными инструментами Интерполяции растра, но получается, если честно, какая я то ерунда. Включал в массив нулевые значения береговой линии, так и пробовал и без них. Пробовал строить растр как в целом по всему участку реки, так и только между двумя створами. Хотелось, чтобы программа автоматически построила (классифицировала) промежуток между двумя створами в виде продольных линий, так как исходные данные очень близкие по значениям.
Конечная цель - подсчитать объем воды при НПУ и построить батиграфическую и объемную кривые.
-
- Новоприбывший
- Сообщения: 7
- Зарегистрирован: 04 апр 2019, 19:57
- Репутация: 0
- Откуда: Саратов
Re: Интерполяция в ArcGIS
Что-то похожее дает создание TIN поверхности. Но как вписать ее в конфигурацию реки?
-
- Гуру
- Сообщения: 4064
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1061
- Ваше звание: программист
- Откуда: Казань
Re: Интерполяция в ArcGIS
задача распадается на 2 части: как правильно интерполировать профили, и как это запихнуть в Арку.
Поскольку я не про кнопки, то опишу 1 часть
1) Делаем одномерную систему координат вдоль реки, по расстоянию от начала, обозначим это расстояние D.
2) рисуем все профили как двумерные линии (Х - расстояние от левого берега, Y - глубина), и параметризуем, например ставим точки на профиле по X с равномерным шагом (для примера 20 точек, шаг 1/19 от ширины реки), и, взяв отметки глубины, получаем глубины Y, и соответственно пары (D, Y).
3) Соединяем полученные пары (D, Y), у которых Y взяты в одной позиции, например 2-я точка от берега, прямыми (линейная интерапляция) или сплайнами, или еще как, тогда для произвольного расстояния по длине реки D мы получаем наши 20 отметок Y глубины. Ширина реки нам известны, ставим на линии, соединяющей берега, 20 отметок с равномерным шагом, и рисуем профиль.
Для улучшения картины можено использовать сплайн для профиля, сгустив точки (не забыть поставить нули по берегам), и взять не 20, а 10500 точек.
Таким образом, мы можем построить профиль в произвольном сечении, и перести на произвольную сетку (или сгустить профили, чтобы стояли через метр, а потом интерполировать чем угодно). ПионЭры у нас строили это вообще в Ёкселе, даже Арка не нужна (только для вычисления осевой линии и расстояния от начала).
P.S. В Арке можете получить осевую, расстояние D для ваших и новых профилей (с шагом метр по D), и ширину реки в этом месте, проведя перпендикуляры к осевой, т.е. нарезать много отрезков от берега до берега, сначала построив осевую, а потом обрезав рекой линии, перпендикулярные ей. Дальше эти отрезки, со значением D в таблице данных, вывалить куда-нибудь, и там спокойно посчитать новые профили в координатах карты.
Поскольку я не про кнопки, то опишу 1 часть
1) Делаем одномерную систему координат вдоль реки, по расстоянию от начала, обозначим это расстояние D.
2) рисуем все профили как двумерные линии (Х - расстояние от левого берега, Y - глубина), и параметризуем, например ставим точки на профиле по X с равномерным шагом (для примера 20 точек, шаг 1/19 от ширины реки), и, взяв отметки глубины, получаем глубины Y, и соответственно пары (D, Y).
3) Соединяем полученные пары (D, Y), у которых Y взяты в одной позиции, например 2-я точка от берега, прямыми (линейная интерапляция) или сплайнами, или еще как, тогда для произвольного расстояния по длине реки D мы получаем наши 20 отметок Y глубины. Ширина реки нам известны, ставим на линии, соединяющей берега, 20 отметок с равномерным шагом, и рисуем профиль.
Для улучшения картины можено использовать сплайн для профиля, сгустив точки (не забыть поставить нули по берегам), и взять не 20, а 10500 точек.
Таким образом, мы можем построить профиль в произвольном сечении, и перести на произвольную сетку (или сгустить профили, чтобы стояли через метр, а потом интерполировать чем угодно). ПионЭры у нас строили это вообще в Ёкселе, даже Арка не нужна (только для вычисления осевой линии и расстояния от начала).
P.S. В Арке можете получить осевую, расстояние D для ваших и новых профилей (с шагом метр по D), и ширину реки в этом месте, проведя перпендикуляры к осевой, т.е. нарезать много отрезков от берега до берега, сначала построив осевую, а потом обрезав рекой линии, перпендикулярные ей. Дальше эти отрезки, со значением D в таблице данных, вывалить куда-нибудь, и там спокойно посчитать новые профили в координатах карты.
-
- Новоприбывший
- Сообщения: 7
- Зарегистрирован: 04 апр 2019, 19:57
- Репутация: 0
- Откуда: Саратов
Re: Интерполяция в ArcGIS
Спасибо!
-
- Гуру
- Сообщения: 1018
- Зарегистрирован: 01 авг 2012, 13:55
- Репутация: 241
Re: Интерполяция в ArcGIS
Выложите шейп-файлы точек створов и линии русла реки.
-
- Гуру
- Сообщения: 4064
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1061
- Ваше звание: программист
- Откуда: Казань
Re: Интерполяция в ArcGIS
тогда кнопку давите
P.S. Там могут быть разные нюансы. Например, если один берег залученный, и его залило, то осевую нужно отбивать по фарватеру, и строить от нее два параметрических профиля к берегам. При интерполяции, чтобы вытянуть ее вдоль реки, нужно задавать расстояние D в километрах, а Х - в метрах (или типа того, речь об изменении масштабов по осям). Если профили более-менее одинаковые, можно попробовать подобрать нелинейное преобразование координат по оси Х, зависящее от D, которое совмещает все профили. И т.д., и т.п. Но для первого приближения написанного выше хватит.
-
- Активный участник
- Сообщения: 121
- Зарегистрирован: 10 сен 2012, 08:45
- Репутация: 36
- Откуда: Минск
Re: Интерполяция в ArcGIS
А еще можно освоить что-нибудь типа такого:
https://web.ics.purdue.edu/~vmerwade/re ... al_10x.pdf
https://web.ics.purdue.edu/~vmerwade/re ... al_10x.pdf
Кто сейчас на конференции
Сейчас этот форум просматривают: Ahrefs [Bot], Bing [Bot] и 3 гостя