Projekcja typu rybie oko

12

Potrzebuję specjalnej projekcji w celu efektywnej prezentacji na plakacie. Chciałbym przedstawić obszar badań (Republika Czeska) w kontekście całej Europy w taki sposób, aby Republika Czeska zajmowała najwięcej obszaru (około 70%) w centrum, a reszta Europy jest wokół niego, ale śmiesznie małe. Lubię masywne zniekształcenie na rzecz Republiki Czeskiej, jak obiektyw typu rybie oko, gdy umieścisz je blisko jakiegoś obiektu, a one znacznie go powiększą w porównaniu z otoczeniem.

Czy jest jakaś projekcja, której mogę użyć w tym celu w Quantum GIS? EPSG lub formuła w standardzie (która może być używana w QGIS) jest mile widziana.

Tomas
źródło
1
Można to zrobić za pomocą kartogramu odległości lub obszaru . Nie znam żadnych rozwiązań QGIS. Możesz także zrobić to poprzez zwykłą niestandardową transformację współrzędnych, jeśli wiesz, jak zaprogramować takie rzeczy. Żadna standardowa projekcja nie stworzy dla ciebie takiej mapy z powodu ekstremalnych zniekształceń.
whuber
1
Można to zrobić, ale musisz być sprytny. Rozpoczynając od rzutowanych współrzędnych, a następnie odsuwając się od projekcji, która wykorzystuje mniejszą sferoidę, możesz w efekcie sprawić, że mała część świata wydaje się być w większości półkulą. Ponowne rzutowanie powstałych współrzędnych z prawie dowolnym rzutem odpowiednim dla tej półkuli by załatwiło sprawę. To, co zyskujesz, jeśli nie musisz samodzielnie kodować żadnych przekształceń współrzędnych, musi zostać zrównoważone z (a) koniecznością przeprowadzenia wielu prób i błędów oraz (b) minimalną kontrolą nad zniekształceniami wokół krawędzi.
whuber
4
Chciałbym skorzystać z trasy kartogramu. Proste narzędzia z gotową implementacją. Podaj wartość dla czeskiego przedstawiciela. znacznie większy niż reszta Europy: scapetoad.choros.ch
HeikkiVesanto
1
Jeśli nie jesteś ograniczony rastrami na tej mapie, zdecydowanie wybierz eksport do SVG i użyj Inkspace lub innego edytora grafiki wektorowej, aby uzyskać efekt szkła powiększającego. Jeśli pracujesz z wektorami, nie będzie żadnych brzydkich problemów z pikselami. +1 dla Czech :)
Miro
1
Oto samouczek dla CorelDraw: youtube.com/watch?v=YE9hu1g20Gc , w Inkscape powinieneś osiągnąć podobny efekt
Miro

Odpowiedzi:

6

Ten styl mapy, choć nie rybie oko, można wykonać jako kartogram.

Zaletą tego jest to, że istnieją gotowe narzędzia do pracy i będą działać z solidnym zestawem danych.

Po prostu spraw, aby wartość dla Republiki Czeskiej była znacznie większa niż w pozostałej części Europy, dostosowując wartości do potrzeb.

Świetnym narzędziem do tego jest: ScapeToad

wprowadź opis zdjęcia tutaj

HeikkiVesanto
źródło
Dzięki Vesanto, właśnie tego potrzebowałem! :-) Gotowe do użycia, przyjazne dla użytkownika narzędzie! W końcu to wykorzystałem. I wygląda mi to jak rybie oko :-)
Tomas
Jedyną rzeczą do odnotowania jest to, że było bardzo bardzo wolne, więc musiałem wybrać najwolniejsze ustawienia, a nawet ręcznie zmniejszyć liczbę komórek siatki .. ale wygląda świetnie. Jedyne czego żałuję to to, że nie będzie to łatwe z rastrami.
Tomas,
2
możesz przyspieszyć, używając qgis w celu uproszczenia geometrii, lub użyj pliku kształtu o niższej rozdzielczości (np. 50 m lub 110 m od Ziemi)
Steven Kay
8

Możesz wypróbować jedną z Magnifying Glassprojekcji Snydera znalezionych na http://www.csiss.org/map-projections/Azimuthal.html nr 32 do 36.

Opierają się na tej publikacji: https://pubs.er.usgs.gov/publication/70014498

Nie jestem pewien, czy istnieje formuła dostępna online.

Mapa logarytmiczna firmy Hägerstrand może również pasować do twoich potrzeb: http://www.ncgia.ucsb.edu/projects/tobler/Projections/sld105.htm

Lub projekcja azymutalna o pierwiastku kwadratowym: http://www.ncgia.ucsb.edu/projects/tobler/Projections/sld109.htm

Odniesienia można znaleźć w http://www.cartoperspectives.org/index.php/journal/article/download/cp59-tobler/307 oraz w „Projekcie projekcji mapy na małą skalę” Franka Cantersa (dostępnym z książek Google).

