Делать шейп-файл на уровне округа из набора точек на расстоянии 30 x 30 км, используя ArcGIS for Desktop?

9

У меня есть набор данных в форме CSV, например:

latitude, longitude, value
-45, 45, 10
....

Я хотел бы рассчитать средние уровни округа на основе этих данных, используя ArcGIS или R + grass.

У меня есть слой ArcGIS USA Counties, но я не смог успешно выполнить пространственное соединение.

Как я могу это сделать?

Abe
источник

Ответы:

4

Рабочий процесс, используемый для создания файла формы уровня округа со средним значением (z) в каждом округе из таблицы данных xyz в ArcGIS

обратите внимание, что это основано на предложении @ MLowry, добавляя почти пошаговые инструкции.


Откройте ArcCatalog

  1. создать новую персональную базу геоданных (например, foo.mdb)
  2. файл -> новый -> личная база геоданных
  3. добавить данные

    • щелкните правой кнопкой мыши на map.csv -> экспорт в базу геоданных (одиночный) -> foo.mdb
    • щелкните правой кнопкой мыши на counties.lyr -> экспорт в базу геоданных (одиночный) -> foo.mdb
  4. создать класс объектов (файлы .shp) из таблицы xy

    • открыть foo.mdb
    • щелкните правой кнопкой мыши таблицу map.csv -> создайте класс объектов из xytable
    • поля ввода x = lon, y = lat, z = yield
    • система координат входных координат импорта -> из counties.lyr (или, что то же самое, -> географическое .. -> мир -> wgs_1984 -> открыть -> хорошо)
  5. импортировать классы объектов в базу геоданных (несколько)

    • выберите shp файлы, созданные в пред. шаг -> добавить -> хорошо

Откройте ArcMap

  1. Добавить данные

    • выберите foo.mdb -> CTL + выберите таблицы -> открыть
  2. Пространственное соединение

    • ArcToolbox -> Инструменты анализа -> Наложение -> Пространственное соединение ->
    • Целевые характеристики: counties.lyr
    • Присоединиться Особенности: XYZ Таблица карт
    • Выходной класс объектов: filename_spatialjoin
    • Операция присоединения: JOIN_ONE_TO_ONE
    • Вариант соответствия: ближайший
    • Карта полей функций объединения: удалите ненужные поля (только STATE_FIPS, CNTY_FIPS, требуются z-значения
    • Радиус поиска: 30 км
    • щелчок OK
    • Значение Z = доходность; выберите «среднее» (или альтернативную статистику)
David
источник
@ Дэвид Спасибо за подробный ответ ... придется проверить его.
Абэ
@Abe не стесняйтесь редактировать, когда вы делаете. Я сделал это CW
Дэвид Лебауэр
@ Дэвид В этом случае IDW будет давать неверные результаты для зональной статистики: см. Обсуждение после ответа @ scw.
whuber
@whuber. Спасибо что подметил это. К тому времени, как я закончил, я забыл, что первоначальной целью было сделать пространственное соединение точек с округами; фиксированный.
Дэвид Лебауэр
@ Дэвид Спасибо. Но сейчас я в замешательстве. Во-первых, где в этом рабочем процессе вы фактически создаете «растровый слой», как объявляет ваш заголовок? Во-вторых, как получаются три слоя? Файл CSV просто представляет набор точек (x, y), каждая из которых имеет один числовой атрибут (z).
whuber
6

Похоже, вы могли бы преобразовать .csv в тему события, затем экспортировать в .shp, затем выполнить пространственное соединение с новым .shp в слой округа, и BOOM, вы можете пойти на расчеты.

MLowry
источник
6

Общий подход состоит в том, чтобы преобразовать ваши регулярно расположенные точечные данные в растр (XYZ в растр в Arc *; v.in.xyz в GRASS), а затем выполнить оператор зональной статистики, чтобы объединить значения ячеек в каждом округе и вычислить статистику ( среднее значение - это одна из рассчитанных стандартных статистических данных). Чтобы выполнить статистику, используйте зональную статистику в Arc * или v.rast.stats в GRASS.

Если вам необходимо сделать более расширенную статистику, вы могли бы сделать анализ в R с rasterи , spно его немного сложнее.

SCW
источник
Хорошая идея, но если точечные массивы не будут правильно ориентированы с координатами, при преобразовании в растр будет происходить повторная выборка, и вы будете зависеть от алгоритма повторной выборки: средние значения, скорее всего, будут немного уменьшены, несмотря ни на что ,
whuber
Правильно, если размер ячейки установлен на грубую, может произойти повторная выборка. В качестве приблизительного значения вы должны иметь возможность установить размер ячейки равным половине минимального расстояния между любыми двумя точками и избежать этой проблемы. У этого подхода есть недостаток, заключающийся в необходимости выполнять повторную выборку, но я нашел его намного лучше, чем количество точек (десятки тысяч и более).
Scw
@scw Повторная выборка происходит независимо от размера ячейки (если данные уже не полностью совмещены с сеткой). При использовании более мелкого размера ячейки вы, вероятно, получите худшие ответы, поскольку большинство значений сетки интерполируются между оригиналами. Если вы не используете интерполяцию ближайшего соседа, это приводит к недопредставленности крайних значений. Среднее значение будет затронуто незначительно; другие статистические данные, такие как стандартное отклонение, могут быть затронуты в большей степени.
whuber
@whuber Я думаю, я вижу, откуда исходит наше недоразумение - я не защищаю преобразование данных в непрерывную поверхность, а только помещаю точечные значения (когда они существуют) в обычную растровую сетку. Таким образом, подавляющее большинство сетки останется NULL, и только случайные значения в ячейках совпадают с точечными местоположениями.
Scw
@ scw Ах, очень хорошо! Спасибо за разъяснение. По сути, вы делаете сеточный эквивалент пространственного соединения, рекомендованного @MLowry.
whuber