QGIS Afin dönüşüm için hesaplama parametreleri?


15

Dxf2Shp eklentisini kullanarak QGIS boş bir projeye eklediğim bir vektör yer planı (DXF) var .

Ben öğreticiler ve StackExchange konu okuyorum, ama benim katman "georeference" bulmak nasıl görünmüyor?

Bir şekilde binanın köşelerini seçebileceğimi ve enlem / boylamı ayarlayabileceğimi varsayıyorum.

Amacım TileMill ve TileStache ile kullanabileceğim bir şekil dosyasını dışa aktarmak .

Proje koordinatlarının aslında enlem / boylam koordinatları olduğunu fark ettim:

resim açıklamasını buraya girin

ve CAD çizimimi "yerleştirmek" için "Affine (Rotation, Translation, Scale)" eklentisini kullanmam gerekiyor.


Yanıtlar:


2

Afin dönüşüm parametrelerini hesaplamak için OpenJump kullanma:

Scale x: 0.02550720529745378
Scale y: 0.025669710194697357
Rotation: -88.6538203230914
Dx: 357101.9 (Translation x)
Dy: 4512814.6 (Translation y)

Bu parametreler uygun şekilde uygulandığında şekil dosyanızı, kullandığı yerel CRS'den WGS84 / UTM Zone 17 North'a (EPSG: 32617) dönüştürmelidir. QGIS'de dönüştürülen veriler daha sonra gerekli herhangi bir CRS'ye aktarılabilir ("kaydedildi"); Örneğin, Google Mercator veya lat / lon.

Kötü haber şu ki, bir zamanlar QGIS affin eklentisini rotasyon içeren dönüşümler için başarılı bir şekilde kullanamadım. Bazı hesaplara göre diğer insanlar için çalışıyor ama benim için değil, bu yüzden yanlış yaptığım bir şey olmalı. Biri bana bunun ne olduğunu söyleseydi minnettar olurum.

Burada, okumaya değer vektörleri ilgilendiren bir iplik vardı . Vektörleri çekmek için kullandığım yöntem burada ilk sayfanın alt kısmında açıklanmaktadır .

Gerçekten sıkışırsanız, şekil dosyasına bir bağlantı gönderebilirsiniz ve hepimizin dönüştürülmesini deneyebiliriz.

Sonradan düşünüldü. OpenJump yöntemini denemeye karar verirseniz, lat / lon puanlarınız için WGS84 / UTM Zone 17 North (EPSG: 32617) koordinatlarına ihtiyacınız olacaktır:

EPSG:32617: 361154.4 4513930.1
lat/long: 40.764622,-82.645056
shapefile coor: 947.3,1242.8

EPSG:32617: 361152.2 4513850.3
lat/long: 40.763903,-82.645064
shapefile coor: 4050.3,1035.7

EPSG:32617: 361246.5 4513886.7
lat/long: 40.764247,-82.643956
shapefile coor: 2710.5,4765.2

2
QGIS'de afin dönüşüm için tutarlı, açıklanması kolay bir iş akışı mevcut görünmemektedir. Açıklamanızdaki forum bağlantısı öldü. Bu görev için OpenJump'ın nasıl kullanılacağı ile ilgili tüm aramalar burada tekrar sona erer. Bu konuda herhangi bir güncellemeniz var mı?
Bernd V.

Artık vektör afin dönüşümleri gerçekleştirmek için Sextante araç kitinden GRASS v.transform'u kullanabilirsiniz. Bunun belgeleri burada bulunabilir: grass.osgeo.org/grass64/manuals/v.transform.html ancak gerçekte tek yapmanız gereken metin dosyasının formatıdır. N.
nhopton

27

Öncelikle, coğrafi koordinatlarınızı kartezyen bir 2D koordinat sistemine yansıtmanız gerekir, çünkü afin dönüşümler coğrafi koordinat sistemleri için geçerli değildir.

Kontrol noktalarından veya dönüşüm parametrelerinden bir afin dönüşüm uygulayabilirsiniz. QGIS eklentisi size dönüştürme parametrelerini sorar, ancak bir kullanıcının kontrol noktalarına sahip olması çok daha yaygındır.

Kontrol noktalarından dönüşüm parametrelerini hesaplayabilirsiniz. Afin dönüşüm için 6 dönüşüm parametresi vardır, bu nedenle en az 3 kontrol noktasına ihtiyacınız vardır (her kontrol noktası 4 koordinatı ifade eder: Xsource, Ysource, Xtarget, Ytarget), ancak fazlalık olması ve böylece uygulayabilmeniz için daha fazla kontrol noktası önerilir. Dönüşümün kalitesini tahmin edebileceğiniz En Küçük Kareler. Afin dönüşümlerin dönebileceğini, değişebileceğini, ölçeklenebileceğini (hatta her eksene farklı faktörler uygulayabileceğini) ve eğri geometrilerini hatırlayabileceğinizi unutmayın.

Kontrol noktaları şu biçimde olmalıdır:

X SOURCE: Xs
Y SOURCE: Ys
X TARGET: Xt
Y TARGET: Yt

Parametreler:

a: Scale X 
e: Scale Y
d: Rotation X
b: Rotation Y
c: Translation X
f: Translation Y

Ve biliyoruz:

Xt = X*a + Y*b + c
Yt = X*d + Y*e + f

Yani, bu denklem sistemini çözmeniz gerekiyor (3 kontrol noktası için):

¦ Xs1 Ys1 1 0 0 0 ¦ | a ¦   ¦ Xt1 ¦
¦ Xs2 Ys2 1 0 0 0 ¦ ¦ b ¦   ¦ Xt2 ¦ 
¦ Xs3 Ys3 1 0 0 0 ¦ ¦ c ¦ = ¦ Xt3 ¦ 
¦ 0 0 0 Xs1 Ys1 1 ¦ ¦ d ¦   ¦ Yt1 ¦ 
¦ 0 0 0 Xs2 Ys2 1 ¦ ¦ e ¦   ¦ Yt2 ¦ 
¦ 0 0 0 Xs3 Ys3 1 ¦ ¦ f ¦   ¦ Yt3 ¦

A, b, c, d, e ve f parametreleri bilinmiyor.

A, b, c, d, e ve f parametrelerini hesapladıktan sonra (örneğin bu çevrimiçi denklem çözücü ile ) bunları aşağıdaki gibi QGIS eklenti arayüzüne yerleştirin:

X' = a*x + b*y + c
Y' = d*x + e*y + f

veya:

Afin dönüşüm parametreleri

Bence bu iki sorunuzu çözüyor.

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.