Буферування в метрах / км з використанням шарів 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.