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?


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


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.


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.
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.