Иллюстрированный самоучитель по Mathematica

         

Географические и картографические данные — WortdData, WorldNames и WorldPlot


В пакете Miscellaneous имеется база данных по странам мира. Доступ к ней открывает подпакет WorldData. Для этого имеется функция WorldData [ "Страна" ], возвращающая список координат конечных отрезков прямых, которые задают контурный график — карту заданной страны. Например, данные по Азербайджану можно получить следующим образом:

<<Miscellaneous` WorldData`

WorldData["Azerbaijan"]

{{{2378, 2689}, {2374, 2770}, {2344, 2806}, {2330, 2770}, {2378, 2689}}, {{2361, 2849}, {2419, 2781}, {2472, 2701}, {2445, 2823}, {2509, 2778}, {2473, 2871}, {2510, 2915}, {2414, 3024}, {2307, 2933}, {2376, 2888}, {2361, 2849}}}



 Попробуйте сами найти данные по России (Russia) — мы их не приводим ввиду громоздкости списка, что вполне естественно, поскольку Россия — крупнейшая страна мира и имеет самую длинную границу (контурную линию) с многочисленными изломами.

В подпакете WorldNames имеется список стран, систематизированный по континентам: Africa, Asia, Europa, MiddleEa.st, NorthAmerica, Oceania, South-America и World (весь мир). Например, так можно узнать, какие страны расположены в Океании:

<<Miscellaneous`WorldNames`

Oceania // InputForm

{"Indonesia", "Papua New Guinea", "Fiji", "Australia", "New Zealand")

Наиболее эффектными являются возможности подпакета WorldPlot, функции которого позволяют строить карты любой страны или всего мира:

  • WorldPlot [countrylist] — построение карты страны по списку ее данных;
  • WorldPlot [countrylist, RandomColors] — построение карты страны по списку ее данных с раскраской случайными цветами;
  • WorldPlot [countrylist, RandomGrays] — построение карты страны по списку ее данных с раскраской случайными оттенками серого цвета;
  • WorldPlot [ {countrylist, colorfunc} ] — построение карты страны по списку ее данных с раскраской по функции colorfunc;
  • WorldPlot [ {countrylist, colorlist) ] — построение карты страны по списку ее данных с раскраской по списку colorlist.

На рис. 13.7 показано построение контурной карты России (верхний рисунок) и цветной карты мира.
Раскраска достигается применением директивы RandomColors.



Рис. 13.7. Контурная карта России и цветная карта мира Следующий рисунок (рис. 13.8) показывает возможность композиционного изображения картографических изображений. На нем построена карта Америки и особо выделены (более темным цветом) территории Канады и Мексики. Здесь для цветовых выделений использована директива GrayLevel, позволяющая задавать степень густоты серого цвета.



Рис. 13.8. Карта Америки с выделенными Канадой и Мексикой Карты могут строиться в различных проекциях: Albers, Equirectangular, LambertAzimuthal, LambertCylindrical, Mercator, Mollweide, Orthographic и Sinusoidal. Для этого используется опция WorldProjection-> Имя_проекции.

На рис. 13.9 представлена цветная карта всего мира, построенная в синусоидальной проекции. Такая проекция удобна для общего обозрения всей поверхности земного шара при взгляде с экватора (сравните рис. 13.9 с рис. 13.7).



Рис. 13.9. Вид на земной шар при синусоидальной проекции Выбор вида проекции способен преобразовать вид изображения. Для иллюстрации этого на рис. 13.10 представлена карта мира в иной проекции — азимутальной проекции Ламберта (LambertAzimuthal). В таком виде получается прекрасный вид на Землю со стороны Северного полюса.



Рис. 13.10. Вид но земной шор со стороны Северного полюса при азимутальной проекции Ламберта Еще один пример (с цилиндрической проекцией Ламберта) представлен на рис. 13.11. Здесь показана карта Африки. Цилиндрическая проекция в некоторых случаях позволяет визуально уменьшить геометрические искажения границ, обусловленные сферической поверхностью Земли. Обратите также внимание на технику окраски самого континента, фона и рамки.



Рис. 13.11. Контурная карта Африки в цилиндрической проекции В подпакет World Plot включены функции преобразования углов:

  • ToMinutes [deg] — преобразует градусы в минуты;
  • ToMinutes [ {deg,min} ] — преобразует градусы и минуты в минуты с долями;
  • ToMinutes [ {deg,min, sec} ] — преобразует градусы, минуты и секунды в минуты с долями.
Примеры преобразований представлены ниже:

 ToMinutes [1]

60

ToMinutes [{1,20}]

80

ToMinutes [{1,20,10}]

481/6

N[%]

80.1667



Содержание раздела