Proyección tipo ojo de pez

12

Necesito una proyección especial con el propósito de una presentación efectiva en un póster. Me gustaría presentar el área de estudio (República Checa) en un contexto de toda Europa de tal manera que la República Checa ocupa la mayor área (como el 70%) en el centro, y el resto de Europa está a su alrededor, pero ridículamente pequeño. Es decir, la distorsión masiva a favor de la República Checa, como una lente de ojo de pez, cuando los coloca cerca de algún objeto y lo magnificarán enormemente en comparación con el entorno.

¿Hay alguna proyección que pueda usar para este propósito en Quantum GIS? EPSG o la fórmula estándar (que se puede usar en QGIS) es bienvenida.

Tomás
fuente
1
Puede hacer esto con un cartograma de distancia o área . No conozco ninguna solución QGIS. También puede hacerlo a través de una simple transformación personalizada de las coordenadas, si sabe cómo programar tales cosas. Ninguna proyección estándar creará un mapa de este tipo para usted, debido a las distorsiones extremas involucradas.
whuber
1
Esto podría hacerse, pero debes ser inteligente al respecto. Al comenzar en las coordenadas proyectadas y luego no proyectar con una proyección que usa un esferoide más pequeño, puede hacer que una pequeña parte del mundo parezca la mayor parte de un hemisferio. Reproyectar las coordenadas resultantes con casi cualquier proyección adecuada para ese hemisferio sería suficiente. Lo que gana en términos de no tener que codificar ninguna transformación de coordenadas usted mismo debe equilibrarse con (a) tener que hacer mucha experimentación de prueba y error y (b) tener un control mínimo sobre la distorsión alrededor de los bordes.
whuber
44
Yo usaría la ruta del cartograma. Herramientas simples con fácil implementación. Simplemente haga el valor para el representante checo. mucho más grande que el resto de Europa: scapetoad.choros.ch
HeikkiVesanto
1
Si no está limitado por rásteres en ese mapa, entonces el camino a seguir es exportar definitivamente a SVG y usar Inkspace u otro editor de gráficos vectoriales para crear el efecto de lupa. Si trabaja con vectores, no habrá problemas de píxeles feos. +1 para la República Checa :)
Miro
1
Aquí hay un tutorial para CorelDraw: youtube.com/watch?v=YE9hu1g20Gc , en Inkscape deberías lograr algo similar con la deformación de la envoltura: wiki.inkscape.org/wiki/index.php/Envelope_Deformation
Miro

Respuestas:

6

Si bien no es ojo de pez, puede hacer este estilo de mapa como un cartograma.

Los beneficios de esto es que hay herramientas preparadas para el trabajo y funcionarán con un conjunto sólido de conjuntos de datos.

Simplemente haga que el valor para la República Checa sea mucho mayor que el resto de Europa, ajustando los valores a las necesidades.

Una gran herramienta para esto es: ScapeToad

ingrese la descripción de la imagen aquí

HeikkiVesanto
fuente
Gracias Vesanto, ¡esto es exactamente lo que necesitaba! :-) ¡Herramienta fácil de usar y lista para usar! Finalmente usé esto. Y para mí se parece mucho a un ojo de pez :-)
Tomás
Lo único a tener en cuenta es que era muy lento, por lo que tuve que elegir la configuración más lenta e incluso reducir manualmente la cantidad de celdas de la cuadrícula ... pero se ve muy bien. Lo único que lamento es que no será fácil hacer esto con rásteres.
Tomás
2
puede acelerar las cosas usando qgis para simplificar las geometrías, o usar un archivo de forma de menor resolución (como los 50m o 110m de Natural Earth)
Steven Kay
8

Puede probar una de las Magnifying Glassproyecciones de Snyder que se encuentran en http://www.csiss.org/map-projections/Azimuthal.html No 32 a 36.

Se basan en esta publicación: https://pubs.er.usgs.gov/publication/70014498

No estoy seguro de si hay un recurso en línea con las fórmulas.

El mapa logarítmico de Hägerstrand también puede satisfacer sus necesidades: http://www.ncgia.ucsb.edu/projects/tobler/Projections/sld105.htm

