Применение геоинформационных систем в геоэкологических исследованиях |
Страница 26 из 49
Теперь можно приступать непосредственно к интерполированию. Создаете ли Вы грид, или векторную тему изолиний, грид создаётся всегда, только во втором случае это происходит неявно для пользователя. Изолинии чаще создаются при подготовке иллюстративного материала, гриды могут использоваться для расчетов площадей зон с различными значениями проинтерполированного параметра. Необходимо подчеркнуть, что гриды «не переносят» изменения проекции Вида, изолинии же являются векторными объектами и, так же как и остальные векторные слои, инвариантны по отношению к картографической проекции электронной карты: созданные с помощью модуля Spatial Analyst изолинии «спокойно переносят» изменения проекции. Разумеется, надо чётко сознавать, что форма изолиний зависит от проекции карты, на которой они были построены. Делаем активной тему точек, по значениям в которых необходимо выполнить интерполяцию, затем в окне ArcView делаем активным ниспадающее меню «Surface». В нем есть две опции: «Interpolate Grid» и «Create Contours». При активизации первой запускается процесс явного создания грида, второй – явного создания векторных линейных объектов изолиний. Во втором случае скрытым от пользователя является этап создания грида, поскольку изолинии на самом деле строятся по значениям в ячейках матрицы грида. Внимание! Если в Виде применяется географическая система координат, т.е. координаты объектов и ячеек грида – градусы широты и долготы, а не декартовы координаты картографической проекции, то в ArcView 3.2 невозможно правильно построить изолинии, проходящие через 180-ый меридиан. В этом случае необходимо конвертировать все необходимые слои в проецированные, а затем работать с ними в другом проецированном виде. В этом проецированном Виде (система координат которого – декартовая) следует создать тему грид-маски и выполнять построение грида и изолиний. После активизации опции «Interpolate Grid» появится диалоговое окно «Output Grid Specification» – «Специфика грида», в котором следует задать его параметры. В окне прокрутки «Output Grid Extent» – «Размер грида» следует выбрать «Такой же как грид-маска» («Same as название темы грид-маски»). После этого – нажать «ОК». Только такой вариант задания размеров грида обеспечивает необходимое 100%-ое совпадение создаваемого грида с грид-маской. Далее появляется диалоговое окно «Interpolate Surface». В нем в окне прокрутки «Method» необходимо задать метод интерполяции. В ArcView 3.2 их 2. Метод IDW (Inverse Distance Weight) – «Обратно весу расстояния (ОВР)». Он довольно прозрачен. Суть его в следующем: если точка слоя исходных данных пространственно попадает внутрь ячейки создаваемого грида, то этой ячейке присваивается числовое значение точки. Разумеется, точечный объект может иметь много разных числовых значений, содержащихся в разных числовых полях. Грид строится по значению только одного числового поля. Поэтому в окне прокрутки «Z Value Field» необходимо выбрать это поле, по значениям которого будет выполнена интерполяция. Если ячейка пустая, т.е. ни одна точка внутрь неё не попала, то значение в ячейке будет рассчитано по значениям в ближайших точках. Если включен переключатель «Nearest Neighbors» («Самые ближайшие соседи»), то будут использованы значения в N ближайших точках, а сколь далеко они находятся – неважно. Рассчитываются расстояния до всех точек, и из них отбирается N ближайших. Число ближайших соседей задается в окне «No: of Neighbors». Этот вариант слишком формален: ведь между точками с известными значениями параметра могут быть столь большие расстояния, что интерполяция между ними теряет всякий практический смысл. Поэтому если в каких-то частях карты расстояния между точками измерений слишком велики, более применим метод фиксированного радиуса. В этом случае задаётся критический радиус от пустой ячейки, внутри которого для расчета значения в ячейке используются все попавшие внутрь образованной этим радиусом окружности точки. Для применения этого варианта следует сделать активным переключатель «Fixed Radius». Вместо окна «No: of Neighbors» появится окно «Radius». В нем следует задать размер радиуса от центра ячейки, внутри которого будут отбираться точки для расчёта значения в ячейке. Этот радиус задаётся в единицах карты Вида (Map Units). Разумеется, возможен случай, когда внутрь заданного радиуса не попадёт ни одна точка. В этом случае в соответствующих ячейках созданной матрицы будет честно написано «Нет данных». Естественно, что чем точка ближе к ячейке, тем её влияние на значение в ячейке должно быть больше, чем дальше – тем влияние меньше. В этом и состоит суть метода – интенсивность влияния точек обратно пропорциональна расстоянию до них. Т.е. вес точки определяется обратно пропорционально расстоянию до нее в какой-то степени. Значение степени задаётся в окне «Power». Если задать значение степени, равное 1, то процедура будет близка к линейной интерполяции. Если 2 – то «важность» точек будет обратно пропорциональна квадратам расстояний до них: напрашивается аналогия с законом всемирного тяготения. Если же значение степени задать равным 0, то важность всех ближайших отобранных N точек абсолютно одинакова. При проведении интерполяции по методу ОВР (IDW) мы застрахованы от появления нелепых, не согласующихся со здравым смыслом значений, однако результат – поле распределения непрерывной величины может не быть гладким. Важная особенность метода ОВР (IDW) – значения в ячейках и точках, в них находящихся, абсолютно совпадают. В случае выделяющихся значений, выбросов это приводит к эффекту «бычьего глаза», когда вокруг точки с резко отличающимся от остальных значением в матрице грида формируются зоны ячеек с переходными значениями. Возможен вопрос: «А как быть, если внутрь ячейки попадает более одной точки?» В этом случае следует уменьшить размеры ячеек так, чтобы они были меньше минимального расстояния между точками и, таким образом, внутрь ячеек везде бы попадало не более одной точки. Ещё один используемый в методе ОВР (IDW) параметр – «Barriers» (барьеры). По умолчанию в соответствующем окне прокрутки стоит значение «No Barriers» - «Нет барьеров». Барьеры – это непреодолимые препятствия для интерполяции. Точки с одной стороны барьера не могут влиять на значения ячеек с другой стороны барьера. Пример: имеются данные по Карибскому морю и прилегающей к Панамскому перешейку части Тихого океана. Естественно, что при интерполяции данные, относящиеся к Тихому океану, не могут влиять на значения в Карибском море и наоборот. Аналогичная ситуация с Андаманским морем и Сиамским заливом, разделёнными перешейком Кра и Малайским полуостровом. Другой пример: при интерполяции данных по содержанию в почве, например, азота, следует разграничить пашню и лес. В качестве барьеров используется слой объекты типа Polyline. В случае, если барьер необходим, нужно его создать в качестве нового слоя или импортировать в Вид слой линейных объектов – барьеров («заборов», через которые не может перескочить процесс интерполяции), а затем указать его в диалоговом окне «Interpolate Surface» в качестве барьера. Другой применяемый метод интерполяции – сплайновый (Spline). Это - интерполяция полиномами вида ax + bx2 +cx3 + … + dxn. Отличительная черта этого метода - максимальная гладкость полученного поля. Но за это приходится платить: во-первых, теперь совершенно не обязательно, чтобы значение ячейки совпадало со значением попавшей внутрь ячейки точки. Можно сказать, что здесь «правда искусства важнее правды жизни». Во-вторых, требование максимальной гладкости поля рассчитанных значений может привести к появлению в матрице ячеек с нелепыми, выходящими за рамки допустимых значений числами. Сплайновая интерполяция хороша для создания непрерывных полей плавно изменяющихся параметров, таких, например, как высота точек равнинного рельефа или атмосферное давление, содержание веществ в воде или воздухе для не подверженных сильному антропогенному воздействию районов. Она не подходит в тех случаях, когда на коротких расстояниях могут встречаться резкие изменения значений интерполируемой величины, поскольку результаты в ячейках матрицы могут существенно превзойти возможные значения (т.е. возможны паразитные выбросы, обусловленные расчётной схемой). Тип сплайновой интерполяции может быть «Regularized (Упорядоченный)» или «Tension (Натяжение)». Если выбран этот тип сплайновой интерполяции, то параметры математической функции подгоняются таким образом, чтобы результирующее поле (матрица) ближе всего подходило к определенному числу значений в соседних точках. Число этих точек задаётся в окне «No: of Points». «Regularized (Упорядоченный)» метод порождает сглаженную поверхность. Если выбран этот метод сплайновой интерполяции, то параметр веса, задаваемый в окне «Weight» определяет вес третьей производной от поверхности в выражении минимизации её кривизны. Метод «Tension» «настраивает» жесткость результирующей поверхности в зависимости от характера изменений интерполируемой величины. Здесь параметр «Weight» определяет вес «растяжения» поверхности. Созданный грид автоматически именуется «Surface from», далее идёт имя слоя, по данным которого он был рассчитан. Самое неприятное в пространственной двумерной интерполяции то, что мы в принципе не можем иметь объективного критерия для задания её параметров и определить точность интерполяции. Здесь встречается объективная неопределенность, с которой приходится мириться. После того, как интерполяция выполнена, в нашем распоряжении оказывается слой грида результата. Мы можем его копировать, переименовывать название слоя, редактировать его легенду точно так же, как и для векторных слоёв. В этом заключается его существенное отличие от слоев растровых изображений. Если необходимо построить изолинии, то в качестве источника данных могут выступать как слой точек, атрибутивная таблица которого содержит числовые поля, так и уже созданный по этому слою точек грид. Ход построения и результат будут одинаковы. В начале построения изолиний, так же, как и при создании гридов, пользователь должен указать пространственные характеристики создаваемого неявно грида, поле исходных данных, метод интерполяции и его параметры. Затем на экране появляется диалоговое окно «Contour Parameters», в котором пользователь должен задать числовой интервал («Contour interval») между значениями изолиниями и базовое значение («Base contour»), от которого будет вестись расчёт значений изолиний. Например, если при построении изотерм в качестве интервала задать значение 2, а в качестве базового значения – 0, то построенные изотермы будут представлять собой линии следующих температур: 0, 2, 4, 6 и т.д. Если же в качестве интервала задать 3, а базового значения – 1, то изотермы будут соответствовать температурам 1, 4, 7, 10, 13 и т.д. Пользователь не обязан задавать значения этих параметров, он может согласиться с предложенными компьютером значениями. Базовое значение не обязательно должно входить в интервал наблюдённых значений и соответствовать минимальному значению: компьютер рассчитывает значения изолиний и выше, и ниже базового. Созданный слой типа Polyline имеет название «Contours of» + название точечного слоя, содержащего данные, по которым построены изолинии. Данные созданного слоя изолиний хранятся в шейпфайле с названием ctourN, где N – порядковый номер. Таблица атрибутов созданного слоя содержит два поля семантических характеристик: «Id» - порядковый номер линейного объекта и «Contour», содержащее значение изолинии. Поэтому для подписывания изолиний следует использовать значения из этого поля. |