Буферування в метрах / км з використанням шарів WGS84 за допомогою QGIS


12

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

Я розумію, що інструмент буфера завжди використовує одиниці шару, які для WGS84 - це десяткові градуси. Усі ми знаємо, що градуси не перетворюються послідовно в метри, тож як мені займатися створенням буферів?

Чи потрібно мені перетворювати файли форм у іншу CRS, яка спочатку використовує лічильники?

Якщо так, то як вибрати його?


Які розширення файлу форм? Нам потрібна ця інформація, щоб рекомендувати CRS.
nhopton

Так, вам спочатку доведеться повторно спроектувати Shapefile (наприклад, використовуючи інструмент fTools "Reproject layer"). Яка проекція найкраща залежить від того, де знаходиться ваша територія (довгота / широта) та наскільки вона велика.
Джейк

Дякую, @Jake та @nhopton! Я буферизую з декількох точок на півночі Тайваню, але буфери будуть знаходитися в межах 1000-2000 км (охоплює близько половини Китаю, а також Тайваню).
Еван

1
Ця карта визначена географічною системою координат (широта / довгота), але розширення карти говорить про те, що вона фактично є проектованою системою координат (наприклад, Меркатор). Якщо це так, результати вимірювання ліній або ділянок будуть неправильними. Щоб виправити це, явно встановіть відповідну систему координат карти за допомогою меню Налаштування: Властивості проекту.
Гер

Насправді це просто обрізаний файл Natural Earth, тому він просто в WGS84.
Еван

Відповіді:


12

Для цього додатка я використовував би проекцію азимутальної рівновіддаленої точки з центром у точці джерела. Ця проекція має приємну особливість того, що всі радіальні відстані навколо центру проекції є точними.

Ця конкретна прогноза не є частиною стандартних прогнозів QGIS. Ви можете визначити свій власний, використовуючи Settings / Custom CRS за допомогою командного рядка +proj=aeqd +lat_0=24.5 +lon_0=121.5, але, на жаль, користувацькі проекції не можуть бути використані інструментом fTools Reprojection. Натомість ви можете перетворити свій набір даних у командному рядку за допомогою команди

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: Радий почути це! Якщо ви вважаєте, що ваше питання відповіли, ви можете позначити його як таке, натиснувши галочку біля відповіді
Джейк

1

Гул, цікаво. Як першу спробу, я думаю, я б подивився на генерування (величезних) буферів як KML. Ви можете це зробити тут:

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

Вам потрібно буде ввести lat / lon для точки та відстані буфера. Ви отримаєте назад - файл KML, що містить коло. Погляньте на це в Google Планета Земля, і якщо це нормально, завантажте його в QGIS.

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


1
На жаль, QGIS Lisboa не любить створений файл kml.
AndreJ

QGIS не любить ім'я файлу. Спробуйте змінити його (скажімо) на "circle1.kml". Але я повинен був перевірити. Н.
ноптон

Гаразд, завантажте файл у Google Планета Земля та збережіть як KML. Потім змініть ім'я файлу з імені за замовчуванням. ogr2ogr також непогано перетворює файл в SHP. Н.
ноптон

Рішення Джейка закінчилося для мене ідеально, але це міг би бути гарним способом зробити це теж. Я буду мати це на увазі. Дякую!
Еван
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.