การฉายแบบฟิชอาย


12

ฉันต้องการการฉายภาพพิเศษเพื่อจุดประสงค์ในการนำเสนอที่มีประสิทธิภาพบนโปสเตอร์ ฉันต้องการที่จะนำเสนอพื้นที่การศึกษา (สาธารณรัฐเช็ก) ในบริบทของทั้งยุโรปในลักษณะที่สาธารณรัฐเช็กจะใช้พื้นที่มากที่สุด (เช่น 70%) ในศูนย์และส่วนที่เหลือของยุโรปอยู่รอบ ๆ แต่มีขนาดเล็กอย่างน่าขัน เช่นชอบการบิดเบือนขนาดใหญ่ในความโปรดปรานของสาธารณรัฐเช็กเช่นเลนส์ตาปลาเมื่อคุณทำให้พวกเขาอยู่ใกล้กับวัตถุบางอย่างและพวกเขาจะขยายอย่างหนาแน่นเมื่อเทียบกับสภาพแวดล้อม

มีการคาดการณ์ใด ๆ ที่ฉันสามารถใช้เพื่อจุดประสงค์นี้ใน Quantum GIS ยินดีต้อนรับ EPSG หรือสูตรมาตรฐาน (ซึ่งสามารถใช้ใน QGIS)


1
คุณสามารถทำเช่นนี้กับระยะทางหรือพื้นที่ cartogram ฉันไม่ได้ตระหนักถึงวิธีการแก้ปัญหา QGIS ใด ๆ นอกจากนี้คุณยังสามารถทำการแปลงพิกัดแบบกำหนดเองได้ง่ายๆหากคุณรู้วิธีการเขียนโปรแกรมสิ่งต่าง ๆ ไม่มีการฉายภาพมาตรฐานที่จะสร้างแผนที่ดังกล่าวให้กับคุณเนื่องจากมีการบิดเบือนที่เกี่ยวข้อง
whuber

1
สิ่งนี้สามารถทำได้ แต่คุณต้องฉลาดเกี่ยวกับเรื่องนี้ ด้วยการเริ่มต้นในพิกัดที่ฉายแล้วไม่มีการฉายด้วยการฉายที่ใช้ทรงกลมขนาดเล็กคุณสามารถทำให้ส่วนเล็ก ๆ ของโลกดูเหมือนจะเป็นส่วนใหญ่ของซีกโลก การคัดลอกพิกัดที่เกิดขึ้นด้วยการประมาณค่าใด ๆ ที่เหมาะสมกับซีกโลกนั้นจะเป็นการหลอกลวง สิ่งที่คุณได้รับในแง่ของการไม่ต้องแปลงการแปลงพิกัดด้วยตัวเองจะต้องมีความสมดุลกับ (a) ต้องทำการทดลองและข้อผิดพลาดจำนวนมากและ (b) ควบคุมการบิดเบือนรอบขอบได้น้อยที่สุด
whuber

4
ฉันจะใช้เส้นทางของ cartogram เครื่องมือง่ายๆพร้อมใช้งาน เพียงแค่ทำให้ค่าสำหรับตัวแทนสาธารณรัฐ มีขนาดใหญ่กว่าส่วนอื่น ๆ ในยุโรป: scapetoad.choros.ch
HeikkiVesanto

1
หากคุณไม่ได้ถูก จำกัด ด้วย rasters ในแผนที่นั้นวิธีการที่แน่นอนคือการส่งออกไปยัง SVG และใช้ Inkspace หรือโปรแกรมแก้ไขกราฟิกแบบเวกเตอร์อื่น ๆ เพื่อสร้างเอฟเฟกต์แว่นขยาย หากคุณทำงานกับเวกเตอร์จะไม่มีปัญหาพิกเซลน่าเกลียด +1 สำหรับสาธารณรัฐเช็ก :)
Miro

1
นี่คือบทช่วยสอนสำหรับ CorelDraw: youtube.com/watch?v=YE9hu1g20Gcใน Inkscape คุณ shoul จะประสบความสำเร็จคล้ายกับการเปลี่ยนรูปซองจดหมาย: wiki.inkscape.org/wiki/index.php/Envelope_Deformation
Miro

คำตอบ:


6

ในขณะที่ไม่ใช่ตาปลาคุณสามารถทำให้แผนที่ลักษณะนี้เป็นรูปกราฟ

