QGIS lưu không chính xác đa giác với CRS tùy chỉnh, trong khi chiếu chính xác nó ngay lập tức


8

Tôi đang tách một đa giác đất lên để chuyển trọng tâm của hình chiếu sang đại dương Thái Bình Dương. Tôi quản lý để cắt thành công đa giác ban đầu trên 22 kinh tuyến và nó sẽ ổn khi tôi thực hiện một lời từ chối nhanh chóng với CRS tùy chỉnh của mình:

Phép chiếu đa giác OTF

Nhưng dường như sẽ thay đổi một chút khi thực sự lưu đa giác với cùng CRS:

lưu đa giác

CRS của tôi đang sử dụng chuỗi proj4 này: +proj=eqc +lon_0=-158 +datum=WGS84 +units=m +no_defs +lon_wrap=-158

Bất kỳ ý tưởng về những gì có thể gây ra điều này?


điều này được gây ra bởi các tính năng chồng lên kinh tuyến -156 + 180 = 24 độ về phía đông (điều này thường thấy hơn khi vượt qua phản xạ 180W, nhưng khác với khi bạn chuyển bản đồ
Steven Kay

@StevenKay thực sự là một lỗi đánh máy của tôi: x đã sửa bài đăng gốc của tôi
srha

2
Có thể liên quan: gis.stackexchange.com/questions/70411/ trên . Tôi đã sử dụng một hình cầu thay vì hình elip, hình đa giác cắt rộng 0,2 độ và không có +lon_wraptùy chọn.
AndreJ

Câu trả lời:


6

Những 'tạo tác' này là một vấn đề nổi tiếng và thường là kết quả của các đa giác vượt qua phản xạ (180 độ e / w) Cách khắc phục cho vấn đề này là ogr2ogr thông thường với tùy chọn quấn.

Nhưng điều đó sẽ không giúp bạn. Trong trường hợp của bạn, bạn đang sử dụng một khoảng bù khoảng -156. Điều này có nghĩa là bất kỳ tính năng nào vượt qua kinh tuyến 24E (-156 + 180 = 24) đều gây ra sự cố cho bạn.

Để khắc phục điều này, tôi đã loại bỏ một dải mỏng ở hai bên của 24E.

Tôi đã bắt đầu với dữ liệu Trái đất tự nhiên và bỏ qua phép chiếu (hiện tại) và chỉ sử dụng WGS84.

Để vẽ kinh tuyến 24E, tôi đã sử dụng plugin QuickWKT và thêm vào dưới đây như một lớp mới ...

LINESTRING (24 -90,24 90)

Điều đó vẽ một đường thẳng dọc theo chiều dài của kinh tuyến 24E.

Tiếp theo, tôi đã số hóa một cách thủ công một lớp cào đa giác , thêm hai đa giác, một cho mỗi bên của dòng và một bán cầu có kích thước, nhưng ôm sát đường càng gần càng tốt. (Lưu ý chất lượng của bản vẽ đường ở đây ...)

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

Có lẽ bạn cũng nên làm điều đó với plugin QuickWKT, để có độ chính xác cao hơn - nó liên quan đến việc gõ nhiều hơn và tôi muốn thử nghiệm nhanh :)

Tiếp theo, tôi đã sử dụng clip để cắt shapefile ban đầu của mình với lớp có hai đa giác. Điều này cắt ra một dải mỏng xung quanh kinh tuyến 24E ...

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

cuối cùng, tôi đã áp dụng phép chiếu OTF bằng CRS tùy chỉnh của bạn - và kết quả cố định.

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


À, ôi không! Ước gì tôi trở lại máy tính sớm hơn trước khi bạn làm tất cả công việc này cho tôi. Chuỗi proj4 của tôi thực sự vào khoảng 158; Tôi chỉ dán sai một trong (với 156) sau khi thực hiện một số thử nghiệm.
srha

bạn sẽ thấy vấn đề tương tự với 158 (dù sao tôi cũng vậy) - chỉ cần thay đổi 24 thành 22. Nếu bạn đã làm cho nó hoạt động mà không làm điều này, hãy cho tôi biết làm thế nào - tôi đã không tìm thấy tính năng lon_wrap trong proj4 cho đến gần đây :) (hãy nghĩ về nó, điều đó có thể giải thích tại sao Madagscar có vẻ hơi bù đắp ...)
Steven Kay

1
Vì vậy, tôi đã làm tất cả các bước bạn đã làm (về cơ bản) - dải đa giác WKT khoảng 22; Vector> Xử lý địa lý> Sự khác biệt sẽ hạ cánh làm lớp đầu vào của tôi và dải WKT làm lớp khác biệt; OTF khiển trách. Cho đến khi mọi thứ trông thật tuyệt. Vấn đề phát sinh sau khi tôi lưu đa giác kết quả của mình với cùng một CRS tùy chỉnh - đa giác được lưu đều rất khó khăn nhưng OTF vẫn ổn :(
srha

1
cảm ơn vì đã làm rõ ... chỉ cần tải lớp đã lưu từ dự án (hiện đã bị loại bỏ) của tôi (đã lưu bằng cách sử dụng crj proj4 tùy chỉnh) và giá trị lon_wrap không hiển thị trong siêu dữ liệu của lớp. đó có thể là vấn đề
Steven Kay

Hừm. Bạn có biết làm thế nào để khắc phục điều đó? Tôi thấy tài liệu proj4 hơi khó hiểu.
srha
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.