Буферизация в метрах / км с использованием слоев WGS84 с использованием QGIS

12

Я использую QGIS 1.7.4-Wroclaw и работаю со слоем SHP в WGS84. Я хочу создать буфер на определенное количество километров от этого слоя, используя инструмент буфера ftools.

Я понимаю, что инструмент буфера всегда использует единицы слоя, которые для WGS84 являются десятичными градусами. Мы все знаем, что градусы не всегда преобразуются в метры, так как мне делать буферы?

Нужно ли мне преобразовывать шейп-файлы в другой CRS, который изначально использует счетчики?

Если так, как я могу выбрать один?

Evan
источник
Каковы размеры вашего шейп-файла? Нам нужна эта информация, чтобы рекомендовать CRS.
Ноптон
Да, вам сначала нужно перепроектировать Shapefile (например, с помощью инструмента fTools «Reproject layer»). Какая проекция лучше всего, зависит от того, где находится ваша область (долгота / широта) и насколько она велика.
Джейк
Спасибо, Джейк и @nhopton! Я буферизую из нескольких точек на севере Тайваня, но буферы будут в диапазоне 1000-2000 км (охватывая примерно половину Китая, а также Тайвань).
Эван
1
Эта карта определена с географической системой координат (широта / долгота), но экстенты карты предполагают, что это на самом деле проекционная система координат (например, Mercator). Если это так, результаты измерений на линии или площади будут неверными. Чтобы исправить это, явным образом установите подходящую систему координат карты с помощью меню «Настройки: Свойства проекта».
Ger
На самом деле это просто обрезанный файл Natural Earth, поэтому он находится только в WGS84.
Эван

Ответы:

12

Для этого приложения я бы использовал азимутальную эквидистантную проекцию с центром в центре исходных точек. Эта проекция имеет приятную особенность, поскольку все радиальные расстояния вокруг центра проекции являются точными.

Этот конкретный прогноз не является частью стандартных прогнозов QGIS. Вы можете определить свой собственный, используя Настройки / Пользовательский CRS с командной строкой +proj=aeqd +lat_0=24.5 +lon_0=121.5, но, к сожалению, пользовательские проекции не могут быть использованы инструментом перепроецирования fTools. Вместо этого вы можете преобразовать свой набор данных в командной строке, используя команду

ogr2ogr points_reprojected.shp points.shp -t_srs "+proj=aeqd +lat_0=24.5 +lon_0=121.5"

Затем вы можете выполнить буферизацию в QGIS, используя points_reprojected.shpшейп-файл.

2000-километровый буфер вокруг точки на севере Тайваня выглядит как круг в ортографической проекции с центром в точке:

... и раздавлен в WGS84:

Джейк
источник
Спасибо - перепроектировав в Azimuthal Equidistant, буферизация работала прекрасно! На самом деле, я уже использовал эту проекцию для проекции на лету, я просто не знал, что в ней будут нужные мне единицы. Но мне не пришлось использовать командную строку для перепроектирования: Layer> Save as ... сделал свое дело (после определения пользовательского CRS).
Эван
@Evan: Рад это слышать! Если вы считаете, что ваш вопрос является ответом, вы можете пометить его как таковой, щелкнув галочку рядом с ответом
Jake
1

Хм, интересно. В качестве первой попытки, я думаю, я бы взглянул на создание (огромных) буферов в виде KML. Вы можете сделать это здесь:

http://www.thesamestory.com/kmlcircle/

Вам нужно будет ввести широту / долготу для точки и буферного расстояния. Вы получите файл KML, содержащий кружок. Посмотрите на это в Google Earth и, если все в порядке, загрузите его в QGIS.

введите описание изображения здесь

nhopton
источник
1
К сожалению, QGIS Lisboa не нравится сгенерированный файл kml.
AndreJ
QGIS не нравится имя файла. Попробуйте изменить его на (скажем) "circle1.kml". Но я должен был проверить. Н.
Ноптон
Хорошо, загрузите файл в Google Планета Земля, а затем сохраните его в формате KML. Затем измените имя файла с именем по умолчанию. ogr2ogr также довольно хорошо преобразует файл в SHP. Н.
Ноптон
Решение Джейка сработало идеально для меня, но это может быть хорошим способом сделать это тоже. Я буду иметь это в виду. Благодарность!
Эван