AndreJ
źródło
Dzięki Andrej! To wszystko wygląda bardzo interesująco! Ale bez formuł, epsgów ani żadnego innego łatwego sposobu ich używania nie będę mógł ich użyć :-(
Tomas
1
Nie będzie kodu EPSG (z tymi mapami nie będzie wyszukiwania oleju!), Ale możesz uważać na publikacje.
AndreJ
7

Oto pseudo-rybie oko wykonane w Postgres / Postgis. Użyłem wtyczki QChainage, aby utworzyć 1000 punktów wzdłuż każdej granicy kraju. Punkty zostały przerzucone wokół wyspy zerowej (0,0) przy użyciu logarytmu odległości, ale z zachowanym azymutem.

wprowadź opis zdjęcia tutaj

Użyłem Plat Caree, aby uczynić go okrągłym, ponieważ wgs84 daje bardziej elipsoidalny wygląd.

select
    st_asewkt(
        st_endpoint(
            st_scale(
                st_rotate(
                    st_makeline(
                        st_setsrid(st_makepoint(0,0),4326),
                        st_setsrid(st_makepoint(0,1),4326)
                    ),
                    st_azimuth(
                        st_setsrid(
                            st_makepoint(0,0),
                            4326
                        )
                        ,
                        ST_translate(geom,-15.0,-50.0)
                    ) 
                ),
                -(1.0+(7.0*log(ST_Distance(st_setsrid(st_makepoint(0,0),4326),ST_translate(geom,-15.0,-50.0))))),
                (1.0+(7.0*log(ST_Distance(st_setsrid(st_makepoint(0,0),4326),ST_translate(geom,-15.0,-50.0)))))

            )   
        )
    ) as pt

from
    qqq3lines
Steven Kay
źródło
ciekawe, dzięki Steven! Czy można to zrobić więcej, aby przedstawiciel Czech był jeszcze większy w porównaniu do reszty?
Tomas
@tomas tak ... musisz poprawić stałe, których użyłem w st_scale () .. spróbuj zwiększyć 1.0 do 2.0, a zmniejszyć 7.0 do czegoś mniejszego.
Steven Kay,
1

D3 ma wtyczkę zniekształcającą rybie oko , którą znalazłem przez Googlinga „svg rybie oko transformacja”. Może być przydatna w twojej sytuacji. Zasadniczo proponuję przekonwertować niektóre z twoich plików kształtów do SVG (lub GeoJSON?), Tworząc mapę przy użyciu coraz popularniejszej biblioteki D3.js.

Myślałem, że wiedziałem, że geometrie granic kraju można przekonwertować na typy wektorów SVG, i podejrzewałem, że jako SVG mogą istnieć bardziej odpowiednie podejścia do wdrożenia pożądanej transformacji rybie oko.

Zgadzam się z innymi komentatorami, że oprogramowanie do tworzenia ilustracji / grafiki jest bardziej odpowiednie dla twojego scenariusza, a ponieważ D3 współpracuje z niektórymi popularnymi formatami danych (SVG i GeoJSON), może stanowić dla ciebie rozwiązanie.

elrobis
źródło
dzięki, ale czy D3 nie jest biblioteką dla programistów, twórców stron internetowych? Być może potrzebuję programu, który utworzy dla mnie jedno zdjęcie, być może bez potrzeby programowania.
Tomas
@Tomas, w porządku. Ponieważ twoje pytanie jest po prostu zatytułowane „Projekcja typu rybie oko”, będzie miało silny ranking wyszukiwania w Google dla podobnych zapytań, które z czasem prawdopodobnie obejmą niektórych programistów. Ostatecznie ta odpowiedź może być przydatna dla kogoś innego.
elrobis
0

Myślę, że tak będzie wyglądać ekstremalne zniekształcenie dla Czech. Istnieje dość popularna technika fotograficzna „projekcji stereograficznej” czasami używana w fotografii panoramicznej do tworzenia „światów globu”, która może zadziałać, jeśli zastosujesz ten wynik jako nakładkę na Europę. (Nie uważaj tego za odpowiedź, ponieważ jest to czysto hipotetyczne i nigdy nie próbowałem tego z mapą). Byłby to raczej projekt do edycji grafiki / zdjęć, ponieważ prawdopodobnie musiałbyś sfotografować wydrukowaną mapę lub ewentualnie wyeksportować ją poza GIS do obrazu o wysokiej rozdzielczości, a następnie skopiuj i przytnij serię zdjęć wokół centralnego punktu (wyśrodkowanego na jednolitym obszarze pośrodku z wystarczającym nałożeniem), aby można je było wykorzystać jako dane wejściowe do funkcji panoramy. Po uzyskaniu „projekcji stereograficznej”

Oczywiście trzeba dodać etykiety po fakcie w programie Illustrator, Corel Draw lub importując ostateczny obraz jako raster z powrotem do GIS i tworząc niektóre grafiki / adnotacje.

Google „stereograficzna panorama projekcyjna”, aby zobaczyć przykłady.

Oto przykładowy samouczek: http://www.photographymad.com/pages/view/little-planet-photos-5-simple-steps-to-making-panorama-worlds

wprowadź opis zdjęcia tutaj

Jakub Sisak GeoGraphics
źródło