ประโยชน์ของสิ่งนี้คือมีเครื่องมือที่พร้อมสำหรับงานและจะทำงานกับชุดข้อมูลที่มีประสิทธิภาพ

เพียงแค่ทำให้ค่าสำหรับสาธารณรัฐเช็กมีขนาดใหญ่กว่าส่วนอื่น ๆ ของยุโรปปรับค่าให้เหมาะสมกับความต้องการ

เครื่องมือที่ยอดเยี่ยมสำหรับสิ่งนี้คือ: ScapeToad

ป้อนคำอธิบายรูปภาพที่นี่


ขอบคุณ Vesanto นี่คือสิ่งที่ฉันต้องการ! :-) เครื่องมือที่ใช้งานง่ายพร้อมใช้งาน! ในที่สุดฉันก็ใช้สิ่งนี้ และมันก็ดูคล้ายกับตาปลาสำหรับฉัน :-)
โทมัส

สิ่งเดียวที่ควรทราบคือมันช้ามากดังนั้นฉันจึงต้องเลือกการตั้งค่าที่ช้าที่สุดและลดจำนวนของกริดเซลล์ด้วยตนเอง .. แต่มันก็ดูดี สิ่งเดียวที่ฉันเสียใจคือมันไม่ง่ายที่จะทำเช่นนี้ด้วย rasters
โทมัส

2
คุณสามารถเร่งความเร็วได้โดยใช้ qgis เพื่อทำให้รูปทรงเรขาคณิตง่ายขึ้นหรือใช้รูปร่างไฟล์ที่มีความละเอียดต่ำกว่า (เช่น 50m หรือ 110m จาก Natural Earth)
Steven Kay

8

คุณอาจลองใช้การMagnifying Glassคาดการณ์ของสไนเดอร์ที่พบในhttp://www.csiss.org/map-projections/Azimuthal.htmlไม่ใช่ 32 ถึง 36

พวกเขาอ้างอิงจากเอกสารนี้: https://pubs.er.usgs.gov/publication/70014498

ฉันไม่แน่ใจว่ามีแหล่งข้อมูลออนไลน์ที่มีสูตรหรือไม่

แผนที่ Logarithmic ของHägerstrandอาจเหมาะกับความต้องการของคุณ: http://www.ncgia.ucsb.edu/projects/tobler/Projections/sld105.htm

หรือการฉาย azimuthal รากที่สอง: http://www.ncgia.ucsb.edu/projects/tobler/Projections/sld109.htm

การอ้างอิงสามารถพบได้ในhttp://www.cartoperspectives.org/index.php/journal/article/download/cp59-tobler/307และใน "Small Projection Design Projection Design" โดย Frank Canters (หาได้จาก Google books)


