Рыбий глазоподобная проекция

12

Мне нужна специальная проекция с целью эффективной презентации на постере. Я хотел бы представить область исследования (Чешская Республика) в контексте всей Европы таким образом, чтобы Чешская Республика занимала большую часть области (около 70%) в центре, а остальная часть Европы находится вокруг нее, но смехотворно маленький. То есть, как массивные искажения в пользу Чешской республики, как линзы типа «рыбий глаз», когда вы помещаете их близко к какому-либо объекту, и они значительно увеличивают его по сравнению с окружающей средой.

Есть ли какой-либо прогноз, который я могу использовать для этой цели в квантовой ГИС? EPSG или стандартная формула (которую можно использовать в QGIS) приветствуется.

Tomas
источник
1
Вы можете сделать это с помощью картограммы расстояния или площади . Я не знаю ни о каких решениях QGIS. Вы также можете сделать это с помощью простого пользовательского преобразования координат, если вы знаете, как программировать такие вещи. Никакая стандартная проекция не создаст такую ​​карту для вас из-за чрезмерных искажений.
whuber
1
Это может быть сделано, но вы должны быть умными об этом. Начав с проецируемых координат, а затем отсекая проекцию с помощью проекции, в которой используется меньший сфероид, вы фактически можете сделать небольшую часть мира кажущейся большей частью полушария. Перепроецирование полученных координат с помощью любой проекции, подходящей для этого полушария, поможет. То, что вы получаете с точки зрения того, что вам не нужно кодировать какие-либо преобразования координат самостоятельно, должно быть сбалансировано с (а) необходимостью проводить много экспериментов методом проб и ошибок и (б) иметь минимальный контроль над искажением по краям.
whuber
4
Я бы использовал маршрут картограммы. Простые инструменты с готовой реализацией. Просто сделайте ценность для чешского представителя. намного больше, чем остальная часть Европы: scapetoad.choros.ch
HeikkiVesanto
1
Если вы не ограничены растрами на этой карте, тогда определенно стоит экспортировать в SVG и использовать Inkspace или другой векторный графический редактор для создания эффекта увеличительного стекла. Если вы работаете с векторами, проблем с пикселями не будет. +1 за Чехию :)
Миро
1
Вот учебник для CorelDraw: youtube.com/watch?v=YE9hu1g20Gc , в Inkscape вы должны достичь сходства с деформацией конверта: wiki.inkscape.org/wiki/index.php/Envelope_Deformation
Miro

Ответы:

6

Хотя это не рыбий глаз, вы можете сделать этот стиль карты в виде картограммы.

Преимущества этого в том, что есть готовые инструменты для работы и они будут работать с надежным набором наборов данных.

Просто сделайте ценность для Чешской Республики намного большей, чем в остальной Европе, подгоняя значения в соответствии с потребностями.

Отличный инструмент для этого: ScapeToad

введите описание изображения здесь

HeikkiVesanto
источник
Спасибо Весанто, это именно то, что мне было нужно! :-) Готовый к использованию, удобный инструмент! Я наконец использовал это. И это очень похоже на рыбий глаз :-)
Томас
Единственное, что следует отметить, это то, что он был очень очень медленным, поэтому мне пришлось выбирать самые медленные настройки и даже уменьшать количество ячеек сетки вручную ... но это выглядит великолепно. Единственное, о чем я сожалею, это то, что это будет нелегко сделать с растрами.
Томас
2
Вы можете ускорить процесс, используя qgis, чтобы упростить геометрию, или использовать шейп-файл с более низким разрешением (например, 50 м или 110 м от Natural Earth)
Стивен Кей,
8

Вы можете попробовать одну из Magnifying Glassпроекций Снайдера, найденную на http://www.csiss.org/map-projection/Azimuthal.html № 32-36.

Они основаны на этой публикации: https://pubs.er.usgs.gov/publication/70014498

Я не уверен, есть ли онлайн-ресурс с формулами.

