Proiezione simil-fisheye


12

Ho bisogno di una proiezione speciale ai fini di una presentazione efficace su un poster. Mi piacerebbe presentare l'area di studio (repubblica ceca) in un contesto di tutta l'Europa in modo tale che la repubblica ceca occupi la maggior parte dell'area (come il 70%) al centro e che il resto dell'Europa ci circonda, ma ridicolmente piccolo. Vale a dire una grande distorsione a favore della repubblica ceca, come una lente fish-eye, quando li avvicini a qualche oggetto e lo ingrandiranno enormemente rispetto all'ambiente circostante.

C'è qualche proiezione che posso usare a questo scopo in Quantum GIS? EPSG o la formula standard (che può essere utilizzata in QGIS) sono i benvenuti.


1
Puoi farlo con un cartogramma di distanza o area . Non sono a conoscenza di soluzioni QGIS. Potresti anche farlo attraverso una semplice trasformazione personalizzata delle coordinate, se sai come programmare tali cose. Nessuna proiezione standard creerà tale mappa per te, a causa delle distorsioni estreme coinvolte.
whuber

1
Questo potrebbe essere fatto, ma devi essere intelligente. Iniziando da coordinate proiettate e quindi non proiettando con una proiezione che utilizza uno sferoide più piccolo, si può in effetti far sembrare una piccola parte del mondo come la maggior parte di un emisfero. Riproiettare le coordinate risultanti con qualsiasi proiezione adatta a quell'emisfero farebbe il trucco. Ciò che guadagni in termini di non dover codificare tu stesso le trasformazioni di coordinate deve essere bilanciato contro (a) dover fare molta sperimentazione di prova ed errore e (b) avere un controllo minimo sulla distorsione attorno ai bordi.
whuber

4
Vorrei usare il percorso del cartogramma. Strumenti semplici con pronta implementazione. Basta fare il valore per il rappresentante ceco. molto più grande del resto d'Europa: scapetoad.choros.ch
HeikkiVesanto

1
Se non sei limitato dai raster in quella mappa, la strada da percorrere è sicuramente esportare in SVG e utilizzare Inkspace o altri editor di grafica vettoriale per rendere l'effetto lente d'ingrandimento. Se lavori con i vettori, non ci saranno brutti problemi con i pixel. +1 per la Repubblica Ceca :)
Miro,

1
Ecco un tutorial per CorelDraw: youtube.com/watch?v=YE9hu1g20Gc , in Inkscape dovresti ottenere risultati simili con la deformazione della busta: wiki.inkscape.org/wiki/index.php/Envelope_Deformation
Miro

Risposte:


6

Pur non essendo fish eye, puoi creare questo stile di mappa come un cartogramma.

I vantaggi di questo sono che ci sono strumenti già pronti per il lavoro e funzioneranno con un set robusto di set di dati.

Rendi il valore per la Repubblica Ceca molto più grande rispetto al resto d'Europa, regolando i valori in base alle esigenze.

Un ottimo strumento per questo è: ScapeToad

inserisci qui la descrizione dell'immagine


Grazie Vesanto, questo è esattamente ciò di cui avevo bisogno! :-) Strumento pronto per l'uso e facile da usare! Alla fine l'ho usato. E a me sembra quasi un pesce-occhio :-)
Tomas,

L'unica cosa da notare è che è stato molto lento, quindi ho dovuto scegliere le impostazioni più lente e persino abbassare manualmente il numero di celle della griglia .. ma sembra fantastico. L'unica cosa di cui mi pento è che non sarà facile farlo con i raster.
Tomas,

2
puoi velocizzare le cose usando qgis per semplificare le geometrie o usare uno shapefile a risoluzione più bassa (come 50m o 110m dalla Terra Naturale)
Steven Kay

8

Potresti provare una delle Magnifying Glassproiezioni di Snyder disponibili su http://www.csiss.org/map-projections/Azimuthal.html da 32 a 36.

Si basano su questa pubblicazione: https://pubs.er.usgs.gov/publication/70014498

Non sono sicuro che ci sia una risorsa online con le formule.

La mappa logaritmica di Hägerstrand potrebbe anche adattarsi alle tue esigenze: http://www.ncgia.ucsb.edu/projects/tobler/Projections/sld105.htm

