Gdzie poszły wielokąty po projekcji mapy w QGIS?

12

Jestem dość nowy w GIS know-how, ale napotkałem problem z rzutowaniem mapy świata. Mam plik kształtu wszystkich krajów, które pobrałem z Natural Earth. Po rzutowaniu go na ortografię, jak zasugerowano w innym pytaniu , zmieniłem długość / długość, aby Atlantyk znajdował się nieco w centrum.

Jednak po zmianie Stany Zjednoczone, Meksyk i Kanada znikają z mapy, jak widać tutaj: wprowadź opis zdjęcia tutaj

Gdy ponownie rzutuję mapę na długą drogę nad USA, wielokąty pojawiają się ponownie. Jakieś sugestie?

Jessica
źródło
2
Należy zauważyć, że Rosja, Kazachstan, Iran i kilka mniejszych krajów Bliskiego Wschodu również się nie pojawia, podobnie jak żadna część Antarktydy. Najwyraźniej oprogramowanie nie przycina prawidłowo wielokątów tylko częściowo ukrytych.
whuber
Która wersja Qgis? Czy możesz również podać bezpośredni link do warstwy pobranej z Natural Earth? Następnie możemy spróbować odtworzyć Twój problem. Dzięki!
Stéphane Henriod
To bardzo dziwna odmowa. Podaj link, abyśmy mogli go pobrać i sprawdzić.
Ger
Ok, zajrzałem do niego i usunąłem mój poprzedni komentarz, ponieważ wyraźnie tam są. co wydaje się, że w CRS z WGS 84 jest on wyświetlany na kuli ziemskiej, stąd połowa świata nie jest widoczna, w CRS z WGS84 Pseudo Mercator Wygląda poprawnie. jak w każdym innym CRS, pokazującym wszystkie masy lądowe.
Ger

Odpowiedzi:

12

Prostym powodem, dla którego QGIS nie może narysować tych wielokątów, jest to, że niektóre wierzchołki znajdują się z tyłu globu, a QGIS nie może narysować zamkniętego wielokąta z resztą. Funkcja ogr2ogr GDAL w tle jest zaprogramowana do uruchamiania całej funkcji, gdy wystąpi taki błąd.

Masz więc dwa rozwiązania:


Rozwiązanie 1: Przytnij wielokąty do półkuli

Trzeba Numerical Digitizei CAD Toolswtyczki do tego.

  • Ustaw CRS projektu na projekcję orto
  • utwórz nową warstwę punktową w tym samym rzucie
  • za pomocą wtyczki Numerical Digitize utwórz następujące punkty:
x y
6370000 0
0 6370000
-6370000 0
0 -6370000

(powinien również współpracować Add delimited text layer)

  • włączyć przyciąganie na warstwie punktowej
  • za pomocą narzędzi CAD wybierz pierwsze trzy punkty i utwórz z nich łuk
  • zrób to samo dla punktów 3 - 4 - 1 dla półkuli południowej
  • zmień CRS projektu na WGS84
  • Zapisz warstwę CAD jako WGS84 i dodaj ją do obszaru roboczego
  • Zapisz warstwę graniczną również jako WGS84 i dodaj ją do obszaru roboczego
  • przekonwertować linie CAD na nową warstwę wielokąta
  • usuń wszystko oprócz warstw wielokąta
  • przytnij granice świata do warstwy wielokąta CAD
  • ustaw projekt CRS z powrotem na orto

Powinieneś dostać to zdjęcie: wektor świata w projekcji orto


Rozwiązanie 2: Konwertuj dane wektorowe na raster

  • w Ustawieniach wyłącz on-the-fly-reprojection
  • Zapisz warstwę graniczną jako WGS84 i dodaj ją do obszaru roboczego
  • Użyj Raster -> Convert -> Rasterizena warstwie WGS84 wybierz x = 360 i y = 170 jako wymiary rastra (lub n * 360 i n * 170)
  • Użyj Raster -> Projection -> Reprojectdo projekcji orto pod inną nazwą i dodaj ją do obszaru roboczego. Dostaniesz kilka błędów, ale zrobi to reszta rastra. Nie przejmuj się, że widzisz szary prostokąt
  • Kliknij prawym przyciskiem myszy warstwę rastrową -> Właściwości, karta Styl
  • wybierz pseudo kolory
  • w zakładce przezroczystość wybierz 0 dla 100% przezroczystości
  • Usuń pierwszy raster
  • ustaw CRS projektu na orto

powinieneś zobaczyć poniższy obraz: wprowadź opis zdjęcia tutaj

Ta sama metoda działa z rastrami, jak widać na moim zdjęciu awatara ;-)


EDYTOWAĆ

Aby uzyskać ładną projekcję orto wyśrodkowaną na punkcie nie na równiku, wykonaj wycinek w projekcji aeqd o takich samych parametrach jak orto. Otrzymasz ten wynik:

wprowadź opis zdjęcia tutaj

AndreJ
źródło
Czy pierwsze podejście wymaga dostosowania, gdy rzut ortograficzny obejmuje jeden z biegunów (jak na zdjęciu awatara)? W takim przypadku napotykam problemy podczas rzutowania warstwy CAD na WGS84, ponieważ powstały wielokąt nie pokrywa bieguna
Jake,
Masz rację. Użycie projekcji aeqd zamiast WGS84 do obcinania działa w tym przypadku. Przycinanie kuli wydaje się łatwiejsze niż elipsoida.
AndreJ
Ach tak, to dobry pomysł! Jednak nadal nie wydaje się to być srebrną kulą: próbowałem zastosować to podejście z zestawem landdanych Natural Earth 1: 110M z projekcją wyśrodkowaną na 30 ° N, 110 ° E, i miałem problemy podczas projekcji zestawu danych na aeqd : Duże wielokąty odwracają się i niszczą wycinek. Jakieś pomysły?
Jake
Antypodialny punkt aeqd musi leżeć w morzu, aby uniknąć artefaktów. Środek aeqd nie musi być tym samym punktem, co dla ostatecznej orto, ale musi leżeć w okręgu wycinania.
AndreJ
0

Patrz komentarz powyżej, po prostu przeszli na drugą stronę globu. wielokąty krajów wciąż tam są, ale nie są widoczne, chyba że glob zostanie obrócony. nie jestem pewien, w jaki sposób obracasz kulę ziemską w tych okolicznościach, a mapowanie jest na ogół dwuwymiarowe (bez konturów itp.).

Ustawiłbym twój CRS na kraj, w którym chcesz nakładać dane. Na przykład użyłbym siatki irlandzkiej lub siatki OSGB, lub jak wspomniano powyżej WGS84 Pseudo Mercator.

Ger
źródło
3
Jessica chciała zdjęcia całego globu jako koła. Prognozy, które proponujesz, tego nie robią.
AndreJ
głosowanie w dół jest nieco trudne, jeśli mnie o to poprosisz.
Ger
To nie było przeze mnie ...
AndreJ
Chłodny. Po prostu nie rozumiem, dlaczego ludzie głosują na sugestię. Mam na to pszczołę i to wszystko.
Ger
4
Głosowania w dół nie należy podejmować osobiście . Cała sieć SE opiera się na głosach rosnących i malejących, aby przekazywać najlepsze odpowiedzi na początek pytania. Odrzuciłem odpowiedź, ponieważ „ustaw CRS na kraj ... dane nakładki” ignoruje deklarowane przez PO dążenie do utrzymania Oceanu Atlantyckiego na środku mapy.