ขอบคุณ Andrej! ทั้งหมดนั้นดูน่าสนใจมาก! แต่ถ้าไม่มีสูตรหรือ epsgs หรือวิธีง่าย ๆ ในการใช้ฉันจะไม่สามารถใช้มันได้ :-(
Tomas

1
จะไม่มีรหัส EPSG (ไม่มีการค้นหาน้ำมันจะทำกับแผนที่เหล่านั้น!) แต่คุณสามารถระวังสิ่งตีพิมพ์ได้
AndreJ

7

นี่คือหลอกตาปลาทำใน Postgres / Postgis ฉันใช้ปลั๊กอิน QChainage เพื่อสร้าง 1,000 คะแนนในแต่ละประเทศ จุดต่างๆถูกตำหนิรอบเกาะ null (0,0) โดยใช้ลอการิทึมของระยะทาง แต่มีการเก็บรักษาราบราบ

ป้อนคำอธิบายรูปภาพที่นี่

ฉันใช้ Plat Caree เพื่อทำให้เป็นวงกลมเนื่องจาก wgs84 ให้รูปทรงรีมากกว่า

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! มันสามารถสร้างได้มากกว่านี้หรือไม่เพื่อสาธารณรัฐเช็กจะยิ่งใหญ่กว่าเมื่อเทียบกับที่เหลือ?
โทมัส

@ โทมัสใช่ ... คุณต้องปรับค่าคงที่ที่ฉันใช้ใน st_scale () .. ลองเพิ่ม 1.0 เป็น 2.0 และลด 7.0 ให้เล็กลง
Steven Kay

1

D3มีปลั๊กอินการบิดเบือน Fisheyeซึ่งฉันพบโดย Googling "svg fisheye แปรรูป" .. มันอาจมีประโยชน์สำหรับสถานการณ์ของคุณ โดยทั่วไปฉันแนะนำให้แปลงไฟล์รูปร่างบางส่วนของคุณเป็น SVG (หรือ GeoJSON?)เพื่อสร้างแผนที่ของคุณโดยใช้ห้องสมุด D3.js ที่เป็นที่นิยมมากขึ้น

ความคิดของฉันคือฉันรู้ว่ารูปทรงเรขาคณิตของประเทศนั้นสามารถแปลงเป็นเวกเตอร์ SVG ได้และฉันสงสัยว่าในฐานะ SVG อาจมีวิธีที่เหมาะสมกว่าในการปรับเปลี่ยนรูปตาปลาที่คุณต้องการ

ฉันเห็นด้วยกับผู้แสดงความคิดเห็นคนอื่น ๆ ว่าซอฟต์แวร์ภาพประกอบ / กราฟิกมีความเหมาะสมกับสถานการณ์ของคุณมากขึ้นและเนื่องจาก D3 ทำงานกับรูปแบบข้อมูลทั่วไปบางประเภท (SVG และ GeoJSON) จึงอาจมีวิธีแก้ปัญหาสำหรับคุณ


ขอบคุณ แต่ D3 ไม่ใช่ห้องสมุดสำหรับโปรแกรมเมอร์สำหรับผู้สร้างเว็บใช่ไหม ฉันอาจต้องการโปรแกรมที่จะสร้างภาพเดียวสำหรับฉันอาจจะไม่จำเป็นต้องเขียนโปรแกรม
โทมัส

@ Tomas ยุติธรรมพอ เนื่องจากคำถามของคุณมีชื่อว่า "การคาดการณ์คล้าย Fisheye" แต่จะมีการจัดอันดับการค้นหาที่แข็งแกร่งใน Google สำหรับคำค้นหาที่คล้ายกันซึ่งอาจมีนักพัฒนาบางคนในช่วงเวลาหนึ่ง ในที่สุดคำตอบนี้อาจเป็นประโยชน์กับคนอื่น
elrobis

0

ฉันคิดว่าคุณจะต้องมีการบิดเบือนอย่างมากสำหรับสาธารณรัฐเช็กในลักษณะเช่นนี้ มีเทคนิค "การคาดการณ์ภาพสามมิติ" ที่ได้รับความนิยมค่อนข้างบางครั้งใช้ในการถ่ายภาพพาโนรามาเพื่อสร้าง "ลูกโลกโลก" ซึ่งอาจใช้ได้ถ้าคุณใช้ผลลัพธ์เป็นภาพซ้อนทับทั่วยุโรป (อย่าคิดว่าคำตอบนี้เป็นเพียงข้อสันนิษฐานเท่านั้นและฉันไม่เคยลองกับแผนที่) นอกจากนี้นี่จะเป็นโครงการแก้ไขกราฟิก / ภาพถ่ายมากกว่าเพราะคุณอาจต้องถ่ายภาพแผนที่ที่พิมพ์ออกมาหรืออาจส่งออก จาก GIS ไปยังภาพความละเอียดสูงจากนั้นคัดลอกและตัดชุดภาพรอบ ๆ จุดศูนย์กลาง (กึ่งกลางบนพื้นที่เครื่องแบบตรงกลางที่มีการทับซ้อนเพียงพอ) เพื่อให้สามารถใช้เป็นอินพุตในฟังก์ชั่นพาโนรามา เมื่อคุณมี "ภาพสามมิติ"

แน่นอนว่าคุณจะต้องเพิ่มป้ายกำกับหลังจากใช้ Illustrator, Corel Draw หรือนำเข้าภาพสุดท้ายเป็น raster กลับเข้าไปใน GIS และสร้างกราฟิก / คำอธิบายประกอบ

Google "ภาพพาโนรามาภาพสามมิติ" เพื่อดูตัวอย่าง

นี่คือตัวอย่างการสอน: http://www.priptymad.com/pages/view/little-planet-photos-5-simple-steps-to-making-panorama-worlds

ป้อนคำอธิบายรูปภาพที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.