O una proiezione azimutale con radice quadrata: http://www.ncgia.ucsb.edu/projects/tobler/Projections/sld109.htm

I riferimenti sono disponibili in http://www.cartoperspectives.org/index.php/journal/article/download/cp59-tobler/307 e in "Design di proiezione di mappe su piccola scala" di Frank Canters (disponibile da Google books).


Grazie Andrej! Sembra tutto molto interessante! Ma senza le formule o epsgs o qualsiasi altro modo semplice come usarli non sarò in grado di usarlo :-(
Tomas

1
Non ci sarà alcun codice EPSG (nessuna ricerca di petrolio verrà effettuata con quelle mappe!), Ma puoi cercare le pubblicazioni.
AndreJ,

7

Ecco uno pseudo-fisheye fatto in Postgres / Postgis. Ho usato il plugin QChainage per creare 1000 punti lungo ogni confine del paese. I punti sono stati riproiettati intorno all'isola nulla (0,0) usando il logaritmo della distanza, ma con azimut conservato.

inserisci qui la descrizione dell'immagine

Ho usato Plat Caree per renderlo circolare, poiché wgs84 dà un aspetto più ellissoidale.

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

interessante, grazie Steven! Si può fare di più in modo che il rappresentante ceco sia ancora più grande rispetto agli altri?
Tomas,

@tomas sì ... devi modificare le costanti che ho usato in st_scale () .. prova ad aumentare la 1.0 a 2.0 e la riduzione della 7.0 a qualcosa di più piccolo.
Steven Kay,

1

D3 ha un plugin di distorsione fisheye , che ho trovato su Google "svg fisheye transform" .. Potrebbe essere utile per la tua situazione. Fondamentalmente, sto suggerendo di convertire alcuni dei tuoi shapefile in SVG (o GeoJSON?) Rendendo la tua mappa usando la sempre più popolare libreria D3.js.

Pensavo che sapevo che le geometrie dei confini del paese potevano essere convertite in tipi vettoriali SVG e sospettavo che come SVG potessero esserci approcci più adatti per implementare la trasformazione fisheye che desideri.

Concordo con gli altri commentatori sul fatto che il software di illustrazione / grafica sia più appropriato al tuo scenario e, poiché D3 funziona con alcuni formati di dati comuni (SVG e GeoJSON), potrebbe fornirti una soluzione.


grazie, ma D3 non è una libreria per programmatori, per creatori di siti web? Forse ho bisogno di un programma che crei una singola immagine per me, possibilmente senza necessità di programmazione.
Tomas,

@Tomas, abbastanza giusto. Poiché la tua domanda è semplicemente intitolata "Proiezione simil-Fisheye", tuttavia, avrà un forte ranking di ricerca su Google per query simili, che nel tempo probabilmente includeranno alcuni sviluppatori. Alla fine questa risposta potrebbe essere utile a qualcun altro.
elrobis,

0

Penso che avrai bisogno di un'estrema distorsione perché la Repubblica Ceca assomigli a questo. Esiste una tecnica fotografica di "proiezione stereografica" piuttosto popolare a volte utilizzata nella fotografia panoramica per creare "mondi a globo" che può funzionare se si utilizza il risultato come sovrapposizione sull'Europa. (Non considerare questa una risposta poiché è puramente ipotetica e non l'ho mai provata con una mappa) Inoltre, questo sarebbe più un progetto di grafica / fotoritocco perché probabilmente dovresti fotografare la tua mappa stampata o possibilmente esportarla da GIS a un'immagine ad alta risoluzione, quindi copia e ritaglia una serie di immagini attorno a un punto centrale (centrato su un'area uniforme al centro con sufficiente sovrapposizione) in modo che possano essere utilizzate come input nella funzione panorama. Una volta che hai la "proiezione stereografica"

Ovviamente dovresti aggiungere etichette dopo il fatto in Illustrator, Corel Draw o importando l'immagine finale come raster in GIS e creando alcuni grafici / annotazioni.

"Panorama di proiezione stereografica" di Google per vedere esempi.

Ecco un tutorial di esempio: http://www.photographymad.com/pages/view/little-planet-photos-5-simple-steps-to-making-panorama-worlds

inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.