QGIS kullanarak WGS84 katmanları kullanarak metre / km olarak tamponlama


12

QGIS 1.7.4-Wroclaw kullanıyorum ve WGS84'te bir SHP katmanıyla çalışıyorum. Ftools tampon aracını kullanarak bu katmandan belirli bir kilometreye tampon yapmak istiyorum.

Arabellek aracının her zaman WGS84 için ondalık derece olan katman birimlerini kullandığını anlıyorum. Hepimiz derecelerin tutarlı bir şekilde metreye dönüşmediğini biliyoruz, bu yüzden tamponlarımı nasıl yapmalıyım?

Şekil dosyalarını yerel olarak metre kullanan farklı bir CRS'ye dönüştürmem gerekli mi?

Öyleyse, nasıl seçerim?


Şekil dosyanızın kapsamı nedir? CRS önermek için bu bilgiye ihtiyacımız var.
nhopton

Evet, önce Shapefile'ı yeniden yansıtmanız gerekir (örneğin, fTools'un "Katmanı yeniden oluştur" aracını kullanarak). Hangi projeksiyonun en iyi olduğu, bölgenizin nerede olduğuna (boylam / enlem) ve ne kadar büyük olduğuna bağlıdır.
Jake

Teşekkürler, @Jake ve @nhopton! Kuzey Tayvan'da birkaç noktadan tampon kullanıyorum, ancak tamponlar 1000-2000km aralığında olacak (Çin'in yanı sıra Tayvan'ın yaklaşık yarısını kaplayacak).
Evan

1
Bu harita bir coğrafi koordinat sistemi (enlem / boylam) ile tanımlanır, ancak harita kapsamı, bunun aslında bir tahmini koordinat sistemi (örn. Mercator) olduğunu gösterir. Öyleyse, çizgi veya alan ölçümlerinden elde edilen sonuçlar yanlış olacaktır. Bunu düzeltmek için Ayarlar: Proje Özellikleri menüsünü kullanarak açıkça uygun bir harita koordinat sistemi ayarlayın.
Ger

Aslında kırpılmış bir Natural Earth dosyası, bu yüzden sadece WGS84'te.
Evan

Yanıtlar:


12

Bu uygulama için, kaynak noktalarınızın ortasında bulunan Azimuthal Equidistant projeksiyonunu kullanırım. Bu projeksiyon, projeksiyon merkezi etrafındaki tüm radyal mesafelerin doğru bir özelliğine sahiptir.

Bu özel projeksiyon, QGIS standart projeksiyonlarının bir parçası değildir. Komut dizesiyle Settings / Custom CRS kullanarak kendiniz tanımlayabilirsiniz +proj=aeqd +lat_0=24.5 +lon_0=121.5, ancak maalesef özel projeksiyonlar fTools Reprojection aracı tarafından kullanılamaz. Bunun yerine, komut kümesindeki veri kümenizi komutunu kullanarak dönüştürebilirsiniz.

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

Daha sonra points_reprojected.shpşekil dosyasını kullanarak QGIS'de arabelleğe alabilirsiniz .

Kuzey Tayvan'daki bir noktanın etrafındaki 2000 km'lik bir tampon, noktayı merkez alan bir ortografik projeksiyonda bir daireye benziyor:

... ve WGS84'te ezilmiş:


Teşekkürler - Azimuthal Equidistant'a yeniden enjeksiyon yapmak sonra tamponlama güzel çalıştı! Aslında, bu projeksiyonu anında projeksiyon için kullanıyordum, sadece ihtiyacım olan birimlere sahip olacağını fark etmedim. Ama yeniden çizmek için komut satırını kullanmak zorunda değildi: Katman> Farklı kaydet ... hile yaptı (özel CRS tanımladıktan sonra).
Evan

@Evan: Bunu duyduğuma sevindim! Sorunuzun cevaplandığını düşünüyorsanız, cevabın yanındaki onay işaretini tıklayarak işaretleyebilirsiniz
Jake

1

Hum, ilginç. İlk denemede, (büyük) arabellekleri KML olarak üretmeye bakacağımı düşünüyorum. Bunu burada yapabilirsiniz:

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

Bir nokta ve arabellek mesafesi için lat / lon değerini girmeniz gerekecektir. Geri döndüğünüz, daireyi içeren bir KML dosyası. Google Earth’te buna bir göz atın ve sorun yoksa QGIS’e yükleyin.

resim açıklamasını buraya girin


1
Ne yazık ki, QGIS Lisboa oluşturulan kml dosyasını sevmiyor.
AndreJ

QGIS dosya adını sevmiyor. "Circle1.kml" olarak değiştirmeyi deneyin. Ama kontrol etmeliydim. N.
nhopton

Tamam, dosyayı Google Earth'e yükleyin ve ardından KML olarak kaydedin. Sonra dosya adını varsayılan addan değiştirin. ogr2ogr da dosyayı güzelce SHP'ye dönüştürür. N.
nhopton

Jake'in çözümü benim için mükemmel bir şekilde sonuçlandı, ancak bu da bunu yapmanın iyi bir yolu olabilir. Bunu aklımda tutacağım. Teşekkürler!
Evan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.