Buffer dalam meter / km menggunakan lapisan WGS84 menggunakan QGIS

12

Saya menggunakan QGIS 1.7.4-Wroclaw dan bekerja dengan layer SHP di WGS84. Saya ingin buffer ke beberapa kilometer dari lapisan ini menggunakan alat buffer ftools.

Saya mengerti bahwa alat buffer selalu menggunakan unit lapisan, yang untuk WGS84 adalah derajat desimal. Kita semua tahu bahwa derajat tidak dikonversi secara konsisten ke meter, jadi bagaimana cara membuat buffer saya?

Apakah perlu bagi saya untuk mengubah shapefile ke CRS berbeda yang secara asli menggunakan meter?

Jika demikian, bagaimana saya memilihnya?

Evan
sumber
Berapa luas dari shapefile Anda? Kami membutuhkan informasi ini untuk merekomendasikan CRS.
nhopton
Ya, Anda harus memproyeksi ulang Shapefile terlebih dahulu (menggunakan alat "Reproject layer" fTools, misalnya). Proyeksi mana yang terbaik tergantung pada di mana area Anda (bujur / lintang) dan seberapa besar itu.
Jake
Terima kasih, @Jake dan @nhopton! Saya buffering dari beberapa titik di Taiwan utara, tetapi buffer akan berada di kisaran 1000-2000 km (mencakup sekitar setengah dari Cina dan juga Taiwan).
Evan
1
Peta ini didefinisikan dengan sistem koordinat geografis (lintang / bujur) tetapi peta yang diperluas menunjukkan bahwa itu sebenarnya adalah sistem koordinat yang diproyeksikan (misalnya, Mercator). Jika demikian, hasil dari pengukuran garis atau area akan salah. Untuk memperbaiki ini, secara eksplisit mengatur sistem koordinat peta yang sesuai menggunakan menu Pengaturan: Properti Proyek.
Ger
Ini hanya file Natural Earth yang dipotong, sebenarnya, jadi itu hanya di WGS84.
Evan

Jawaban:

12

Untuk aplikasi ini, saya akan menggunakan proyeksi Azimuthal Equidistant yang berpusat di tengah titik sumber Anda. Proyeksi ini memiliki fitur yang bagus dari semua jarak radial di sekitar pusat proyeksi yang akurat.

Proyeksi khusus itu bukan bagian dari proyeksi standar QGIS. Anda dapat mendefinisikan sendiri menggunakan Pengaturan / CRS Kustom dengan string perintah +proj=aeqd +lat_0=24.5 +lon_0=121.5, tetapi sayangnya, proyeksi kustom tidak dapat digunakan oleh alat Reprojection fTools. Sebagai gantinya, Anda dapat mengubah dataset Anda pada baris perintah menggunakan perintah

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

Kemudian Anda dapat melakukan buffering di QGIS menggunakan points_reprojected.shpshapefile.

Penyangga 2000km di sekitar titik di Taiwan utara terlihat seperti lingkaran dalam proyeksi ortografis yang berpusat pada titik:

... dan terjepit di WGS84:

Jake
sumber
Terima kasih - memproyeksikan kembali ke Azimuthal Equidistant lalu buffering bekerja dengan baik! Bahkan, saya sudah menggunakan proyeksi itu untuk proyeksi on the fly, saya hanya tidak menyadari itu akan memiliki unit yang saya butuhkan. Tapi saya tidak harus menggunakan baris perintah untuk memproyeksikan ulang: Layer> Save as ... melakukan trik (setelah mendefinisikan custom CRS).
Evan
@ Evan: Senang mendengarnya! Jika Anda menganggap pertanyaan Anda dijawab, Anda dapat menandainya dengan mengklik tanda centang di sebelah jawaban
Jake
1

Hum, menarik. Sebagai percobaan pertama saya pikir saya akan melihat menghasilkan buffer (besar) sebagai KML. Anda dapat melakukannya di sini:

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

Anda harus memasukkan lat / lon untuk titik dan jarak buffer. Apa yang Anda dapatkan kembali adalah file KML yang berisi lingkaran. Lihat ini di Google Earth dan jika tidak apa-apa, muatkan ke QGIS.

masukkan deskripsi gambar di sini

nhopton
sumber
1
Sayangnya, QGIS Lisboa tidak menyukai file kml yang dihasilkan.
AndreJ
QGIS tidak suka nama file. Coba ubah ke (katakanlah) "circle1.kml". Tapi saya harus memeriksa. N.
nhopton
Oke, muat file ke Google Earth lalu simpan sebagai KML. Kemudian ganti nama file dari nama default. ogr2ogr mengkonversi file menjadi SHP dengan cukup baik juga. N.
nhopton
Solusi Jake akhirnya berhasil dengan baik untuk saya, tetapi ini bisa menjadi cara yang baik untuk melakukannya juga. Saya akan mengingatnya. Terima kasih!
Evan