Создать буфер в метрах?

15

Я очень новичок в мире ГИС, поэтому моя проблема может быть очень глупой, но я все равно попробую.

Задача

Учитывая список координат по долготе / широте, сохраненный в виде .csvфайла, я хочу создать буфер с расстоянием в xкм вокруг этих координат. (В случае, если это уместно, эти координаты являются местоположениями обществ в наборе данных SCCS . Эти общества разбросаны по всему миру.)

проблема

Я могу создавать только буферы с расстоянием в радиальных градусах, но я хочу делать их в (килограммах) метрах. Мне известны следующие вопросы и ответы, но выполнение предложенных в них вопросов, похоже, не решает мою проблему:

Что я пробовал ...

  1. Я запускаю QGIS (v2.4) и Add delimited text layer
  2. выберите мой .csvфайл и поля х / у, нажмитеOK
  3. выберите в WGS 84качестве моего CRS (тоже пробовал, NAD83но ничего не изменилось), нажмитеOK
  4. щелкните правой кнопкой мыши на слое и выберите Save As..., в диалоговом окне выберите следующее и нажмите OK: введите описание изображения здесь
  5. добавить sccs_meter.shpкак слой в текущий проект
  6. Выберите Vector> Geoprocessing Tools> Buffers> набор буфера расстояние как 10

В результате получается буфер с радиусом около 1068 км, что говорит о том, что буферное расстояние составляет 10 градусов, а не 10 метров.

Что я тут не так сделал?

Герр К.
источник
1
"Каков рабочий процесс для буферизации в метрах / км с использованием слоев WGS84?" действительно решает вашу проблему, пожалуйста, прочитайте комментарии. Когда вы используете инструмент буфера, он использует единицы слоя CRS, выбирая wgs84, он будет использовать градусы. Вы можете создать файл _meters, но вы не изменили систему координат.
Александр Нето
@AlexandreNeto: я прочитал ответ Джейка на этот вопрос. Вы имели в виду часть о создании азимутальной эквидистантной проекции или часть о сохранении текущего слоя с использованием другого CRS? Я сохранил мой, используя NAD83 (как показано на рисунке), который должен быть в метрах, но он по-прежнему создает буферы в градусах.
Герр К.
3
NAD83 также использует градусы для единиц измерения. Есть много проекций, которые используют данные NAD83, которые используют метры, возможно, вы хотели выбрать один из них вместо этого.
Злой гений

Ответы:

17

На шаге 4 вы должны изменить CRS с NAD83 на другую проекцию, в которой в качестве единиц используются счетчики.

Это зависит от объема ваших данных, который является лучшим. К сожалению, ваши данные расположены по всему миру, поэтому вы можете:

  1. Создайте пользовательский CRS, используя aeqd (или tmerc) для каждого, и нарисуйте вместе с ним только один буфер. Практически вам нужно создать буфер только один раз и обмениваться информацией CRS в файлах .prj и .qpj. Координаты буфера относительно его центра всегда будут одинаковыми.
  2. Сгруппируйте данные в соответствии с зонами UTM и используйте UTM CRS этой зоны для этих точек.
  3. Подобно UTM, сгруппируйте свои точки в зоны широты (например, каждые 10 градусов) и создайте пользовательский конформный конус 2SSP Ламберта для каждой группы. Это будет значительно быстрее, чем использование всех северных и южных зон UTM мира.
  4. Используйте псевдо меркатора EPSG: 3857 для всех. Буферы будут выглядеть как хорошие круги, но реальный размер будет уменьшаться и искажаться по мере приближения к полюсам.
Andrej
источник
Привет, у меня похожая ситуация (но с полилиниями, расположенными по всему миру и нуждающимися в 50-километровом буфере по обе стороны), и я немного запутался, почему вы бы выбрали один из лучших вариантов, если вы можете использовать четвертый ( что кажется самым простым). Это только потому, что он не будет ясно показывать искажение, которое вы хотели бы видеть, несмотря на то, что даете точный результат? Благодарность! :)
Amroco
@Amroco EPSG: 3857 следует избегать, если оно должно быть точно на определенном расстоянии, и вы находитесь далеко от экватора.
AndreJ
2

Быстрый и грязный путь: используйте буферное расстояние 0,01 ° на км. Это средние градусы на км при 37 ° лат. и искажает размер буфера NS и EW. Но это может быть достаточно точным для вашей цели.

user95704
источник
привет, вы знаете, насколько велики искажения на эк. а поляки?
Amroco
Предполагая идеальную сферу (не геоид): Экватор: 1 ° широта = ~ 111111 м, 1 ° в длину = ~ 111133 м, ср. = 111122 м. Полюса: 1 ° шир. = ~ 111111 м, 1 ° в длину = 0 м, средн. = 55556 м
Фло
1

Вы можете проверить ссылку на сайт geospatialearth . Вам необходимо разрешить Adobe Flash в вашем браузере. Firefox рекомендуется.

Как программист, чтобы создать буфер точки, вы можете использовать geographiclib javascript вместе с js2shapefile. Вы сможете создать множество равных угловых точек на фиксированном расстоянии x вокруг каждой точки CSV-файла с помощью geographiclib, а затем преобразовать его в шейп-файл с помощью js2shapefile.

Просто проверьте ссылку выше, вы будете удовлетворены на сто процентов.

GeoSpatialEarth.in
источник
Полезно добавить немного дополнительной информации о том, что объясняет ссылка и которая решит проблему. Внешние ссылки сильно меняются / ломаются.
MaryBeth
@MatyBeth Упомянутая выше ссылка представляет собой небольшую форму, с помощью которой пользователь загружает файл .csv, который читается в браузере с использованием javascript. Будет отображен предварительный просмотр этого файла CSV. Пользователь должен выбрать столбец широты и долготы и тип геометрии, которую он / она хочет загрузить, например, точечный шейп-файл, прямоугольный буфер с заданной длиной и высотой в метрах или круговое масло с указанным радиусом в метре и количеством сегментов. Пользователь может сохранить буфер в виде шейп-файла или файла KML.
GeoSpatialEarth.in