Balık gözü benzeri projeksiyon


12

Poster üzerinde etkili sunum yapmak için özel bir projeksiyona ihtiyacım var. Çalışma alanını (Çek cumhuriyeti) tüm Avrupa bağlamında, Çek cumhuriyeti merkezde en fazla alanı (% 70 gibi) ele geçirecek ve Avrupa'nın geri kalanı onun etrafında olacak şekilde sunmak istiyorum, ama gülünç derecede küçük. Yani, bir cumhuriyetin lehine büyük bir çarpıklık gibi, balık gözü lens gibi, onları bir nesneye yaklaştırdığınızda ve çevreye kıyasla kitlesel olarak büyüyecekler.

Quantum GIS'de bu amaçla kullanabileceğim herhangi bir projeksiyon var mı? EPSG veya standart formülü (QGIS'de kullanılabilir) kabul edilir.


1
Bunu bir mesafe veya alan kartogramıyla yapabilirsiniz . Herhangi bir QGIS çözümünün farkında değilim. Bu tür şeyleri nasıl programlayacağınızı biliyorsanız, koordinatların basit bir özel dönüşümü yoluyla da yapabilirsiniz. Hiçbir standart projeksiyon, söz konusu aşırı çarpıklıklar nedeniyle sizin için böyle bir harita oluşturmayacaktır.
whuber

1
Bu yapılabilir, ancak bu konuda akıllı olmalısınız. Öngörülen koordinatlardan başlayıp, daha küçük bir sferoid kullanan bir projeksiyonla projeksiyondan çıkarak, aslında dünyanın küçük bir bölümünün yarıkürenin çoğu gibi görünmesini sağlayabilirsiniz. Ortaya çıkan koordinatları, bu yarımküre için hemen hemen her projeksiyonla yeniden yapmak hile yapacaktır. Kendinizin herhangi bir koordinat dönüşümünü kodlamak zorunda kalmama açısından kazandığınız şey (a) çok fazla deneme-yanılma deneyi yapmak zorunda kalmak ve (b) kenarlardaki bozulma üzerinde minimum kontrole sahip olmak ile dengelenmelidir.
whuber

4
Kartogram rotasını kullanırdım. Hazır uygulama ile basit araçlar. Sadece Çek temsilcisi için değer yap. Avrupa'nın geri kalanından çok daha büyük: scapetoad.choros.ch
HeikkiVesanto

1
Bu haritadaki rasterlerle sınırlı değilseniz, o zaman gitmek için yol kesinlikle SVG'ye dışa aktarmak ve büyüteç efekti yapmak için Inkspace veya diğer vektör grafik düzenleyicisini kullanmaktır. Vektörlerle çalışırsanız, çirkin piksel sorunları olmaz. Çek Cumhuriyeti için +1 :)
Miro

1
CorelDraw için bir öğretici: youtube.com/watch?v=YE9hu1g20Gc , Inkscape'te zarf deformasyonuna benzer bir şekilde başarmanız gerekir: wiki.inkscape.org/wiki/index.php/Envelope_Deformation
Miro

Yanıtlar:


6

Balık gözü olmasa da, bu harita stilini bir kartogram olarak yapabilirsiniz.

Bunun faydaları, iş için hazır araçlar bulunması ve sağlam bir veri seti seti ile çalışmasıdır.

Çek Cumhuriyeti'nin değerini Avrupa'nın geri kalanından çok daha büyük hale getirin ve değerleri ihtiyaçlara göre ayarlayın.

Bunun için harika bir araç: ScapeToad

resim açıklamasını buraya girin


Teşekkürler Vesanto, tam da ihtiyacım olan şey bu! :-) Kullanıma hazır, kullanıcı dostu bir araç! Sonunda bunu kullandım. Ve bana çok balık gözü gibi görünüyor :-)
Tomas

Unutulmaması gereken tek şey çok çok yavaş olmasıydı, bu yüzden en yavaş ayarları seçmek ve hatta ızgara hücre sayısını manuel olarak azaltmak zorunda kaldım .. ama harika görünüyor. Pişman olduğum tek şey bunu rasterlerle yapmanın kolay olmayacağı.
Tomas

