QGIS alan hesaplaması, anında CRS dönüşümü etkinleştirildiğinde farklılık gösterir


10

QGIS'i açtığımda, katmanı eklediğimde ve alan hesaplayıcısıyla şekil dosyasının alanlarını hesapladığımda QGIS'i açıp "Anında CRS dönüşümünü etkinleştir" seçeneğini işaretleyip alanı hesapladığımdan farklı bir alan alıyorum. Bu, projenin ve katmanın aynı Koordinat sistemine (aynı EPSG numarası) sahip olduğundan emin olmasına rağmen. Neyi yanlış yapıyorum?

ArcGIS ile yapılan alan hesaplamaları ile bir şekil dosyam var (bana değil, veriler bana verildi ve alanın ArcGIS ile hangi CRS'nin hesaplandığı hakkında hiçbir fikrim yok). Şekil dosyası katmanı CRS, EPSG: 21781'dir (İsviçre). QGIS'de, OTF ayarlarını değiştirmez ve proje CRS'sini EPSG olarak bırakırsam: 4326 (WGS84) ArcGIS alan değeri ile aynı değeri alırım. Ancak, katmanı EPSG'ye eklemeden önce OTF'yi değiştirirsem: 21781 Farklı alan değerleri elde ederim. Anladığım kadarıyla bu, ArcGIS Alanı'nın CRS EPSG: 4326 ile hesaplandığını gösteriyor.

İlk iş akışı:

  1. QGIS'i aç
  2. proje CRS: EPSG 4326
  3. katman ekle
  4. proje CRS otomatik olarak uyum sağlar ve şimdi EPSG 21781
  5. alan hesap makinesiyle $ alanını hesapla

İkinci iş akışı:

  1. QGIS'i aç
  2. proje CRS: EPSG 4326
  3. OTF'yi açın, proje CRS'sini EPSG 21781 olarak ayarlayın
  4. katman ekle
  5. alan hesap makinesiyle $ alanını hesapla

Birinci ve ikinci iş akışının 5. adımı aynı alanı ÜRETMEYİN.


kullandığınız iş akışı ve araçlara bir örnek verebilir misiniz; WGS84'te anında etkin ve devre dışı bırakılmış olarak denedim ve aynı alanı verdi. Yani kullanıyor $areadosyalanmış hesap makinesi. Kısacası, anında veri detoftosunu değiştirmeden geometrinin nasıl görüntülendiğini etkiler. Dolayısıyla, hatanın iş akışından kaynaklanması muhtemeldir.
dof1985

$ alanı alanı katmanlara veya proje koordinat sistemine göre hesaplar mı?
kalakaru

Kontrol ettik ve OTF birimlerinde alan vermek gibi görünüyor; Yine de katmanın geometrisini kullandığından eminim
dof1985

Sorunumun kökü bu olabilir. ArcGis ile yapılan Alan Hesaplamaları ile bir şekil dosyam var (bana değil, veriler bana verildi ve alanın hangi CRS'nin ArcGIS ile hesaplandığı hakkında hiçbir fikrim yok). Shapefiley katmanı CRS EPSG: 21781'dir (İsviçre). OTF ayarlarında değişiklik yapmaz ve proje CRS'sini EPSG olarak bırakırsam: 4326 (WGS84) ArcGis Alanı değeri ile aynı değeri alırım. Ancak, katmanı EPSG'ye eklemeden önce OTF'yi değiştirirsem: 21781 Farklı alan değerleri elde ederim. Anladığım kadarıyla bu, ArcGIS Alanının CRS EPSG ile hesaplandığını gösteriyor: 4326.
kalakaru

Bildiğim kadarıyla Arcgis geometriyi birçok şekilde hesaplayabilir. Alan hesap makinesinin python ifadesini kullanmak !shape.area!, alanı katman cr'lerine göre vermelidir; geometri hesaplamaktan daha farklı olabilir. Bu yüzden, arcgis'te ne yapıldığını söylemek zordur, ancak aynı sonucu alırsanız, örneğin, derece değil, dereceler, alan hesaplamasının gerçekten ESPG: 4326'ya dayalı olduğunu karşılar.
dof1985

Yanıtlar:


6

EDIT - Yasal Uyarı: Okuyucuları aşağıdaki ChrisW ile tartışmaya yönlendirmek istiyorum. Bir OTF CRS'ye dayalı bir alan elde etmenin sonuçta bir hata olmaması olabilir; en azından arcgis'te, farklı CRS'den iki katmanın coğrafi olarak işlenmesine izin vermek için de kullanılır.

Yukarıdaki konuyu incelemek. AndreJ'nin önerdiği ve gösterdiği gibi - bu muhtemelen qgis'in mevcut sürümünde bir hata. Yine de, sorunun yanlış alan olmadığı, ancak anında dönüşümün alan hesaplamalarını etkilediği unutulmamalıdır.

Anında dönüşüm / projeksiyonun amacı, farklı kaynaklardan ve farklı CRS'lerden gelen verileri hizalamaktır. Bu esas olarak görüntüleme amaçlıdır. EG arcmap, katman CRS'sinin veri çerçevesi CRS ile eşleşmediği durumlarda otomatik olarak anında projeksiyon gerçekleştirir.

Arcmap ayrıca anında yansıtılırken verileri düzenleme olanağı da sağlar, ancak şunu da not eder: ( kaynak )

Bununla birlikte, belirli düzenleme işlemlerinin, kullanılan koordinat sistemlerine bağlı olarak beklenmedik hizalama veya doğruluk sorunları üretebileceğine dikkat etmek önemlidir.

Sorunlara neden olabilecek belirli düzenleme işlemleri, özelliklerin şekillerini değiştirmeyi, unsurların kenarına veya sınırına yapışmayı veya unsurları genişletmeyi ve kırpmayı içerir. Bu sorunların, düzenlediğiniz özellikler kenara yakın veya koordinat sisteminin kullanım alanının ötesinde olması daha olasıdır

Yani: anında dönüşüm, verileri sadece farklı bir CRS'ye yansıtmaktan daha az doğrudur (ki bu aynı zamanda kendi sorunlarını da beraberinde getirir).

Hızlı bir dönüşüme dayanarak yanlış bir alanın hesaplanmasının şaşırtıcı olmadığını söyledikten sonra, hızlı bir şekilde etkinleştirilmesinin geometri hesaplamasını herhangi bir şekilde etkilemesi şaşırtıcıdır. verilere dayanmalıdır. Bu nedenle, anında dönüşümün aynı veya farklı bir CRS'ye dayandırılması önemli değildir, alan hesaplaması her seferinde aynı olmalıdır.

Daha pratik olmak için, amacınız alanı hesaplamak ise anında kullanmayın. Yanlış CRS'niz varsa verilerinizi yansıtın.


QGIS hakkında emin değilim, ancak burada bahsettiğinizin aksine, ArcGIS aslında Metot Geometrisini OTF projeksiyonu veya tamamen farklı bir projeksiyon kullanarak yönteme bağlı olarak yapabilir (yani sağ tıklama özniteliği sütununu seçin ve Geometri'yi Hesapla'yı seçin. şekil.area -code / alan hesap makinesi çağrısı). Bazen 1) veri / katman, 2) mevcut veri çerçevesi, 3) 1 veya 2 ile ilgisi olmayan belirli bir CRS'nin CRS'sini kullanmak için verilen seçenekler vardır. Tipik olarak (yine ArcGIS) seçim sunulmazsa verilerin ne olduğuna bakılmaksızın geçerli veri çerçevesinin CRS'si (dolayısıyla OTF).
Chris W

