QGIS salah menyimpan poligon dengan CRS khusus, sementara memproyeksikannya dengan benar saat terbang dengan benar

8

Saya membagi poligon tanah ke atas untuk menggeser titik tengah proyeksi ke laut Pasifik. Saya berhasil memotong poligon asli pada meridian 22, dan itu terlihat bagus ketika saya melakukan proyeksi ulang saat bepergian dengan CRS khusus saya:

Proyeksi poligon OTF

Tetapi tampaknya sedikit bergeser ketika sebenarnya menyimpan poligon dengan CRS yang sama:

proyeksi poligon disimpan

CRS saya menggunakan string proj4 ini: +proj=eqc +lon_0=-158 +datum=WGS84 +units=m +no_defs +lon_wrap=-158

Adakah ide tentang apa yang menyebabkan ini?

srha
sumber
ini disebabkan oleh fitur yang tumpang tindih dengan -156 + 180 = 24 derajat meridian timur (ini lebih sering terlihat dengan melintasi antimeridian 180W, tetapi berbeda karena Anda telah menggeser peta
Steven Kay
@ SevenKay itu sebenarnya salah ketik di pihak saya: x memperbaiki posting asli saya
srha
2
Mungkin terkait: gis.stackexchange.com/questions/70411/… . Saya menggunakan bola bukannya ellipsoid, memotong poligon 0,2 derajat, dan tidak ada +lon_wrappilihan.
AndreJ

Jawaban:

6

'Artefak' ini adalah masalah yang sudah diketahui, dan biasanya merupakan hasil dari poligon yang melintasi antimeridian (180 derajat e / w). Cara memperbaikinya biasanya dengan ogr2ogr dengan opsi wrapdateline.

Tetapi itu tidak akan membantu Anda. Dalam kasus Anda, Anda menggunakan offset sekitar -156. Ini berarti bahwa setiap fitur yang melintasi 24E meridian (-156 + 180 = 24) memberi Anda masalah.

Untuk memperbaikinya, saya menghapus strip tipis di kedua sisi 24E.

Saya mulai dengan data Natural Earth, dan meninggalkan proyeksi (untuk saat ini), dan hanya menggunakan WGS84.

Untuk menggambar 24E meridian, saya menggunakan plugin QuickWKT dan menambahkan berikut ini sebagai layer baru ...

LINESTRING (24 -90,24 90)

Itu menarik satu garis sepanjang 24 meridian.

Selanjutnya, saya mendigitalkan lapisan awal poligon secara manual , menambahkan dua poligon, satu ke setiap sisi garis, dan belahan otak dalam ukuran, tetapi memeluk garis sedekat mungkin. (Perhatikan kualitas gambar garis di sini ...)

masukkan deskripsi gambar di sini

Anda mungkin harus melakukannya dengan plugin QuickWKT juga, untuk mendapatkan lebih presisi - ini melibatkan lebih banyak pengetikan dan saya ingin tes cepat :)

Selanjutnya, saya menggunakan klip untuk klip bentuk asli saya ke lapisan dengan dua poligon. Ini memotong garis tipis di sekitar 24E ...

masukkan deskripsi gambar di sini

akhirnya, saya menerapkan proyeksi OTF menggunakan CRS khusus Anda - dan hasilnya tetap.

masukkan deskripsi gambar di sini

Steven Kay
sumber
Ah, oh tidak! Seandainya saya kembali ke komputer saya lebih cepat sebelum Anda melakukan semua ini untuk saya. String proj4 saya sebenarnya sekitar 158; Saya baru saja menempel yang salah di (dengan 156) setelah melakukan beberapa eksperimen.
srha
Anda akan melihat masalah yang sama dengan 158 (saya tetap melakukannya) - ubah saja 24 menjadi 22. Jika Anda membuatnya bekerja tanpa melakukan ini, beri tahu saya caranya - saya tidak akan menemukan fitur lon_wrap di proj4 sampai baru-baru ini :) (kalau dipikir-pikir, itu mungkin menjelaskan mengapa Madagaskar tampaknya sedikit diimbangi ...)
Steven Kay
1
Jadi saya melakukan semua langkah yang Anda lakukan (pada dasarnya) - WKT strip poligon sekitar 22; Vektor> Geoprosesing> Perbedaan dengan tanah sebagai lapisan input saya dan strip WKT sebagai lapisan perbedaan; Proyeksi OTF. Hingga saat itu semuanya tampak hebat. Masalahnya muncul setelah saya menyimpan poligon yang dihasilkan dengan CRS khusus yang sama - poligon yang disimpan semuanya miring tetapi yang OTF baik-baik saja :(
srha
1
terima kasih telah menjelaskan ... baru saja memuat lapisan yang disimpan dari proyek saya (sekarang dibuang) (disimpan menggunakan crs proj4 khusus) dan nilai lon_wrap tidak muncul dalam metadata lapisan. itu mungkin masalahnya
Steven Kay
Hmm. Apakah Anda tahu cara memperbaikinya? Saya menemukan dokumentasi proj4 agak membingungkan.
srha