У меня сложная проблема, которую я пытаюсь решить, используя QGIS и Python.Я попытался разбить его для более простых задач и был бы очень признателен за вашу помощь / совет о том, как решить ее наилучшим образом.Я понимаю, что это слишком много вопросов в одном, но я чувствую, что мне нужно объяснить всю проблему, чтобы найти наилучшие решения для моих подзадач.
Проблема: Я построил карту переменной Z в QGIS, используя интерполяцию.У меня также есть набор контрольных точек (введенных как .shp или через lat, lon), распределенных на карте Z. У меня также есть файл .shp, который представляет определенную область интереса (AOI) на карте Z.
Что я пытаюсь сделать, это:
1. вычислить сумму Z в радиусе 500 футов от контрольных точек И только в пределах AOI
2. вычислить сумму Z в пределах 500-1000Расстояние в футах от контрольных точек (форма кольца вокруг контрольных точек) И только в пределах AOI
Я знаю, как вычислить сумму Z в файле формы, используя v.rast.stats, но здесь есть сложная часть:некоторые точки могут быть ближе, чем на расстоянии 500 футов друг от друга, и в результате, если я сгенерирую полигоны вокруг контрольных точек (например, буфер), у меня могут получиться пересекающиеся многоугольники.И если я применю v.rast.stats для каждого из этих многоугольников, значения Z в зоне пересечения будут посчитаны несколько раз, что не правильно.
Я использовал другое программное обеспечение, которое позволяло заполнять другую дискретную переменную Y в зависимости от расстояния от точки.Y будет иметь значения «1» (в радиусе 500 футов) и «2» (в пределах окна 500-1000 футов).После этого было разрешено применить правило: Z_500 = If (Y = 1, сумма (Z)) и Z_1000 = if (Y = 2, сумма (Z)) в пределах AOI.
Но с QGIS IЯ не уверен, если это возможно.Пока что самое близкое, что я могу придумать, - это создать непересекающиеся многоугольники вокруг моих контрольных точек.Для точек, которые находятся ближе 500 футов, граница должна находиться на среднем расстоянии от этих точек.Но я не знаю, как это реализовать в QGIS.
Буду признателен за помощь / совет, как решить эту проблему.Спасибо