Логарифмическая карта Hägerstrand также может соответствовать вашим потребностям: http://www.ncgia.ucsb.edu/projects/tobler/Projection/sld105.htm

Или квадратная корневая азимутальная проекция: http://www.ncgia.ucsb.edu/projects/tobler/Projection/sld109.htm

Ссылки можно найти в http://www.cartoperspectives.org/index.php/journal/article/download/cp59-tobler/307 и в «Проектировании картографических карт малого масштаба» Фрэнка Кантерса (доступно из книг Google).

Andrej
источник
Спасибо Андрей! Это все выглядит очень интересно! Но без формул, epsgs и других простых способов их использования я не смогу их использовать :-(
Томас
1
Там не будет никакого кода EPSG (по этим картам не будет производиться поиск нефти), но вы можете посмотреть публикации.
AndreJ
7

Вот псевдо-рыбий глаз, сделанный в Postgres / Postgis. Я использовал плагин QChainage, чтобы создать 1000 точек вдоль границы каждой страны. Точки были перепроектированы вокруг нулевого острова (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
Стивен Кей
источник
интересно, спасибо Стивен! Можно ли сделать так, чтобы чешский представитель был еще больше по сравнению с остальными?
Томас
@tomas да ... вам нужно настроить константы, которые я использовал в st_scale () .. попробуйте увеличить 1,0 до 2,0 и уменьшить 7,0 до чего-то меньшего.
Стивен Кей
1

В D3 есть плагин для искажения типа «рыбий глаз» , который я нашел, используя поиск в Google «svg fisheye transform». Это может быть полезно в вашей ситуации. По сути, я предлагаю преобразовать некоторые из ваших шейп-файлов в SVG (или GeoJSON?) Для создания вашей карты с помощью все более популярной библиотеки D3.js.

Я подумал: я знал, что геометрию границ страны можно преобразовать в векторные типы SVG, и я подозревал, что в качестве SVG могут быть более подходящие подходы для реализации преобразования «рыбий глаз», которое вы хотите.

Я согласен с другими комментаторами, что программное обеспечение для иллюстрации / графики больше подходит для вашего сценария, и, поскольку D3 работает с некоторыми распространенными форматами данных (SVG и GeoJSON), оно может предоставить вам решение.

elrobis
источник
спасибо, но разве D3 не библиотека для программистов, для веб-создателей? Возможно, мне нужна программа, которая создаст для меня единственную картинку, возможно, без необходимости программирования.
Томас
@ Томас, достаточно справедливо. Так как ваш вопрос называется просто «Рыбий глаз», он будет иметь сильный поисковый рейтинг в Google по схожим запросам, который со временем, вероятно, будет включать некоторых разработчиков. В конце концов этот ответ может быть полезен для кого-то еще.
elrobis
0

Я думаю, что Чешская Республика должна выглядеть крайне искаженно. Существует довольно популярная фотографическая техника "стереографической проекции", иногда используемая в панорамной фотографии для создания "глобусов", которая может сработать, если вы использовали результат в качестве наложения на Европу. (Не считайте это ответом, поскольку это чисто гипотетический вопрос, и я никогда не пробовал его с картой). Кроме того, это будет скорее проект редактирования графики / фотографий, поскольку вам, вероятно, придется сфотографировать вашу распечатанную карту или, возможно, экспортировать ее. из ГИС в изображение с высоким разрешением, затем скопируйте и обрежьте серию изображений вокруг центральной точки (центрированной на однородной области в середине с достаточным перекрытием), чтобы их можно было использовать в качестве входных данных для функции панорамы. После того, как у вас есть «стереографическая проекция»

Конечно, вам нужно будет добавить метки после факта в Illustrator, Corel Draw или путем импорта окончательного изображения в виде растра обратно в ГИС и создания некоторой графики / аннотаций.

Google "стереографическая проекция панорама", чтобы увидеть примеры.

Вот пример учебного пособия: http://www.photographymad.com/pages/view/little-planet-photos-5-simple-steps-to-making-panorama-worlds

введите описание изображения здесь

Якуб Сисак География
источник