Генерализация точечных данных полигональной сеткой
по адресу http://gis-lab.info/qa/pnt-grid-gen.html
В статье рассматривается метод генерализации точеных данных с помощью заранее расчитанной полигональной сетки
Генерализация проводится путем осреднения значений точек, находящихся в определенной окрестности. В качестве окрестности может применяться любая полигональная тема. В примере показана генерализация значений высот, в принципе усредняться могут любые другие значения.
Создание полигональной сетки с определенным размером ячейки
Перед началом генерализации необходимо определиться с размером ячейки генерализации. Например, если пространственная точность данных 0.06°, т.е. точки shape-файла находятся на этом расстоянии друг от друга, а нужно генерализовать до 0.25°, то размер ячейки создаваемой сетки должен быть равен 0.25°. Сетку строим в географической системе координат (geographic coordinate system), а потом, если необходимо, ее можно перевести в систему координат генерализуемого shape-файла (подробнее о том, как создать сетку).
Наложение сетки на генерализуемую точечную тему
Полученную сетку мы будем использовать для генерализации на нее данных.
По шагам:
1. Добавляем в вид тему с точками и тему с координатной сеткой (View\Add theme… или кнопкой )
2. Выделяем тему с координатной сеткой
3. Добавляем в проект скрипт расчета плотности точек (как добавлять скрипты), (скачать скрипт).
4. В тексте скрипта исправляем название поля точечного shape-файла, в котором хранятся атрибуты. В скрипте это отмечено звездочками:
5. Запускаем скрипт. В результате его работы в атрибутивной таблице полигональной темы появится новое поле, содержащее среднее значение атрибута точечного shape-файла для каждой ячейки полигональной координатной сетки. Это и есть новое атрибутивное значение каждой точки нового генерализованного shape-файла. Если ни одной точки не «попало» в полигон значение будет равно нулю.
Создание новой генерализованной точечной темы
Для получения нового точечного файла, который будет представлять генерализованный результат из полигонального, полученного на предыдущем этапе, необходимо рассчитать координаты центроидов каждого полигона сетки, что и будет являться координатами точек нового шейпа. Далее, процесс организован так же как и импорт таблиц в виде текстовых данных с разделителем, только в качестве таблицы используется dbf-файл полигональной темы.
По шагам:
- Создаем два новых поля, в которых будет храниться центроид каждого полигона (ячейки сетки)
- Расчет центроидов полигонов
- Экспортируем обновленную атрибутивную таблицу: открываем таблицу, File\Export…\
- Загружаем отдельно эту таблицу через пункт Tables менеджера проекта.
- Переходим в Вид
- Создаем новую точечную тему: View\Add event theme, выбираем поля соответствующие X и Y, созданные в процессе расчета центроидов.
- Если необходимо, удаляем лишние поля атрибутивной таблицы и строки с нулевыми значениями.
- Сохраняем как новую тему: Theme\Convert to Shapefile