O una proyección azimutal de raíz cuadrada: http://www.ncgia.ucsb.edu/projects/tobler/Projections/sld109.htm

Las referencias se pueden encontrar en http://www.cartoperspectives.org/index.php/journal/article/download/cp59-tobler/307 y en "Diseño de proyección de mapas a pequeña escala" de Frank Canters (disponible en Google books).

AndreJ
fuente
Gracias Andrej! ¡Todo eso se ve muy interesante! Pero sin las fórmulas o los epsgs o cualquier otra forma fácil de usarlos, no podré usarlos :-(
Tomás
1
No habrá código EPSG (¡no se realizarán búsquedas de petróleo con esos mapas!), Pero puede buscar las publicaciones.
AndreJ
7

Aquí hay un pseudo-ojo de pez hecho en Postgres / Postgis. Usé el complemento QChainage para crear 1000 puntos a lo largo de la frontera de cada país. Los puntos fueron reproyectados alrededor de la isla nula (0,0) usando el logaritmo de distancia, pero con acimut preservado.

ingrese la descripción de la imagen aquí

Utilicé Plat Caree para hacerlo circular, ya que wgs84 le da una apariencia más elipsoide.

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
fuente
interesante, gracias Steven! ¿Se puede hacer más para que el representante checo sea aún más grande en comparación con el resto?
Tomás
@tomas sí ... necesita ajustar las constantes que usé en st_scale () ... intente aumentar el 1.0 a 2.0 y disminuir el 7.0 a algo más pequeño.
Steven Kay
1

D3 tiene un plugin de distorsión de ojo de pez , que encontré buscando en Google "svg fisheye transform". Podría ser útil para su situación. Básicamente, sugiero convertir algunos de sus archivos de forma a SVG (¿o GeoJSON?) Haciendo su mapa usando la biblioteca D3.js cada vez más popular.

Pensé que sabía que las geometrías de los límites del país se podían convertir a tipos de vectores SVG, y sospeché que como SVG, podría haber enfoques más adecuados para implementar la transformación de ojo de pez que deseas.

Estoy de acuerdo con los otros comentaristas en que el software de ilustración / gráfico es más apropiado para su escenario, y dado que D3 funciona con algunos formatos de datos comunes (SVG y GeoJSON), puede proporcionarle una solución.

elrobis
fuente
gracias, pero ¿no es D3 una biblioteca para programadores, para creadores web? Posiblemente necesito un programa que cree una sola imagen para mí, posiblemente sin necesidad de programación.
Tomás
@Tomas, bastante justo. Sin embargo, dado que su pregunta simplemente se titula "Proyección tipo ojo de pez", tendrá una sólida clasificación de búsqueda en Google para consultas similares, que con el tiempo probablemente incluirán algunos desarrolladores. Finalmente, esta respuesta podría ser útil para otra persona.
elrobis
0

Creo que necesitará una distorsión extrema para que la República Checa se vea así. Hay una técnica de "proyección estereográfica" fotográfica bastante popular que a veces se usa en la fotografía panorámica para crear "mundos de globo" que puede funcionar si se usa el resultado como superposición en Europa. (No considere esto como una respuesta, ya que es puramente hipotético y nunca lo he intentado con un mapa). Además, esto sería más un proyecto de edición de gráficos / fotos porque probablemente tendría que fotografiar su mapa impreso o posiblemente exportarlo fuera del SIG a una imagen de alta resolución, luego copie y recorte una serie de imágenes alrededor de un punto central (centrado en un área uniforme en el medio con superposición suficiente) para que puedan usarse como entrada en la función panorámica. Una vez que tenga la "proyección estereográfica"

Por supuesto, necesitaría agregar etiquetas después del hecho en Illustrator, Corel Draw o importando la imagen final como ráster nuevamente en GIS y creando algunos gráficos / anotaciones.

Google "panorama de proyección estereográfica" para ver ejemplos.

Aquí hay un tutorial de ejemplo: http://www.photographymad.com/pages/view/little-planet-photos-5-simple-steps-to-making-panorama-worlds

ingrese la descripción de la imagen aquí

Jakub Sisak GeoGraphics
fuente