на карте можно избежать искажений
На карте можно избежать искажений
Рис. 2.13. Изоколы площадей в равноугольной цилиндрической проекции Меркатора
Рис. 2.14. Картографическая сетка в экваториальной стереографической проекции с изоколами площадей
Также легко представить расположение изокол в поперечных и косых проекциях. Например, в поперечной цилиндрической проекции изоколы параллельны меридиану касания, и, следовательно, такие проекции выгодны для передачи территорий, вытянутых вдоль этого меридиана с севера на юг. В любой азимутальной проекции изоколы образуют окружности, концентрические относительно точки касания плоскости (рис. 2.14 и 2.15); поэтому азимутальные проекции удобны для территорий округлой формы (при центральном положении точки касания). В произвольных проекциях изоколы могут образовывать сложную систему кривых линий (см. рис. 2.8). В математической картографии доказывается, что при изображении конкретных территорий наименьшие искажения обеспечиваются проекциями, у которых изоколы по своей форме близки к общему контуру картографируемой территории.
Важно знать, что при наличии картографической сетки величина искажений может быть определена на любом участке карты, еслв даже проекция не указана.
Рис. 2.15. Картографическая сетка в экваториальной равновеликой азимутальной проекции (Ламберта) с изоколами углов
Для этого достаточно определить в соотвествующем месте карты масштабы по меридиану и параллели т и п, а также угол θ между меридианом и параллелью. Для нахождения величин т и п следует: а) измерить дуги меридиана и параллели возле соответствующей узловой точки картографической сетки; б) определить масштаб по меридиану и параллели посредством деления полученных величин на длины соответствующих дуг эллипсоида (заимствуемые из картографических таблиц). Найти величины т и п посредством деления масштабов по меридиану и параллели на главный масштаб. Угол θ между меридианом и параллелью измеряется транспортиром.
Для вычисления по величинам т, п и углу θ значений а, b, р, и угла θ математическая картография дает следующие несложные формулы:
(2.4)
(2.5), (2.6)
(2.7)
Если главные направления совпадают с меридианами и параллелями, т. е. когда меридианы и параллели сетки взаимно перпендикулярны, то а=т, b=п (или а=п, b=т) и формулы приобретают вид
(2.8)
Иллюзии мозга. Картографические проекции
Искажения площадей в проекции Меркатора
На самом деле Африка по площади больше, чем США, Китай, Индия и почти вся Европа, вместе взятые. Но из общепринятых проекций географических карт складывается иллюзия, что это не так. Так называемая проекция Меркатора, которая используется для многих карт, сильнее всего искажает площади ближе к полюсам. Небольшая Гренландия (площадь меньше Конго) кажется гигантской территорией. Антарктида тоже. Площадь России значительно преувеличена относительно южных стран. Или взять Украину, площадь которой на самом деле равняется площади Мадагаскара.
Все карты мира врут нам уже много столетий. Более того, в разных странах — России, Европе, США, Китае, Австралии, Чили, Южной Африке — карты мира очень сильно отличаются.
Искажения на картографических картах — вполне естественное явление, потому что картографам нужно сделать развёртку эллипсоида Земли на плоскости. Это в принципе невозможно сделать без искажений. Вопрос только в то, что именно можно искажать, а что нельзя.
Искажения бывают четырёх видов:
Истинный размер Африки в сравнении с разными странами. Автор карты: Кай Краузе
Почему большинство людей не осознают истинный масштаб гигантской Африки или более скромные размеры России, Канады или Гренландии? Потому что по какой-то причине проекция Меркатора используется не только в морской навигации, но и во многих других географических картах. По этим картам учат в школах, такие карты показывают по телевизору. Отсюда и характерное когнитивное искажение у многих обывателей.
Главное, что нам совсем необязательно пользоваться в повседневной жизни проекцией Меркатора. Мы же не морские навигаторы и не планируем авиационных налётов на соседние страны, куда нужно лететь по прямой. Мы простые мирные люди. Зачем нам совершенное точное направление по прямой линии между географическими точками? Если пофантазировать, то в обычной жизни это может быть удобно только при планировании больших путешествий на автомобиле на несколько тысяч километров. В остальных случаях мало кто перемещается на собственном транспорте. В основном, люди пользуются самолётами и поездами, так что даже у путешественников не нужды прокладывать маршрут самостоятельно.
Почему же тогда проекция Меркатора используется в школьных картах, на телевидении и т.д.? Это не совсем понятно. Возможно, для современного обывателя всё-таки более важно понимать сравнительные размеры стран мира, а не определять прямые направления по маршрутам.
Как мы уже заметили, в проекции Меркатора реальные площади показаны только возле экватора, и все остальные площади на земном шаре очень сильно искажаются. Эти искажения — цена, которую мы платим за знание точных направлений при навигации.
Как же нам составить более точную и справедливую карту мира с наименьшими искажениями площадей? В 2009 году эту проблему попытались решить дизайнеры из компании AuthaGraph. Их работа заключается в применении геометрических идей моделирования к практическим задачам. Одна из этих задач — проектирование более наглядной карты мира. Тогда они и составили карту AuthaGraph World Map, которая наиболее справедливо отображает площади географических стран и территорий.
Здесь используется разновидность так называемой изометрической проекции, при которой в отображении трёхмерного объекта на плоскость коэффициент искажения (отношение длины спроецированного на плоскость отрезка, параллельного координатной оси, к действительной длине отрезка) по всем трём осям один и тот же.
Проекция составлена в несколько этапов. Сначала эллиптическая поверхность земного шара разделена на 96 равных треугольников. Они спроецированы на 96 регионов модифицированного тетраэдра. Затем тетраэдр «сплющен» до правильной формы и обрезан, чтобы его можно было развернуть в прямоугольную форму, то есть в стандартную прямоугольную плоскую карту привычной формы.
Этапы составления проекции AuthaGraph World Map
Конечно, можно было сразу спроецировать сферу на тетраэдр обычным оптическим способом, но при этом возникают сильные искажения, которые бросаются в глаза. Идея предварительного разбиения на 96 регионов была в том, чтобы минимизировать такие искажения и сохранить пропорции территорий друг относительно друга.
Но нет предела совершенству. На основе оригинальной карты AuthaGraph японский дизайнер Хадзимэ Нарукава (Hajime Narukawa) создал новый вариант, который великолепно смотрится и при этом так же сохраняет пропорции стран и континентов друг относительно друга, а также соотношение земной массы и Мирового океана.
Карта Хадзимэ Нарукавы на основе AuthaGraph World Map
Эту более справедливую и пропорциональную карту можно использовать и в школьных учебниках, и в средствах массовой информации, поскольку она более точно показывает на плоскости проекцию земного шара и даёт лучшее представление о том, как выглядит наша Земля. Её преимущество ещё и в том, что на ней все континенты показаны без разрыва карты, включая Антарктиду (ну и конечно Япония находится в центре, как на многих японских картах: это вполне нормально, на российских картах тоже вертикальная ось мира проходит через Москву). И ещё несколько таких карт сшиваются в единое пространство, так что можно наглядно представить взаимное расположение континентов. Здесь понятно, например, какая точка европейской России ближе всего к Аляске.
Все существующие географические карты — это искажения. Самую точную картину мира показывает только глобус. Но если мы вынуждены использовать плоские поверхности, то хотя бы постараемся минимизировать количество искажений.
Ликбез по картографическим проекциям с картинками
Визуализация данных самого разного рода, имеющих некое географическое распределение, в последнее время получает все большее и большее распространение. Тут, на Хабре, статьи с картами встречаются чуть ли не каждую неделю. Карты в статьях очень разные, но роднит их одно: как правило, в них используются всего две картографические проекции, при том — не самые удачные из существующих. Мне бы хотелось дать несколько наглядных примеров проекций, которые выглядят более эстетично и лучше приспособлены для разных видов визуализации. В этой статье будут рассмотрены общемировые проекции и проекции большей части Земли, так как визуализация чего-либо на карте мира, пожалуй, является наиболее распространенной из подобных задач.
Легкое введение
Поскольку статья ориентирована на вопросы визуализации данных, я не буду касаться глубоко теории проекций (датумов, конформности, равноугольности и тому подобного), кроме общих принципов их построения. Также, я буду говорить тут о «проекциях», формально подразумевая «систему координат», coordinate reference system, потому что для карт таких масштабов не имеет смысла отдельно рассматривать проекцию и датум. Математики здесь тоже практически не будет, кроме простой геометрии. Желающие ознакомиться с математическими принципами, могут это сделать по статьям на Wolfram MathWorld. Так что изучающим программирование в области геоинформационных систем или их опытным пользователям, эта статья, возможно, будет не очень полезна.
Перед началом, объясню пару вещей. Все примеры будут даваться с использованием набора данных государственных границ с вот этого сайта и набора данных Blue Marble Next Generation с сайта NASA. Последний включает в себя синтезированные безоблачные снимки земной поверхности за каждый из двенадцати месяцев 2004-го года, что позволит внести некоторое разнообразие в иллюстрации.
Я очень люблю открытый софт, но использовать GDAL в данном случае мне показалось неэффективно — некоторых не очень ходовых, но полезных проекций в его реализации на данный момент либо нет, либо я плохо смотрел исходники, а потому иллюстрации я готовил в коммерческой программе GlobalMapper, которой пользуюсь уже много лет, и которая славится поддержкой внушительного списка систем координат.
Названия проекций и некоторые термины я буду давать и англоязычные, потому что если кому-то захочется поискать материалы по этой теме, русскоязычных источников в сети найдется несколько меньше (объем статей в Википедии на русском меньше в несколько раз). Для большинства проекций я постараюсь дать не только названия, но и коды EPSG и/или WKID, а также название проекции в библиотеке PROJ.4, широко используемой в открытом софте (например, в пакете R) для поддержки систем координат.
Некоторые проекции, возможно, окажутся кому-то знакомыми по картинке с xkcd, но все из них тут рассмотрены не будут.
Проблема
Начнем с того, что же это за самые распространенные проекции, и что с ними не так.
Первая проекция — так называемая «Географическая», она же – Geographic projection, Latitude/Longitude, Plate carrée EPSG:4326 WKID:54001 PROJ.4:longlat. Строго говоря, она даже не совсем является проекцией, потому что получается путем интерпретации полярных угловых координат, как линейных прямоугольных, без всяких вычислений. Эту проекцию используют, потому что она способна отобразить всю поверхность Земли целиком и потому, что она самая простая математически, а данные очень часто распространяются не спроецированными, то есть именно в географических координатах (градусах широты и долготы).
Другая весьма популярная проекция — «проекция Меркатора», Mercator projection PROJ.4:merc. Она также используется для визуализации данных, покрывающих весь мир, но ее популярность продиктована не только простотой — ее варианты являются стандартом де-факто для глобальных картографических сервисов, таких как Google Maps, Bing Maps, Here. С ней глубоко связаны картографические библиотеки OpenLayers, Leaflet, API упомянутых выше сервисов. В варианте Google и OpenStreetMap она носит название Web Mercator и имеет код EPSG/WKID:3857, иногда на нее также ссылаются, как на EPSG:900913. Принцип ее построения не сильно сложнее Географической – это проекция на цилиндр, чья ось совпадает с географической осью Земли, проецирование происходит линиями, выходящими из центра планеты, от чего ошибка растяжения приполярных областей по горизонтали оказывается скомпенсирована пропорциональным растяжением по вертикали. Проблема с этим только в том, что карта получится слишком большой по вертикали, если попытаться отобразить и север Гренландии. Потому обычно отбрасывают 16° полярных областей (в равной пропорции или больше — с юга).
На чей-то взгляд выглядит чуть лучше, чем Географическая, но одну проблему мы уже упомянули, а вторая — чем ближе объект к полюсам, тем он кажется больше, хотя его форма уже не так искажена. Потому, если предмет визуализации — плотность маркеров на единицу территории или расстояния, такой способ отображения будет вводить в заблуждение. При грамотном выборе способа визуализации, конечно, это можно скомпенсировать, а для каких-то случаев это вообще не проблема: например, если величина какого-то показателя в целой стране соотнесена с цветом этой страны на карте, эффект растяжения площадей не сказывается. Эта проекция сохраняет только форму объектов, потому очертания континентов и стран выглядят довольно узнаваемо. И, как я уже сказал, она — ваш первый и самый простой вариант при создании интерактивных веб-карт.
Варианты решения
Что же делать с глобальными данными, если нам по какой-то причине понадобилась проекция, лучше сохраняющая такие свойства объектов, как форма, площадь, расстояния и углы? Законы геометрии не дают нам сохранить все эти свойства сразу, развернув круглую поверхность Земли на плоскость. Однако, для визуализации данных более всего важна эстетика и восприятие, а не сохранение свойств, как для навигационных или измерительных задач. Потому становится возможным подобрать такую проекцию, искажения в которой были бы равномерно распределены по свойствам. И таких проекций существует довольно много. Существуют три самых известных, обладающих сходными свойствами: «Тройная проекция Винкеля» Winkel Tripel WKID:54042 PROJ.4:wintri, «проекция Робинсона» Robinson projection WKID:54030 PROJ.4:robin, «проекция Каврайского» (Kavrayskiy projection). Первая и последняя имеют визуально минимальные искажения, а неспециалисту, не видя градусной сетки, вообще весьма сложно различить их, потому я приведу иллюстрацию для Winkel Tripel, как той, которая лично мне нравится больше всего.
Вот так описание этой проекции выглядит в формате ESRI WKT:
PROJCS[«Robinson»,
GEOGCS[«GCS_WGS_1984»,
DATUM[«D_WGS84»,
SPHEROID[«WGS84»,6378137,298.257223563]
],
PRIMEM[«Greenwich»,0],
UNIT[«Degree»,0.017453292519943295]
],
PROJECTION[«Robinson»],
PARAMETER[«central_meridian»,0],
PARAMETER[«false_easting»,0],
PARAMETER[«false_northing»,0],
UNIT[«Meter»,1]
]
Как легко видеть, хотя искажение контуров и некоторое увеличение площади стран к полюсам здесь также наблюдаются, но это нельзя даже сравнивать с растяжением Географической проекции и пропорциональным увеличением проекции Меркатора.
Тут стоит сделать небольшое отступление и обратить внимание на то, что вид этой проекции по умолчанию страдает одним недостатком, который касается и других общемировых проекций. Дело в том, что если за центральный меридиан — линию, соединяющую северный и южный полюс через центр карты (longitude of origin) — принять нулевой меридиан, то карта будет разрезана по 180-му. Но при этом треть Чукотки окажется на левом краю карты, а две трети — на правом. Чтобы сделать карту красивее, разрез должен проходить где-то в районе 169-го западного меридиана восточнее острова Ратманова, для чего за центральный должен быть принят 11-й. Вот иллюстрация того, что получается:
А вот измененное для этого случая описание в ESRI WKT:
PROJCS[«Robinson»,
GEOGCS[«GCS_WGS_1984»,
DATUM[«D_WGS84»,
SPHEROID[«WGS84»,6378137,298.257223563]
],
PRIMEM[«Greenwich»,0],
UNIT[«Degree»,0.017453292519943295]
],
PROJECTION[«Robinson»],
PARAMETER[«central_meridian»,11],
PARAMETER[«false_easting»,0],
PARAMETER[«false_northing»,0],
UNIT[«Meter»,1]
]
В формате определения системы координат для PROJ.4 долгота центра проекции задается параметром +lon_0=.
11-й меридиан — «магическое» число: практически все мировые проекции, имеющие равномерный масштаб вдоль экватора, могут быть разрезаны по Берингову проливу, если за центральный принять именно его, а не нулевой.
Замечу, что задумываясь о выборе проекции, стоит принимать во внимание все существующие реальные требования к визуализации. Например, если данные касаются климата, то может иметь смысл либо нанести на карту линии широты, либо использовать проекцию, где они горизонтальны, а не загибаются к краям карты (то есть, отказаться от Тройной Винкеля в пользу, например, Робинсона). В данном случае, это позволит легче и точнее оценить относительную близость разных мест к полюсам и экватору. Еще один весомый плюс проекции Робинсона — то, что она поддерживается множеством софта, в том числе открытого, тогда как про некоторые другие этого сказать нельзя.
Иногда, когда требуется максимально сохранить какое-то свойство, например — соотношение площадей объектов (стран) — эстетическая сторона страдает. Но поскольку это все же может для чего-то понадобиться, я приведу один пример такой проекции — «проекцию Моллвейде», Mollweide projection WKID:54009 PROJ.4:moll.
Как видно, она довольно сильно напоминает проекцию Робинсона, но с той разницей, что полюса все же стянуты в точки, от чего форма приполярных областей выглядит сильно искаженной. Но пропорции площадей стран, как и требовалось, сохраняются куда лучше.
Самым молодым конкурентом этих проекций является проекция Natural Earth PROJ.4:natearth — она представляет из себя гибрид проекций Каврайского и Робинсона, а ее параметры были подобраны группой американских, швейцарских и словенских специалистов в 2007 году, тогда как возраст большинства картографических проекций — не менее полувека.
Для перепроецирования данных в нее существует некоторое количество инструментов, которые были написаны специально для этого, но ее поддержка еще далека от повсеместной.
Немного экзотики и специальных случаев
Конечно, все многообразие проекций на этом не заканчивается. Их изобретено немало. Некоторые просто выглядят странно (скажем, проекция Бонне изображает Землю в виде фигуры, напоминающей разрезанное яблоко или стилизованное сердце), некоторые — предназначены для особых ситуаций. Например, готов поспорить, что очень многие видели на картинках карту мира, которая похожа на корку мандарина, которую сняли и расплющили. Это, наверняка, была «Разрывная гомолосинусоидальная проекция Гуда» Interrupted Goode Homolosine projection WKID:54052.
Вид ее вполне достоин названия. Ее назначение — отображать размер объектов (и в некоторой степени — форму) близко к естественным пропорциям. Ее главная проблема, кроме названия и странного вида, состоит в том, что путем подбора центрального меридиана невозможно добиться того, чтобы ни один крупный кусок суши не был разрезан. Обязательно пострадает что-то из списка: Гренландия, Исландия, Чукотка, Аляска. Лично на мой взгляд, проще привести отдельно изображения стран, чем использовать такую карту, если вы не хотите стилизовать свою работу под середину XX века.
На иллюстрации эта проекция имеет широту и долготу центра, равные широте и долготе Москвы, а высоту — 5000000 метров. Чем больше это расстояние, тем сильнее изображение Земли становится похоже на ее изображение в проекции, которую мы рассмотрим последней.
Проекция, которая показывает вид на Землю в параллельной перспективе, то есть как-бы с бесконечного расстояния, называется «Ортографическая проекция» Orthographic projection WKID:43041 PROJ.4:ortho. В каком-то смысле, она знакома всем, кто когда-либо пользовался Google Earth. Я говорю, что в каком-то смысле, потому что «направление взгляда» в этой проекции всегда перпендикулярно поверхности Земли, тогда как в Google Earth его можно наклонять как угодно.
Для нее, как и для предыдущей проекции, можно задать центральные широту и долготу, чтобы ориентировать Землю желаемым образом. Например, можно показать полушарие с центром в какой-то точке, о которой идет речь — скажем, иллюстрируя транспортные потоки континентального масштаба, исходящие от одного предприятия. Сделав две карты с противоположными значениями координат, можно получить карту всего мира (правда, на краях искажения будут очень велики). Генерация последовательности карт с плавным изменением центральной точки даст кадры для анимации вращающейся планеты без всякой трехмерной графики.
Если статья окажется интересной, постараюсь написать продолжение о проекциях, используемых для отображения отдельных стран или регионов, ориентированную, как и эта статья, на базовые свойства этих проекций для задачи визуализации данных, инфографики и тому подобного.
Почему на карте появляются искажения изображения земной поверхности?
В детстве я часами могла исследовать карты. Когда я впервые увидела глобус, то сразу задумалась, как изображение с карты переносят на глобус или правильно делать наоборот? Мои карты упорно не хотели налезать на шар и все время рвались. Расправить снятую с глобуса карту без разрывов и смятия тоже не получалось. Тут-то и пришлось тщательно изучить этот вопрос.
Искажение — недостаток карт
Как выяснилось на школьных уроках географии, глобус ― достоверная модель Земли и повторяет ее форму (геоид). Но глобус не положишь в карман, не напечатаешь в книге и не рассмотришь на нем мелкие объекты. Для этого нужна карта ― проекция земного шара на плоскость. Главным недостатком карты считают появление искажений при переносе изображения с шара на плоскость. Все карты в одних местах либо сжимают изображение, либо растягивают его. Если хотите в этом убедиться, то попробуйте разгладить на столе корку апельсина или резиновую камеру мяча.
Что искажают карты
У меня сложилось впечатление, что все карты мира врут своим владельцам. Невозможно ведь переместить развертку шара на плоскость, не пожертвовав точностью карты и избежав искажений. Карты могут искажать:
Как спроектировать карту и избежать искажений
Мой опыт подсказал, что искажения на карте ― неизбежное зло. Но как правильно перенести изображение с глобуса на карту? Ответ оказался прост. Картографы зачастую используют вспомогательные поверхности. Они бывают:
Конические проекции удобны для изображения России. Конус не создает искажений между 47 и 62° северной широты.
В азимутальной проекции лучше всего создавать карты Северного Ледовитого океана или Антарктиды. Вспомогательную плоскость располагают так, чтобы она касалась полюса и тогда растяжения в этой области будут минимальными.