Ben de OTF sadece görüntüleme amaçlı değil - aynı zamanda farklı bir CRS ile bir veri kümesi kullanan bir coğrafi işleme aracı çalıştırmak için bir veri kümesini yeniden gerekmez gerekmez; OTF bunu halleder. Her iki veri kümeleri bu bazı istisnaları vardır do aynı CRS olmak zorunda.
Chris W

@ChrisW, doğru anlarsam; bazı coğrafi işlem araçları OTF CRS'yi katmanın CRS'si olarak kabul eder. Bu nedenle OTF CRS'ye dayalı alan elde etmek mutlaka bir hata değildir. Bu doğru mu? Arcgis ile ilgili olarak, WGS84'ü OTF olarak kabul edelim; ne gibi bir çağrı hakkında:!shape.area@meters!
dof1985

Bu doğru. Veri çerçeveniz ve ilk katmanınız WGS84 olabilir ve NAD83 olan ikinci bir katman ekleyebilirsiniz. İkinci katman OTF yansıtılır ve üzerinde Kesişim veya Birlik gibi herhangi bir normal aracı çalıştırabilirsiniz ve işlem WGS84'te gerçekleşir. Alan almak kesinlikle bir hata değil. NAD83 veri isteyen bir istemci var, ama bilgi dönüm birimleri gerektirir ve ben bilgi girmek için bir öngörülen CRS çalışmak. Genellikle veri çerçevesi projeksiyonunu, kireç alanını değiştiririm ve sonra geri değiştiririm. Birim dönüşümünün hesaplamadan ayrı olduğunu düşündüğüm için bu çağrının nasıl ele alınacağından emin değilim.
Chris W

6

Bir hata gibi göründüğünü teyit edebilirim.

Aşağıdaki içeriğe sahip bir csv dosyası oluşturun:

E N
600000 200000
700000 200000
700000 300000
600000 300000

EPSG: 21781 ile sınırlandırılmış metin olarak içe aktarın, yapışmayı etkinleştirin ve dört noktaya bir çokgen şekil dosyası çizin.

OTF olmadan, sonuç $area/1000000.010000 m²'dir (bu kesinlikle doğrudur).

OTF Torna üzerinde ve aynı EPSG seçerek: 21781, sen 9988,2338 m² olsun.

EPSG: 4326 gibi farklı bir CRS seçmek 9990.5339 m² sunar, çünkü hesaplama farklı bir elipsoid (bessel yerine WGS84) üzerinde yapılır.

Vector --> Geometry Tools --> Export/Add Geometry Columns doğru değerleri veriyor gibi görünüyor.

Bugun zaten bazı biletleri var: https://issues.qgis.org/issues/10966 ve https://issues.qgis.org/issues/12473

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.