2
geometrileri basitleştirmek için qgis kullanarak işleri hızlandırabilir veya daha düşük çözünürlüklü bir şekil dosyası kullanabilirsiniz (Natural Earth'ten 50m veya 110m gibi)
Steven Kay

8

Snyder'ın http://www.csiss.org/map-projections/Azimuthal.html 32-36 no'lu Magnifying Glassprojeksiyonlardan birini deneyebilirsiniz .

Bu yayına dayanıyorlar: https://pubs.er.usgs.gov/publication/70014498

Formüllerle çevrimiçi bir kaynak olup olmadığından emin değilim.

Hägerstrand'ın Logaritmik Haritası da ihtiyaçlarınıza uygun olabilir: http://www.ncgia.ucsb.edu/projects/tobler/Projections/sld105.htm

Veya bir kare kök azimuthal projeksiyonu: http://www.ncgia.ucsb.edu/projects/tobler/Projections/sld109.htm

Kaynaklar http://www.cartoperspectives.org/index.php/journal/article/download/cp59-tobler/307 adresinde ve Frank Canters tarafından sunulan "Küçük Ölçekli Harita Projeksiyon Tasarımı" nda (Google kitaplarından edinilebilir) bulunabilir.


Teşekkürler Andrej! Hepsi çok ilginç görünüyor! Ancak formüller veya epsgs veya bunları nasıl kullanacağım başka kolay bir yol olmadan onu kullanamayacağım :-(
Tomas

1
EPSG kodu olmayacaktır (bu haritalarla yağ araması yapılmayacaktır!), Ancak yayınlara dikkat edebilirsiniz.
AndreJ

7

İşte Postgres / Postgis'te yapılan sahte bir balıkgözü. Her ülke sınırı boyunca 1000 puan oluşturmak için QChainage eklentisini kullandım. Noktalar, mesafe logaritması kullanılarak sıfır adası (0,0) etrafında yeniden oluşturulmuştur, ancak azimut korunmuştur.

resim açıklamasını buraya girin

Wgs84 daha elipsoid bir görünüm verdiği için Plat Caree'yi dairesel yapmak için kullandım.

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

ilginç, teşekkürler Steven! Çek Cumhuriyeti geri kalanına kıyasla daha da büyük olacak şekilde daha fazla yapılabilir mi?
Tomas

@tomas yes ... st_scale () 'de kullandığım sabitleri düzeltmeniz gerekiyor. 1.0'ı 2.0'a yükseltmeyi ve 7.0'ı daha küçük bir şeye indirmeyi deneyin.
Steven Kay

1

D3 , Googling "svg balıkgözü dönüşümü" ile bulduğum bir balıkgözü bozulma eklentisine sahiptir . Durumunuz için yararlı olabilir. Temel olarak, şekil dosyalarınızdan bazılarını SVG'ye (veya GeoJSON?) Dönüştürmenizi ve haritanızı giderek daha popüler olan D3.js kütüphanesini kullanarak yapmanızı öneriyorum.

Benim düşüncem, ülkenin sınır geometrilerinin SVG vektör türlerine dönüştürülebileceğini biliyordum ve SVG olarak, istediğiniz balıkgözü dönüşümünü uygulamak için daha uygun yaklaşımlar olabileceğinden şüphelendim.

Diğer yorumcularla illüstrasyon / grafik yazılımının senaryonuza daha uygun olduğunu kabul ediyorum ve D3 bazı yaygın veri formatlarıyla (SVG ve GeoJSON) çalıştığından sizin için bir çözüm sağlayabilir.


teşekkürler, ama D3 programcılar için, web yaratıcıları için bir kütüphane değil mi? Muhtemelen programlama gerekmeden benim için tek bir resim oluşturacak bir programa ihtiyacım var.
Tomas

@Tomas, yeterince adil. Sorunuz basitçe "Balıkgözü benzeri projeksiyon" olarak adlandırıldığından, benzer sorgular için google'da zaman içinde bazı geliştiricileri içerecek güçlü bir arama sıralamasına sahip olacaktır. Sonunda bu cevap başka biri için yararlı olabilir.
elrobis

0

Bence Çek Cumhuriyeti'nin böyle görünmesi için aşırı bir çarpıklığa ihtiyacınız olacak. Sonucu Avrupa'ya bindirme olarak kullandıysanız işe yarayabilecek "dünya dünyaları" oluşturmak için bazen panorama fotoğrafçılığında kullanılan oldukça popüler bir fotoğrafik "stereografik projeksiyon" tekniği vardır. (Bu sadece varsayımsal olduğu için bunu bir cevap olarak düşünmeyin ve bunu bir harita ile hiç denemedim) daha sonra, panorama işlevine giriş olarak kullanılabilmeleri için merkezi bir nokta etrafında (ortada tekdüze bir alan üzerinde ortalanmış) bir dizi görüntüyü kopyalayıp kırpın. Bir kez "stereografik projeksiyon"

Tabii ki, Illustrator, Corel Draw'da veya son görüntüyü tekrar CBS'ye içe aktararak ve bazı grafikler / ek açıklamalar oluşturarak etiket eklemeniz gerekir.

Google "stereografik projeksiyon panoraması" örneklerini görmek için.

İşte örnek bir öğretici: http://www.photographymad.com/pages/view/little-planet-photos-5-simple-steps-to-making-panorama-worlds

resim açıklamasını buraya girin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.