Các thông số tính toán cho phép biến đổi affine của QGIS?


15

Tôi có một sơ đồ sàn vectơ (DXF) mà tôi đã thêm vào một dự án trống trong QGIS bằng cách sử dụng plugin Dxf2Shp.

Tôi đã đọc hướng dẫn và các chủ đề StackExchange, nhưng dường như tôi không thể tìm ra cách "đo lường địa lý" lớp của mình?

Tôi giả sử bằng cách nào đó tôi có thể chọn các góc của tòa nhà và đặt lat / long.

Mục tiêu của tôi là xuất một shapefile mà tôi có thể sử dụng với TileMillTileStache .

Tôi nhận ra rằng tọa độ dự án thực sự là tọa độ lat / long:

nhập mô tả hình ảnh ở đây

và tôi cần sử dụng plugin "Affine (Xoay, Dịch, Tỷ lệ)" để "đặt" bản vẽ CAD của mình.


tương tự như câu hỏi: gis.stackexchange.com/questions/23998/...
Underdark

Câu trả lời:


2

Sử dụng OpenJump để tính toán các tham số biến đổi affine mang lại:

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

Các tham số này khi được áp dụng đúng sẽ biến đổi shapefile của bạn từ CRS cục bộ mà nó sử dụng thành WGS84 / UTM Vùng 17 North (EPSG: 32617). Trong QGIS, dữ liệu được chuyển đổi sau đó có thể được xuất ("được lưu dưới dạng") sang bất kỳ CRS cần thiết nào; Google Mercator hoặc lat / lon chẳng hạn.

Tin xấu là tôi chưa bao giờ có thể sử dụng thành công trình cắm affine của QGIS cho các phép biến đổi bao gồm xoay vòng. Bởi một số tài khoản nó hoạt động cho người khác nhưng không phải cho tôi, vì vậy nó phải là một cái gì đó tôi đang làm sai. Nếu bất cứ ai có thể cho tôi biết đây là gì tôi sẽ biết ơn.

Có một chủ đề ở đây về các vectơ liên kết rất đáng đọc. Phương pháp tôi sử dụng để liên kết vectơ được giải thích ở đây ở dưới cùng của trang đầu tiên.

Nếu bạn thực sự gặp khó khăn, bạn có thể đăng một liên kết đến shapefile và tất cả chúng ta có thể có được một biến đổi.

Một suy nghĩ lại. Nếu bạn quyết định thử phương pháp OpenJump, bạn sẽ cần tọa độ WGS84 / UTM Vùng 17 Bắc (EPSG: 32617) cho các điểm lat / lon của bạn:

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
dường như không tồn tại một quy trình công việc nhất quán, dễ giải thích cho việc chuyển đổi affine trong QGIS. Các liên kết diễn đàn trong lời giải thích của bạn là chết. Tất cả các tìm kiếm làm thế nào để sử dụng OpenJump cho nhiệm vụ này kết thúc ở đây một lần nữa. Bạn có thể có bất kỳ cập nhật về điều này?
Bernd V.

Bây giờ bạn có thể sử dụng GRASS v.transform từ bộ công cụ Sextante để thực hiện các phép biến đổi affine vector. Tài liệu cho việc này có thể được tìm thấy ở đây: grass.osgeo.org/grass64/manuals/v.transform.html nhưng trong thực tế, tất cả những gì bạn cần xem là định dạng của tệp văn bản. N.
nhopton

27

Trước tiên, bạn cần chiếu tọa độ địa lý của mình lên hệ tọa độ 2D theo kiểu cartesian, vì các phép biến đổi affine không áp dụng cho các hệ tọa độ địa lý.

Bạn có thể áp dụng một phép biến đổi affine từ các điểm kiểm soát hoặc từ các tham số biến đổi. Plugin QGIS yêu cầu bạn tham số chuyển đổi, nhưng người dùng có các điểm kiểm soát phổ biến hơn nhiều.

Từ các điểm kiểm soát, bạn có thể tính toán các tham số chuyển đổi. Để chuyển đổi affine có 6 tham số biến đổi, do đó bạn cần ít nhất 3 điểm kiểm soát (mỗi điểm kiểm soát ngụ ý 4 tọa độ: Xsource, Ysource, Xtarget, Ytarget), nhưng nên sử dụng nhiều điểm kiểm soát hơn để có thể dự phòng và do đó có thể áp dụng Least Squares, sẽ cho bạn ước tính về chất lượng của phép biến đổi. Hãy nhớ rằng các phép biến đổi affine có thể xoay, dịch chuyển, chia tỷ lệ (thậm chí áp dụng các yếu tố khác nhau trên mỗi trục) và hình học nghiêng.

Điểm kiểm soát phải có dạng:

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

Các thông số là:

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

Và chúng ta biết:

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

Vì vậy, bạn cần giải hệ phương trình này (cho 3 điểm kiểm soát):

¦ 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 ¦

Trong đó các tham số a, b, c, d, e và f không xác định.

Khi bạn tính toán các tham số a, b, c, d, e và f, (ví dụ với trình giải phương trình trực tuyến này ), hãy đặt chúng vào giao diện plugin QGIS như thế này:

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

hoặc là:

Thông số biến đổi affine

Tôi nghĩ rằng điều này giải quyết hai câu hỏi của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.