Как создавать картограммы смежных областей в QGIS или R?

21

Вот чего я хочу достичь (справа):

http://junkcharts.typepad.com/.a/6a00d8341e992c53ef0162fd6913e8970d-pi

Я ищу инструмент или метод для преобразования шейп-файла (с QGIS или R) в эту форму. И, пожалуйста, имейте в виду: это не просто вырезка шестиугольной сетки или сетки шестиугольников! Каждый шестиугольник должен представлять равное количество мер (например, каждый шестиугольник представляет 5000 деревьев).

Может быть, вы знаете о козле отпущения! http://scapetoad.choros.ch/ Так что я в основном хочу произвести аналогичный вывод scapetoad - но с более ограниченной сеткой (?).

редактировать: упоминание QGis и R не является ограничением - это именно то, где я искал решение. Конечно, я доволен любым инструментом, методом или советом!

Chrugel
источник
4
Название на изображении, на которое вы ссылаетесь, дает вам имя (по крайней мере, в общем); так же, как и заголовок этой страницы scapetoad: это «картограмма». Более конкретно, это (смежная) картограмма области, которая использует гексагональные элементы.
whuber
Эта ссылка была очень полезна для меня в [r]!
2016 г.

Ответы:

7

Немного более удовлетворительная процедура:

  1. Создайте картограмму по методу «на основе диффузии» (например, «козел отпущения»).

    В QGis:

  2. Создайте шестиугольный слой [Плагины> Qmarxan> Создать сетку планирования] (используйте соответствующее / желаемое количество шестиугольников). редактировать: в зависимости от цели карты, сетка Qmarxans может быть сомнительного качества. Mmqgis плагин дает гораздо лучшие результаты (многоугольники выравнивать отлично).

  3. Соедините шестиугольный слой с картограммой [Вектор> Инструменты управления данными> Объединить атрибуты по местоположению]

  4. Теперь новый гексагональный слой имеет все свойства / атрибуты из картограммы, и есть возможность доступа к каждой субъединице индивидуально.

  5. Для лучшего сохранения формы субъединиц возможны некоторые ручные настройки: выберите шестиугольник (и) и измените атрибут (ы) непосредственно в таблице атрибутов. Этот шаг работает лучше всего, если слой является полупрозрачным, а исходная картограмма на основе диффузии показана ниже.

  6. Объединение шестиугольников субъединицы в одну единицу: 1. Выберите все шестиугольники субъединицы (если их много: используйте таблицу атрибутов для выбора). 2. «Переключить редактирование»> «Объединить выбранные объекты».

Главным образом недостаток b) остается - но a) решен, а также в некоторой степени c) больше не является большой проблемой, b / c этот метод не занимает так много времени.

Редактировать: Шаг 4. (и окрашенный впоследствии) приводит к этому результату (прозрачный шестиугольный слой сверху, картограмма «на основе диффузии» ниже): Иллюстрация "границы-проблемы"

Ярко-зеленые шестиугольники явно занимают один ряд многим ...

Есть идеи, как можно добиться лучшего / индивидуального подбора "атрибутов соединения"? - Я ищу метод, чтобы дать алгоритму какой-то порог (например:> 50% площади).

Chrugel
источник
Я могу поручиться за этот подход, я сделал это успешно. Не выработан удовлетворительный способ пространственно соединить гексы с многоугольником, который имеет наибольшее перекрытие; Я подозреваю, что потребуется postgresql / postgis (атрибуты объединения по местоположению просто совпадают с первым, который он находит, что может быть неоптимально)
Стивен Кей,
2

Тем временем я покажу, что моя идея до сих пор:

  1. Создайте картограмму по методу «на основе диффузии» (например, «козел отпущения»).

    В QGis:

  2. Создайте точечный слой [Вектор> Инструменты исследования> Обычные точки].

  3. Зажим точечного слоя с картограммой.

  4. Создайте шестиугольный слой [Плагины> Qmarxan> Создать сетку планирования] (используйте соответствующее / желаемое количество шестиугольников).

  5. Подсчет точек на многоугольник [Вектор> Инструменты анализа> Точки в многоугольнике].

  6. В свойствах слоя гексагонального слоя: примените маркировку на основе правил (или отсечение) [Filter: "PKTCNT"> = 1].

Это все, что у меня есть.

Недостатки:

а) Это всего лишь общая форма (подразделения должны быть переработаны ...)

б) Количество шестиугольников несколько произвольно связано с фактической мерой, и хуже

c) если я хочу изменить единицу измерения (например, вместо 5 000 деревьев на шестиугольник, теперь я хочу 100 000 деревьев на шестиугольник = дальнейшее уменьшение сложности / детализации), я должен снова выполнить всю процедуру.

Chrugel
источник