Warning: include(/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/wp-cache-base.php): failed to open stream: No such file or directory in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 65

Warning: include(): Failed opening '/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/wp-cache-base.php' for inclusion (include_path='.:/opt/alt/php55/usr/share/pear:/opt/alt/php55/usr/share/php') in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 65

Warning: include_once(/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/ossdl-cdn.php): failed to open stream: No such file or directory in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 82

Warning: include_once(): Failed opening '/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/ossdl-cdn.php' for inclusion (include_path='.:/opt/alt/php55/usr/share/pear:/opt/alt/php55/usr/share/php') in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 82
Города и расстояния — CityData и Geodesy &nbsp | Учебники

Главная > Mathematica 8 > Города и расстояния — CityData и Geodesy &nbsp


Города и расстояния — CityData и Geodesy &nbsp

Города и расстояния — CityData и Geodesy  
В подпакете CityData можно найти функции, позволяющие найти координаты большинства крупных городов мира: CityData [city, datatype], CityData [city] иCityData[datatype]. Например:
<<Miscellaneous`CityData`
CityData["Montreal",
CityPosition]
{{45, 30}, {-73, -36}}
CityData["Washington"]
{{CityPosition, {{38, 53, 42}, {-77, -2, -12}}}}
 Координаты (широта и долгота) выдаются в формате {градусы, минуты} или {градусы, минуты, секунды}.
В этом же подпакете есть функции для вычисления расстояний между городами:

  • CityDistance [ "cityl", "pity"] — возвращает расстояние между двумя указанными городами;
  • CityDistance["cityl","city",CityDistanceMethod->Method] — возвращает расстояние между двумя указанными городами со спецификацией метода вычислений (по умолчанию используется функция SphericalDistance из подпакета Geodesy).

Пример вычисления расстояния между городами дан ниже:
CityDistance["Washington", "Montreal"]//N
786.915
Базу данных можно расширять, добавляя в нее информацию о новых городах:
CityPosition[{"Champaign", "USA", "IL"}] = {{40, 7, 5},
{-88, -14, -48}};
 Убедимся, что информация действительно добавлена:
CityData["Champaign", CityPosition]
{{40, 7, 5}, {-88, -14, -48}}
 Для добавления новых полей в базу данных можно использовать функцию AppendTc (см. урок 9). Например, добавим поле для хранения информации о населении:
AppendTo[$CityFields, CityPopulation]
 Теперь введем в базу данных информацию о населении Вашингтона:
CityPopulation[{"Washington", "USA", "DC"}] = 638000;
Проверим результат, запросив всю имеющуюся в базе информацию об этом городе:
CityData["Washington"]
{{CityPosition, {{38, 53, 42}, {-77, -2, -12}}},
{CityPopulation, 638000}}
 Как видите, результат теперь включает новую информационную категорию —
CityPopulation. 
В подпакете Geodesy есть функции, вычисляющие расстояние между двумя точками с учетом выпуклости Земли:

  • SphericalDistance [posl,pos2] — вычисляет расстояние между двумя точками в предположении, что Земля — идеальный шар (сфера);
  • SpheroidalDistance [posl,pos2] — вычисляет расстояние между двумя точками в предположении, что Земля — приплюснутый шар (сфероид).

Примеры вычислений по этим функциям представлены ниже:
SphericalDistance[{0, 0}, {45,-45}] //N
6671.7
SpheroidalDistance[{0, 0}, {45, 45}] //N
6662.47 % — %%
-9.23014
 
Географические и картографические данные — 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.

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

Карты могут строиться в различных проекциях: Albers, Equirectangular, LambertAzimuthal, LambertCylindrical, Mercator, Mollweide, Orthographic и Sinusoidal. Для этого используется опция WorldProjection-> Имя_проекции.
На представлена цветная карта всего мира, построенная в синусоидальной проекции. Такая проекция удобна для общего обозрения всей поверхности земного шара при взгляде с экватора.
Выбор вида проекции способен преобразовать вид изображения. Для иллюстрации этого представлена карта мира в иной проекции — азимутальной проекции Ламберта (LambertAzimuthal). В таком виде получается прекрасный вид на Землю со стороны Северного полюса.
Еще один пример (с цилиндрической проекцией Ламберта) представлен. Здесь показана карта Африки. Цилиндрическая проекция в некоторых случаях позволяет визуально уменьшить геометрические искажения границ, обусловленные сферической поверхностью Земли. Обратите также внимание на технику окраски самого континента, фона и рамки.
В подпакет 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

Статьи по теме

Комментарии запрещены.