M_Map:

  1. Картографический пакет для Matlab Вы собрали свои данные, загрузили их в Matlab Проанализировал...
  2. Как получить M_Map
  3. Пример кода
  4. 2. Конформно-коническая проекция Ламберта топографии Северной Америки
  5. 3. Стереографическая проекция северных полярных регионов
  6. 4. Две прерванные проекции Мирового океана
  7. 5. Косая проекция Меркатора с данными колчана и контура
  8. 6. Проекция Миллера с Большим Кругом
  9. 7. Конформная проекция Ламберта с батиметрией высокого разрешения Западного Средиземноморья
  10. 8. Демонстрация причудливых векторов
  11. 9. Нажмите на Остров Принца Эдуарда, чтобы показать различные разрешения береговой линии.
  12. 10. Треклайны и UTM-проекция
  13. 11. Кольца дальности
  14. 12. Крапчатая граница
  15. 13. Голубой океан
  16. 14. Одна Океанская Проекция
  17. 15. Ступенчатая струя цвета
  18. 16. Батиметрия
  19. 17. Затененный рельеф (пример 1)
  20. 18. Затененный рельеф (пример 2)
  21. 19. Цветовые карты
  22. Примеры манипулирования спутниковыми данными
  23. 2. Ледяной покров SSM / I (данные представлены на фиксированной сетке) (формат HDF)
  24. 3. Аэрофотоснимки на сетке UTM
  25. 4. Подмножество глобального набора данных (формат HDF)
  26. 5. Метеорологические данные (формат netCDF)
  27. 6. Дорожки ARGO (формат netCDF)
  28. 7. SAR-изображение внутренних волн (формат HDF-5)
  29. 8. Затененный рельеф из топографии высокого разрешения (формат netCDF)
  30. 9. Статический API Карт Google

Картографический пакет для Matlab

Вы собрали свои данные, загрузили их в Matlab Проанализировал все до смерти, и теперь вы хотите сделать простую карту, показывающую, как это связано с миром.

Но ты не можешь.

Вместо этого вы должны выяснить, как сохранить все ваши данные, а затем прочитать их в другую программу (как, например, время по Гринвичу ), а затем потратить все это дополнительное время на выяснение того, почему это не дает того, что вы ожидали, что это будет ... или вы можете инвестировать в собственный инструментарий картографирования Matlab (с такой же крутой кривой обучения) ... или нет!

Анонс M_Map v1.4k!
(выпущено в марте 2019 г.)

M_Map - это набор картографических инструментов, написанных для Matlab (он также работает под октава ). M_Map включает в себя:

  1. Подпрограммы для проецирования данных в 19 различных проекциях (и определения обратных отображений) с использованием сферических и эллипсоидальных моделей Земли.
  2. Процедура генерации сетки для создания хороших осей с ограничениями в широтном / долгосрочном или в плоском X / Y-терминах.
  3. База данных береговой линии (с разрешением 1/4 градуса).
  4. Глобальная база данных высот (разрешение 1 градус).
  5. Подключается к свободно доступным базам данных высокого разрешения береговой линии и батиметрии.
  6. Другие полезные вещи.

Как получить M_Map

Вы можете скачать набор инструментов M_Map либо как сжатый tar-файл или как почтовый архив (Нажмите на эти ссылки, чтобы загрузить). Если вы распаковываете zip-файл, УБЕДИТЕСЬ, ЧТО ТЫ ТАКЖЕ РАСПОЗНАВАЕТЕ ПОДКЛЮЧЕНИЯ Оба размером около 650к. Если у вас есть этот архив, прочитайте Начиная раздел Руководство пользователя правильно установить этот инструментарий и разделы 8,6 а также 9,3 установить ETOPO1 и GSHHS соответственно.

Номер Примеры доступны для выделения различных возможностей M_Map (миниатюры показаны выше).

M_Map - это набор инструментов для программирования. Тем не менее, вы также можете изучить картографирование, используя MAP-LAB Графический интерфейс пользователя (GUI) на основе MATLAB, предназначенный для создания карт и визуализации наборов данных, связанных с геодезическими, геофизическими и океанографическими приложениями, который построен на основе M_Map. MAP_Lab доступен Вот ,

Новое в версии 1.4k (март / 2019): Новое в версии 1

  1. Наконец - способ обработки пиксельных данных с помощью m_image!
  2. Проверено в октаве до v4.4.1

Новое в версии 1.4j (май / 2018):

  1. Картографирование затененного рельефа с m_shadedrelief.
  2. Независимая сетка для карт UTM с m_utmgrid

Новое в выпуске 1.4i (январь / 2018):

  1. Наконец, были решены основные проблемы, связанные с графическим движком 2014b и позже, с m_grid, а также множество незначительных улучшений графики.
  2. m_windbarb и m_streamline для метеорологов, также m_scatter.
  3. Набор полезных цветовых карт в m_colmap, включая перцептуально однородную "струйную" цветную карту.
  4. Цветная функция m_contfbar для работы с контурными графиками.
  5. m_annotation и wysiwyg, чтобы помочь вам добавить стрелки и вещи.
  6. Обновлена ​​документация, теперь она не выглядит как "1990-е".
  7. Добавлена ​​ссылка на китайский перевод Руководства пользователя, а также на графический интерфейс MAP-LAB, который построен поверх M_Map.
  8. Обновлен список закодированных примеров и добавлено несколько новых.

Новое в версии 1.4h (ноябрь / 2017)

  1. Поддержка ETOPO2v2 и ETOPO1.
  2. Обработано несколько предупреждений о BITMAX, которые возникают в Matlab 2014b. Примечание. Мне удалось исправить или исправить некоторые НЕОБХОДИМЫЕ ошибки в 2014b. Используйте с осторожностью (или еще лучше не используйте). EPS, в частности, выводит ужасно, даже если экран выглядит «красиво». К счастью, математика "может решить исправить это в будущих выпусках".
  3. Добавлена ​​опция для вывода национальных + государственных или национальных границ только в m_gshhs.

Новое в версии 1.4g (январь / 2014)

  1. m_ellipse.m для построения приливных эллипсов (скажем, из T_Tide )
  2. Возможность использовать десятичные градусы или градусы / десятичные минуты в метках оси сетки
  3. В Matlab 2013b есть ошибка в свойстве осей dataaspectratio, которая влияет практически на все графические элементы. В этой версии M_Map есть обходной путь, который МОЖНО работает, но было бы лучше избегать использования 2013b.

Новое в версии 1.4f (май / 2012)

  1. m_shaperead.m, чтобы читать SHAPEFILES! (так Естественная земля может использоваться для политических границ вместо DCW, среди других возможностей)
  2. поддержка gshhs версии 2
  3. частичная совместимость с OCTAVE

Новое в выпуске 1.4e (май / 2010)

  1. GSHHS Now поставляется с базой данных WDB о реках и границах, и ссылки на них были добавлены через m_gshhs.m
  2. Эллипсоидальные конические проекции Альберса и Ламберта включены

Новое в выпуске 1.4d (октябрь 2007 г.)

  1. Модификации для обхода ошибок в matlab7 contourf
  2. Проекция Робинсона
  3. Несколько проблем совместимости с текущими версиями Matlab
  4. Обновлены хуки в некоторые базы данных.

Новое в выпуске 1.4b (июнь 2006 г.)

  1. m_hatch для заштрихованных и крапчатых патчей
  2. старомодные пестрые береговые линии (хорошо для черно-белых фотографий - см. Пример 13 ).
  3. m_lldist теперь также возвращает баллы по геодезическим.
  4. m_fdist, m_idist и m_geodesic для геодезических на эллипсоидальной земле.

Новое в выпуске 1.4 (ноябрь 2005 г.)

  1. m_pcolor
  2. m_coord (для учета географических и геомагнитных систем координат)
  3. Очень мало мелких исправлений ошибок.
  4. Некоторые советы и примеры добавления данных спутниковых изображений на ваши карты.

Пример кода

1. M_Map Logo

m_proj ( 'орто', 'ш', 48' , 'длинный', - 123' ); m_coast ( 'патч', 'г'); m_grid ( 'LINEST', '-', 'xticklabels', [], 'yticklabels', []); патч (.55 * [- 1 1 1 -1], 25 * [- 1 -1 1 1] -. 55, 'w'); текст (0, -. 55, «M \ _Map», «размер шрифта», 25, «цвет», «b», ... «вертикальное выравнивание», «среднее», «горизонтальное выравнивание», «центр»); m_proj ( 'орто', 'ш', 48' , 'длинный', - 123' );  m_coast ( 'патч', 'г');  m_grid ( 'LINEST', '-', 'xticklabels', [], 'yticklabels', []);  патч (

2. Конформно-коническая проекция Ламберта топографии Северной Америки

m_proj ('lambert', 'long', [- 160 -40], 'lat', [30 80]); m_coast ('patch', [1 .85 .7]); m_elev ( 'contourf', [500: 500: 6000]); m_grid ( 'поле', 'фантазия', 'tickdir', 'в'); карта цветов (flipud (медь)); m_proj ('lambert', 'long', [- 160 -40], 'lat', [30 80]);  m_coast ('patch', [1

3. Стереографическая проекция северных полярных регионов

% Обратите внимание, что береговая линия рисуется над сеткой из-за порядка, в котором% две подпрограммы называются m_proj ('стереографический', 'лат', 90, 'длинный', 30, 'радиус', 25); m_elev ( 'Контур', [- 3500: 1000: -500], 'edgecolor', 'б'); m_grid ('xtick', 12, 'tickdir', 'out', 'ytick', [70 80], 'linest', '-'); m_coast ('patch', [. 7 .7 .7], 'edgecolor', 'r'); % Обратите внимание, что береговая линия рисуется над сеткой из-за порядка, в котором% две подпрограммы называются m_proj ('стереографический', 'лат', 90, 'длинный', 30, 'радиус', 25);  m_elev ( 'Контур', [- 3500: 1000: -500], 'edgecolor', 'б');  m_grid ('xtick', 12, 'tickdir', 'out', 'ytick', [70 80], 'linest', '-');  m_coast ('patch', [

4. Две прерванные проекции Мирового океана

подзаговор (211); Slongs = [- 100 0; -75 25; 0 45; 25 145; 45 100; 145 295; 100 295]; Предкрылки = [8 80; -80 8; 8 80; -80 8; 8 80; -80 0; 0 80]; для l = 1: 7 m_proj ('sinusoidal', 'long', Slongs (l, :), 'lat', Slats (l, :)); m_grid ('fontsize', 6, 'xticklabels', [], 'xtick', [- 180: 30: 360], ... 'ytick', [- 80:20:80], 'yticklabels', [] , 'linest', '-', 'color', [. 7 .7 .7]); m_coast ( 'патч', 'г'); end xlabel («Прерванная синусоидальная проекция Мирового океана»); % Чтобы увидеть все карты, мы должны отменить пределы осей, установленные вызовами m_grid: set (gca, 'xlimmode', 'auto', 'ylimmode', 'auto'); подзаговор (212); Slongs = [- 100 43; -75 20; 20 145; 43 100; 145 295; 100 295]; Планки = [0 90; -90 0; -90 0; 0 90; -90 0; 0 90]; для l = 1: 6 m_proj ('mollweide', 'long', Slongs (l, :), 'lat', предкрылки (l, :)); m_grid ('fontsize', 6, 'xticklabels', [], 'xtick', [- 180: 30: 360], ... 'ytick', [- 80:20:80], 'yticklabels', [] , 'linest', '-', 'color', 'k') m_coast ('patch', [. 6 .6 .6]); end xlabel («Прерванная проекция Mollweide Мирового океана»); набор (GCA, 'xlimmode', 'авто', 'ylimmode', 'авто'); подзаговор (211);  Slongs = [- 100 0; -75 25; 0 45;  25 145; 45 100; 145 295; 100 295];  Предкрылки = [8 80; -80 8;  8 80; -80 8;  8 80; -80 0;  0 80];  для l = 1: 7 m_proj ('sinusoidal', 'long', Slongs (l, :), 'lat', Slats (l, :));  m_grid ('fontsize', 6, 'xticklabels', [], 'xtick', [- 180: 30: 360],

5. Косая проекция Меркатора с данными колчана и контура

%% приятные на вид данные [lon, lat] = meshgrid ([- 136: 2: -114], [36: 2: 54]); и = грех (лат / 6);
v = Sin (долгота / 6); m_proj («наклонный», «лат», [56 30], «долгота», [- 132 -120], «аспект»,. 8); сюжетные (121); m_coast ('patch', [. 9 .9 .9], 'edgecolor', 'none'); m_grid ('tickdir', 'out', 'yaxislocation', 'right', ... 'xaxislocation', 'top', 'xlabeldir', 'end', 'ticklen',. 02); Оставайтесь на линии; m_quiver (долгота, широта, U, V); xlabel («Имитация поверхностных ветров»); подзаговор (122); m_coast ('patch', [. 9 .9 .9], 'edgecolor', 'none');
m_grid ('tickdir', 'out', 'yticklabels', [], ... 'xticklabels', [], 'linestyle', 'none', 'ticklen',. 02); Оставайтесь на линии; [CS, ч] = m_contour (долгота, широта, SQRT (U * U + V * V)..); clabel (CS, ч, 'FontSize', 8); xlabel («Имитация чего-то еще»); %% приятные на вид данные [lon, lat] = meshgrid ([- 136: 2: -114], [36: 2: 54]);  и = грех (лат / 6);   v = Sin (долгота / 6);  m_proj («наклонный», «лат», [56 30], «долгота», [- 132 -120], «аспект»,

6. Проекция Миллера с Большим Кругом

% График круговой орбиты lon = [- 180: 180]; лат = Atan (тангенс (60 * пи / 180) * COS ((долгота-30) * пи / 180)) * 180 / р; m_proj ( 'мельник', 'ш', 82); m_coast ('color', [0. 0 0]); m_line (долгота, широта, 'linewi', 3, 'Цвет', 'г'); m_grid ( 'LineStyle', 'никто', 'окно', 'фантазии', 'tickdir', 'из'); % График круговой орбиты lon = [- 180: 180];  лат = Atan (тангенс (60 * пи / 180) * COS ((долгота-30) * пи / 180)) * 180 / р;  m_proj ( 'мельник', 'ш', 82);  m_coast ('color', [0

7. Конформная проекция Ламберта с батиметрией высокого разрешения Западного Средиземноморья

m_proj ('lambert', 'lon', [- 10 20], 'lat', [33 48]); [CS, CH] = m_etopo2 ('contourf', [- 5000: 500: 0 250: 250: 3000], 'edgecolor', 'none'); m_grid ( 'LineStyle', 'ни', 'tickdir', 'из', 'ширина линии', 3); colormap ([m_colmap ('blues', 80); m_colmap ('gland', 48)]); осветления (.5); ax = m_contfbar (1, [. 5 .8], CS, CH); Название (ах, { 'Уровень / м', ''}); % Двигаться вверх, вставляя пустую строку m_proj ('lambert', 'lon', [- 10 20], 'lat', [33 48]);  [CS, CH] = m_etopo2 ('contourf', [- 5000: 500: 0 250: 250: 3000], 'edgecolor', 'none');  m_grid ( 'LineStyle', 'ни', 'tickdir', 'из', 'ширина линии', 3);  colormap ([m_colmap ('blues', 80); m_colmap ('gland', 48)]);  осветления (

8. Демонстрация причудливых векторов

m_vec; % Подробнее см. Код в m_vec.m m_vec;  % Подробнее см

9. Нажмите на Остров Принца Эдуарда, чтобы показать различные разрешения береговой линии.

% Пример, показывающий береговую линию по умолчанию и все различные разрешения в% от береговой линии GSHHS, когда мы увеличиваем участок острова Принца Эдуарда. ось clf («позиция», [. 35 .6 .37 .37]); m_proj ('albers equal-area', 'lat', [40 60], 'long', [- 90 -50], 'rect', 'on'); m_coast ('patch', [0 1 0]); m_grid ('linestyle', 'none', 'linewidth', 2, 'tickdir', 'out', ... 'xaxisloc', 'top', 'yaxisloc', 'right', 'fontsize', 6); m_text (-69,51, «Стандартная береговая линия», «цвет», «r», «размер шрифта», «жирный шрифт»); m_ruler ([. 5 .9],. 8,3, 'fontsize', 8) оси ('position', [. 09 .5 .37 .37]); m_proj ('albers equal-area', 'lat', [40 54], 'long', [- 80 -55], 'rect', 'on'); m_gshhs_c ('patch', [. 2 .8 .2]); m_grid ('linestyle', 'none', 'linewidth', 2, 'tickdir', 'out', ... 'xaxisloc', 'top', 'fontsize', 6); m_text (-80,52,5, «GSHHS \ _C (неочищенный)», «color», «m», «fontweight», «bold»); m_ruler ([. 5 .9], 8,2, «размер шрифта», 8); оси («позиция», [. 13 .2 .37 .37]); m_proj ('albers equal-area', 'lat', [43 48], 'long', [- 67 -58], 'rect', 'on'); m_gshhs_l ('patch', [. 4 .6 .4]); m_grid ( 'LineStyle', 'ни', 'ширина линии', 2, 'tickdir', 'из', 'FontSize', 6); m_text (-66,5,43,5, «GSHHS \ _L (низкий)», «цвет», «m», «шрифт», «полужирный»); m_ruler ([. 5 .9], 8,3, «размер шрифта», 8); оси («позиция», [. 35 .05 .37 .37]); m_proj ('albers equal-area', 'lat', [45.8 47,2], 'long', [- 64.5 -62], 'rect', 'on'); m_gshhs_i ('patch', [. 5 .6 .5]); m_grid ('linestyle', 'none', 'linewidth', 2, 'tickdir', 'out', ... 'yaxisloc', 'right', 'fontsize', 6); m_text (-64.4,45.9, «GSHHS \ _I (средний)», «цвет», «m», ... «fontweight», «жирный», «горизонтальное выравнивание», «вправо»); m_ruler ([. 5 .8], 1,3, 'fontsize', 8); оси («позиция», [. 5 .1 .37 .37]); m_proj ('albers equal-area', 'lat', [46.375 46.6], 'long', [- 64.2 -63.7], 'rect', 'on'); m_gshhs_h ('patch', [. 6 .7 .6]); m_grid ('linestyle', 'none', 'linewidth', 2, 'tickdir', 'out', ... 'xaxisloc', 'top', 'yaxisloc', 'right', 'fontsize', 6); m_text (-64.18,46.4, «GSHHS \ _H (high)», «color», «m», «fontweight», «bold»); m_ruler ([. 5 .8], 2,3, 'fontsize', 8); оси («позиция», [. 55 .35 .37 .37]); m_proj ('albers equal-area', 'lat', [46.55 46.65], 'long', [- 63.97 -63.77], 'rect', 'on'); m_gshhs_f ('patch', [. 7 .9 .7]); m_grid ('linestyle', 'none', 'linewidth', 2, 'tickdir', 'out', ... 'xaxisloc', 'top', 'yaxisloc', 'right', 'fontsize', 6); m_text (-63,95,46.56, «GSHHS \ _F (full)», «color», «m», «fontweight», «bold»); m_ruler ([. 5 .8], 2,3, 'fontsize', 8); % Пример, показывающий береговую линию по умолчанию и все различные разрешения в% от береговой линии GSHHS, когда мы увеличиваем участок острова Принца Эдуарда

10. Треклайны и UTM-проекция

m_proj («UTM», «long», [- 72 -68], «lat», [40 44]); m_gshhs_i ( 'цвет', 'к'); m_grid ( 'поле', 'фантазия', 'tickdir', 'в'); m_ruler (1.2, [. 5 .8]); % подделать треклайн lons = [- 71: .1: -67]; лат = 60 * Cos ((Lons + 115) * пи / 180); даты = datenum (1997,10,23,15,1: 41, нули (1,41)); m_track (lons, lats, date, 'ticks', 0, 'times', 4, 'date', 8, ... 'clip', 'off', 'color', 'r', 'orient', ' в вертикальном положении '); m_proj («UTM», «long», [- 72 -68], «lat», [40 44]);  m_gshhs_i ( 'цвет', 'к');  m_grid ( 'поле', 'фантазия', 'tickdir', 'в');  m_ruler (1

11. Кольца дальности

m_proj ( 'Молоток', 'clong', 170); m_grid ( 'XTick', [], 'ytick', [], 'LineStyle', '-'); m_coast ( 'патч', 'г'); m_line (100.5,13.5, 'маркер', 'квадрат', 'цвет', 'г'); m_range_ring (100.5,13.5, [1000: 1000: 15000], 'цвет', 'б', 'linewi', 2); xlabel («Кольца дальности действия 1000 км от Бангкока»); m_proj ( 'Молоток', 'clong', 170);  m_grid ( 'XTick', [], 'ytick', [], 'LineStyle', '-');  m_coast ( 'патч', 'г');  m_line (100

12. Крапчатая граница

bndry_lon = [- 128,8 -128,8 -128,3 -128 -126,8 -126,6 -128,8]; bndry_lat = [49 50,33 50,33 50 49,5 49 49]; КТМ; m_proj ('lambert', 'long', [- 130 -121.5], 'lat', [47 51.5], 'rectbox', 'on'); m_gshhs_i ( 'цвет', 'к'); % Береговая линия ... m_gshhs_i ('спекл', 'цвет', 'k'); % с добавленным спеклом m_line (bndry_lon, bndry_lat, 'linewi', 2, 'color', 'k'); % Площадь контура ... m_hatch (bndry_lon, bndry_lat, 'single', 30,5, 'color', 'k'); % ... с добавлением штриховки. m_grid ( 'linewi', 2, 'LINEST', 'ни', 'tickdir', 'из', 'FontSize', 12); title («Пестрые границы для красивой черно-белой презентации», «fontsize», 14); m_text (-128,48, { 'Pacific', 'Ocean'}, 'FontSize', 18); bndry_lon = [- 128,8 -128,8 -128,3 -128 -126,8 -126,6 -128,8];  bndry_lat = [49 50,33 50,33 50 49,5 49 49];  КТМ;  m_proj ('lambert', 'long', [- 130 -121

13. Голубой океан

m_proj ('miller', 'lat', [- 77 77]); m_coast ('patch', [. 7 1 .7], 'edgecolor', 'none'); m_grid ('box', 'fancy', 'linestyle', '-', 'gridcolor', 'w', 'backcolor', [. 2 .65 1]); города = {'Каир', 'Вашингтон', 'Буэнос-Айрес'}; lons = [30 + 2/60 -77-2 / 60 -58-22 / 60]; лат = [31 + 21/60 38 + 53/60 -34-45 / 60]; для k = 1: 3 [range, ln, lt] = m_lldist ([- 123-6 / 60 lons (k)], [49 + 13/60 латов (k)], 40); m_line (пер, л, 'Цвет', 'R', 'linewi', 2); m_text (ln (конец), lt (конец), sprintf ('% s -% d км', города {k}, раунд (диапазон)); конец; title («Маршруты большого круга», «fontsize», 14, «fontweight», «bold»); установить (GCF, 'цвет', 'W'); % Нужно сделать это, иначе «печать» превращает озера в черное m_proj ('miller', 'lat', [- 77 77]);  m_coast ('patch', [

14. Одна Океанская Проекция

% Эта проекция показывает все океаны, связанные друг с другом - внешнее кольцо% - это азиатская береговая линия (спасибо M BO за эту идею)%, иначе это просто пример различных типов карт. m_proj («азимутальная равная площадь», «радиус», 156, «широта», - 46, «длинный», - 95, «гниль», 30); ax1 = подзаговор (2,2,1, 'Align'); m_coast ( 'патч', 'г'); m_grid ( 'xticklabel', [], 'yticklabel', [], 'LineStyle', '-', 'ytick', [- 60:30:60]); ах2 = подзаговор (2,2,2, 'Align'); m_elev ('contourf', [- 7000: 1000: 0 500: 500: 3000], 'edgecolor', 'none'); карта цветов (ах2, [m_colmap ( 'син', 70); m_colmap ( 'железа', 30)]); caxis (ax2, [- 7000 3000]); m_grid ( 'xticklabel', [], 'yticklabel', [], 'LineStyle', '-', 'ytick', [- 60:30:60]); ах3 = подзаговор (2,2,3, 'Align'); карта цветов (ах3, [m_colmap ( 'син', 70); m_colmap ( 'железа', 30)]); caxis (ax3, [- 7000 3000]); m_elev ( 'изображения'); m_grid ( 'xticklabel', [], 'yticklabel', [], 'LineStyle', '-', 'ytick', [- 60:30:60]); AX4 = подзаговор (2,2,4, 'Align'); карта цветов (AX4, [m_colmap ( 'син')]); caxis (ax4, [- 8000 000]); m_elev ( 'shadedrelief', 'Градиент', 5.); m_coast ('patch', [. 7 .7 .7], 'edgecolor', 'none'); m_grid ( 'xticklabel', [], 'yticklabel', [], 'LineStyle', '-', 'ytick', [- 60:30:60]); ha = axes («Position», [0 0 1 1], «Xlim», [0 1], «Ylim», [0 1], «Box», «off», ... «Visible», «off» ',' Units ',' normalized ',' clipping ',' off '); text (0.5, 0.98, «В этой проекции показаны все океаны, связанные друг с другом», ... «horiz», «center», «fontsize», 20); % Эта проекция показывает все океаны, связанные друг с другом - внешнее кольцо% - это азиатская береговая линия (спасибо M BO за эту идею)%, иначе это просто пример различных типов карт

15. Ступенчатая струя цвета

% получают данные дельта-SA из атласа TEOS-10 gsw при 2500 дбар [LG, LT] = сетка сетки (0: 360, -86: 89); DSA = те (размер (LG)); DSA (:) = gsw_deltaSA_atlas (3000 * DSA (:), LG (:), LT (:)); % Переставьте данные так, чтобы они находились в пределах долготы, которые я даю для% проекции ind = [31: 361 1:30]; % Переместить левую сторону вправо dSA = dSA (:, ind); LT = LT (:, Ind); LG = LG (:, Ind); LG (LG> 30) = LG (LG> 30) -360; % ... и вычтите 360 к некоторым долготам clf; m_proj («Робинсон», «Ион», [- 330 30]); m_pcolor (LG, LT, DSA * 1000); m_coast ('patch', [. 7 .7 .7], 'edgecolor', 'none'); m_grid ( 'tickdir', 'из', 'linewi', 2); % Это воспринимаемая равномерно струйно-подобная цветовая шкала, но в m_colmap% мы можем добавить несколько простых градуированных шагов, чтобы сделать цвет немного более похожим на контурную цветовую карту (m_colmap ('jet', 'step', 10)) ; ч = Colorbar ( 'northoutside'); название (h, '\ deltaSA / (г / кг) при 2000 дбар', 'размер шрифта', 14); set (h, 'pos', get (h, 'pos') + [. 2 .05 -.4 0], 'tickdir', 'out') set (gcf, 'color', 'w'); % Нужно сделать это, иначе «печать» превращает озера в черное % получают данные дельта-SA из атласа TEOS-10 gsw при 2500 дбар [LG, LT] = сетка сетки (0: 360, -86: 89);  DSA = те (размер (LG));  DSA (:) = gsw_deltaSA_atlas (3000 * DSA (:), LG (:), LT (:));  % Переставьте данные так, чтобы они находились в пределах долготы, которые я даю для% проекции ind = [31: 361 1:30];  % Переместить левую сторону вправо dSA = dSA (:, ind);  LT = LT (:, Ind);  LG = LG (:, Ind); LG (LG> 30) = LG (LG> 30) -360;  %

16. Батиметрия

нагрузка / океан / богатые / дома / логова 14 / VENTS lp = нагрузка ('/ океан / богатые / дома / логов14 / Linep_201402'); m_proj ('lambert', 'long', [- 160 -115], 'lat', [32 60]); [CS, CH] = m_etopo2 ('contourf', [- 7000: 1000: -1000 -500 -200 0], 'edgecolor', 'none'); m_gshhs_f ('patch', [. 7 .7 .7], 'edgecolor', 'none'); h1 = m_line (vents.lon, vents.lat, 'marker', 's', 'color', [0. 0 0], ... 'linest', 'none', 'markerfacecolor', 'w', 'клип', 'точка'); h2 = m_line (lp.POS (:, 2), lp.POS (:, 1), 'marker', 'o', 'color', 'r', 'linewi', 2, ... 'linest' , 'ни один', 'markersize', 8, 'markerfacecolor', 'W'); не m_grid ( 'LINEST', 'никто', 'tickdir', 'из', 'окно', 'фантазии', 'FontSize', 16); легенда ([h1 (1), h2 (1)], «Известные гидротермальные жерла», «Станции Line-P», «Местоположение», «Юго-Запад»); Colormap (m_colmap ( 'блюз')); каксис ([- 7000 000]); [ax, h] = m_contfbar ([. 55 .75],. 8, CS, CH, «наконечник», «нет», «axfrac»,. 05); набор заголовков (топор, метры) (gcf, 'color', 'w'); % иначе «печать» превращает озера в черное нагрузка / океан / богатые / дома / логова 14 / VENTS lp = нагрузка ('/ океан / богатые / дома / логов14 / Linep_201402');  m_proj ('lambert', 'long', [- 160 -115], 'lat', [32 60]);  [CS, CH] = m_etopo2 ('contourf', [- 7000: 1000: -1000 -500 -200 0], 'edgecolor', 'none');  m_gshhs_f ('patch', [

17. Затененный рельеф (пример 1)

m_proj ('lambert', 'lat', [5 24], 'long', [105 125]); set (gcf, 'color', 'w')% Установить цвет фона перед вызовом m_image caxis ([- 6000 0]); карта цветов (flipud ([flipud (m_colmap ( 'син', 10)); m_colmap ( 'струи', 118)])); m_etopo2 ( 'shadedrelief', 'Градиент', 3); m_gshhs_i ('patch', [. 8 .8 .8]); m_grid ( 'поле', 'фантазия'); ax = m_contfbar (.97, [. 5 .9], [- 6000 0], [- 6000: 100: 000], 'edgecolor', 'none', 'endpiece', 'no'); xlabel (ах, 'м', 'цвет', 'к'); m_proj ('lambert', 'lat', [5 24], 'long', [105 125]);  set (gcf, 'color', 'w')% Установить цвет фона перед вызовом m_image caxis ([- 6000 0]);  карта цветов (flipud ([flipud (m_colmap ( 'син', 10)); m_colmap ( 'струи', 118)]));  m_etopo2 ( 'shadedrelief', 'Градиент', 3);  m_gshhs_i ('patch', [

18. Затененный рельеф (пример 2)

m_proj ('utm', 'эллипс', 'grs80', 'zone', 10, 'lat', [49 + 15,7 / 60 49 + 21/60], ... 'long', [- 123-15 / 60 -123-3 / 60]); % Использует многолучевую батиметрию с горизонтальным разрешением 10 м.% Уже регулярно привязан к сетке в координатах UTM с вектором x2 / y2 и% матрица Z2. каксис ([- 150 0]); карта цветов ([m_colmap ( 'вода', 128)]); m_shadedrelief (х2, у2, -Z2, 'lightangle', - 45, 'Градиент', 8, 'коорд', 'Z'); % Добавить некоторые контуры удерживать; [CS, ч] = контур (х2, y2, z2, [0: 20: 150], 'цвет', 'к'); clabel (CS, ч, 'FontSize', 6); откладывать; % Земельных участков от ранее сохраненной береговой линии высокого разрешения col = [255 214 140] / 255; % CHS график цвета земли m_usercoast ('/ ocean / rich / more / mmapbase / bcgeo / PNW.mat', 'patch', col); m_usercoast ( '/ океан / богатой / более / mmapbase / bcgeo / PNWrivers.mat', 'патч', цв); % Lat / long И сетка UTM m_grid ('tickdir', 'out', 'fontsize', 12, 'linest', 'none', 'xaxisloc', 'top', 'yaxisloc', 'right'); m_utmgrid ( 'Xcolor', 'B', 'ycolor', 'B', 'LINEST', '-'); m_ruler ([. 5 .8],. 9, «tickdir», «out», «ticklen», [. 007 .007]); xlabel («Ванкуверская гавань», «цвет», «k»); m_proj ('utm', 'эллипс', 'grs80', 'zone', 10, 'lat', [49 + 15,7 / 60 49 + 21/60],

19. Цветовые карты

% Эта команда генерирует цифру%. В каждом заголовке субплота есть вызов M_COLMAP, который% сгенерировал отображаемую цветовую карту. %% Использование этих цветовых карт можно увидеть% на других картах в этой галерее. демоверсия m_colmap % Эта команда генерирует цифру%

Примеры манипулирования спутниковыми данными

1. Глобальный SST (или любая переменная в глобальной сетке Lat / Long)

% NOAA / NASA Pathfinder AVHRR SST product% http://podaac.jpl.nasa.gov/sst/ [P, map] = imread ('../ m_mapWK / 199911h54ma-gdm.hdf'); % Документация для 54-километрового набора данных дает% эту формулу для температуры P = 0,15 * double (P) -3; % deg C% ... и определяет эту сетку широты / долготы для данных Plat = 90-.25- [0: 359] *. 5; Plon = -180 + .25 + [0: 719] *. 5; % Так как сетка является прямоугольной по широте / длине (то есть, на самом деле,% не является проекцией, хотя она включена в% m_map под названием «равноудаленный циллиндрический»), мы% не хотим использовать технику «изображения». Вместо этого ...% Создайте сетку, сместив ее на половину точки сетки для учета% для плоского pcolor [Plg, Plt] = meshgrid (Plon-0.25, Plat + 0.25); m_proj ( 'Молоток-Аит в', 'clongitude', - 150); % Вместо того, чтобы переупорядочить данные, чтобы их границы соответствовали% графику, я просто рисую его дважды (вы можете увидеть соединение на 180W% из-за причуд плоского pcolor) (Обратите внимание, что% всех глобальных проекций имеют неоднозначности 360 градусов) m_pcolor ( Plg, Plt, P); штриховка плоская; карта цветов (карта); Оставайтесь на линии; m_pcolor (Plg-360, Plt, P); штриховка плоская; карта цветов (карта); m_coast ('patch', [. 6 1 .6]); m_grid ( 'Xaxis', 'среднего'); % добавить стандартную цветовую панель. ч = Colorbar ( 'Н'); set (get (h, 'xlabel'), 'string', 'AVHRR SST Nov 1999'); % NOAA / NASA Pathfinder AVHRR SST product% http://podaac

2. Ледяной покров SSM / I (данные представлены на фиксированной сетке) (формат HDF)

% Ежедневная глобальная концентрация льда в SSM / I-SSMIS EAS-Grid практически в реальном времени и% снежного покрова, версия 5%, Бродзик, МДж и Дж. С. Стюарт. 2016. Практически в реальном времени SSM / I-SSMIS EASE-Grid% Ежедневная глобальная концентрация льда и протяженность снега, версия 5. Боулдер, Колорадо, США. НАСА Национальный центр данных по снегу и льду. Распределенный активный архивный центр. % doi: http://dx.doi.org/10.5067/3KB2JPLFPK3R. Q = hdfinfo ( 'NISE_SSMISF18_20171124.HDFEOS')% Q.Attributes (2) .Value говорит% UpperLeftPointMtrs = (- 9036842.762500,9036842.762500)% LowerRightMtrs = (+9036842,762500, -9036842,762500)% ProjParams = (6371228,0,0,0, 0,90000000,0,0,0,0,0,0,0)% и% Q. Атрибуты (3). Значение говорит% 'Значение параметра данных% 0 свободная от снега земля% 1-100 процент концентрации морского льда% 101 постоянный лед (Гренландия, Антарктида)% 102 не используется% 103 сухой снег% 104 влажный снег% 105-251 не используется% 252 смешанных пикселей на береговых линиях (невозможно надежно применить микроволновый алгоритм)% 253 подозревает значение льда% 254 углов (не определено) )% 255 океан P = hdfread ('NISE_SSMISF18_20171124.HDFEOS', 'Северное полушарие', 'поля', 'экстент'); Р (Р == 255) = 105; % Поставить океан на вершину индексов P (P> 105) = 0; Согласно веб-сайту, это информация о проекции. Я делаю радиус% моей карты меньше, чем фактическое поле данных. m_proj («азимутальная равная площадь», «широта», 90, «радиус», 47, «прямоугольник», «вкл.»); clf% Данные графика как изображения offs = 9036842.762500 / 6371228; % Преобразовать координаты проекции в единицы изображения радиусов Земли ([- offs offs], [offs -offs], P); Набор (GCA, 'ydir', 'нормальный'); карта цветов ([. 2 .5 .2;% 0 струя (100);% 1-100 1 1 1;% Гренландия 0 0 0; .9 .9 .9;% сухого снега .8 .8 .8;% влажного снег 0 0 .5]); % 105 - теперь океанский каксис ([0 105]); m_coast ( 'цвет', 'к'); m_grid ( 'linewi', 2, 'tickdir', 'из'); title ({'SSM / I Ice cover 24 ноября 2017 г.', ''}, 'fontsize', 14, 'fontweight', 'bold'); чч = Colorbar ( 'Н'); набор (чч 'tickdir', 'нет'); xlabel (чч, «% ледяного покрова»); % Ежедневная глобальная концентрация льда в SSM / I-SSMIS EAS-Grid практически в реальном времени и% снежного покрова, версия 5%, Бродзик, МДж и Дж

3. Аэрофотоснимки на сетке UTM

% Это изображение взято из TerraServer% (http://terraserver.microsoft.com/ - теперь сильно изменено)% и привязано к координатам UTM. UTM projection% использует координаты UTM на экране (если для параметра эллипса% установлено значение, отличное от значения по умолчанию), [P, map] = imread ('../ m_mapWK / Oncehome.jpeg'); % Установите пределы проекции на широту / длину изображения% углов. m_proj ('UTM', 'long', [- 71-6 / 60-30 / 3600 -71-4 / 60-43 / 3600], ... 'lat', [42 + 21/60 + 13/3600 42 + 22/60 + 7/3600], 'эллипс', 'WGS84'); КТМ; изображение ([326400 328800], [4692800 4691200], P); set (gca, 'ydir', 'normal'); m_grid ( 'tickdir', 'из', 'linewi', 2, 'FontSize', 14); title («Дом для определенных ботаников», «fontsize», 16); % Это изображение взято из TerraServer% (http://terraserver

4. Подмножество глобального набора данных (формат HDF)

% Данные о цвете океана из http://seawifs.gsfc.nasa.gov/SEAWIFS.html%%. Возьмите 4 км слабо усредненного набора данных и постройте карту пролива% Джорджия и внешнего побережья. Обратите внимание, что большая часть этого кода используется% для чтения и поднабора данных. LATLIMS = [47 51]; LONLIMS = [- 130 -121]; % Примечание. Вероятно, это не самый эффективный способ чтения и обработки данных HDF%, но я обычно не делаю этого ...%% Сначала получим данные атрибута PI = hdfinfo ('../ m_mapWK / A20040972004104. L3m_8D_CHLO_4KM '); % И запишите это в структуру pin = []; для k = 1: 59 нм = PI. Атрибуты (k). Имя; нм (нм == '') = '_'; если isstr (PI.Attributes (k) .Value), pin = установленное поле (pin, nm, PI.Attributes (k) .Value); иначе pin = установленное поле (pin, nm, double (PI.Attributes (k) .Value)); конец конец; % lon / lat углов сетки lon = [pin.Westernmost_Longitude: pin.Longitude_Step: pin.Easternmost_Longitude]; лат = [pin.Northernmost_Latitude: -pin.Latitude_Step: pin.Southernmost_Latitude]; % Получите индексы, необходимые для интересующей области [mn, ilt] = min (abs (lat-max (LATLIMS))); [Млн, ILG] = мин (абс (долгота-мин (LONLIMS))); МУДП = исправление (Diff (LATLIMS) /pin.Latitude_Step); lglm = исправление (Diff (LONLIMS) /pin.Longitude_Step); % загрузки подмножества данных, необходимых для ограничений карты, с учетом P = hdfread ('../ m_map / WKA20040972004104.L3m_8D_CHLO_4KM', 'l3m_data', ... 'Index', {[ilt ilg], [], [ltlm lglm ]}); % Преобразование данных в журнал (Chla) с использованием приведенных уравнений. Пустой нет данных. Р = двойной (Р); Р (Р == 255) = NaN; Р = (pin.Slope * Р + pin.Intercept); % log_10 chla LT = lat (ilt + [0: ltlm-1]); LG = lon (ilg + [0: lglm-1]); [PLG, PLT] = meshgrid (LG, LT); % FINALLY .... Нарисуйте карту ... clf; m_proj ( 'Lambert', 'долгота', LONLIMS, 'ш', LATLIMS); m_pcolor (Plg, Plt, P); затенение плоское; m_gshhs_i ( 'цвет', 'к') ;; m_grid ( 'linewi', 2, 'tickdir', 'из') ;; ч = Colorbar; set (get (h, 'ylabel'), 'String', 'Chla (\ mug / l)'); set (h, 'ytick', log10 ([. 5 1 2 3 5 10 20 30]), 'yticklabel', [. 5 1 2 3 5 10 20 30], ... 'tickdir', 'out') ; title (['MODIS Chla' ... datestr (datenum (pin.Period_Start_Year, 1,0) + pin.Period_Start_Day) ... '->' ... datestr (datenum (pin.Period_Start_Year, 1,0) + pin.Period_End_Day)], ... 'fontsize', 14, 'fontweight', 'bold'); % Данные о цвете океана из http://seawifs

5. Метеорологические данные (формат netCDF)

IDAY = 156; % день, чтобы показать% использовать ncdisp (имя файла), чтобы обнаружить содержимое файла ... lat = ncread ('uwnd.10m.gauss.2017.nc', 'lat'); долгота = ncread ( 'uwnd.10m.gauss.2017.nc', 'долгота'); [LN, LT] = meshgrid (долгота, широта); = ncread время изменения ( 'uwnd.10m.gauss.2017.nc', 'время') / 24 + datenum (1800,1,1,0,0,0); и = ncread ( 'uwnd.10m.gauss.2017.nc', 'uwnd', [1,1, IDAY], [192,94,1]); v = ncread ( 'vwnd.10m.gauss.2017.nc', 'vwnd', [1,1, IDAY], [192,94,1]); разбалтывать = ncread ( 'prate.sfc.gauss.2017.nc', 'разбалтывать', [1,1, IDAY], [192,94,1]); m_proj ('miller', 'lon', [100 260], 'lat', [0 65]); m_coast ('patch', [. 8 .8 .8]); удерживайте [CS, CH] = m_contourf (LN, LT, prate '* 1e3, [0,05: .05: .7],' edgecolor ',' none '); m_windbarb (LN, LT, u ', v', 2, «единицы», «м / с», «linewi», 1, «цвет», «r»); откладывать; m_grid ( 'поле', 'фантазия', 'tickdir', 'нет'); ax = m_contfbar ([. 3 .7], 05, CS, CH); set (ax, 'fontsize', 12) xlabel (ax, 'Средняя суточная норма осадков / (кг / м ^ 2 / с)'); title (['Северные тихоокеанские поверхностные ветры:' datestr (mtime (iday))], 'fontsize', 16); Colormap (flipud (m_colmap ( 'Блюз'))) IDAY = 156;  % день, чтобы показать% использовать ncdisp (имя файла), чтобы обнаружить содержимое файла

6. Дорожки ARGO (формат netCDF)

% Argo stuff% Перейти на:% http://www.usgodae.org/cgi-bin/argo_select.pl% Выберите нужную область и диапазон дат, загрузите все профили% tar -xvzf в каталог ... basname = ' ./argo '; % base map m_proj ('lambert', 'lons', [- 150 -124], 'lat', [40 60], 'rectbox', 'on'); [CS, ч] = m_etopo2 ( 'contourf', [- 7000: 500: 0], 'edgecolor', 'ни'); m_gshhs_l ('patch', [. 5 .8 0], 'edgecolor', 'none'); m_grid ( 'linewi', 2, 'слой', 'сверху'); каксис ([- 7000 000]); m_contfbar (.92, [. 2 .5], cs, h, 'endpiece', 'no', 'axfrac',. 02); Colormap (m_colmap ( 'синий')); title («Поплавковые траектории Арго NE Pacific (2017)»); % Добавьте ARGO траектории движения с плавающей точкой% 1) нарисуйте масштабную стрелку vecscl = 0,015; m_vec (vecscl, -126,58, -0,01,0, 'r', 'ширина вала', 2, 'headlength', 10, ... 'key', {'1 cm / s', 'Mean Drift'} 'центр', 'да'); = каталог каталоги (basname); т = 0; для k = 3: длина (dirs) profname = dir ([dirs (k) .folder '/' dirs (k) .name]); для l = 3: длина (profname) fname = [profname (l) .folder '/' profname (l) .name '/' profname (l) .name '_Rtraj.nc']; % Ncdisp (имя_файла); argo.id = ncread (имя_файла, 'PLATFORM_NUMBER'); argo.mtime = ncread (имя_файла, 'JULD) + datenum (1950,1,1); argo.lat = ncread (имя_файла, 'ШИРОТЫ'); argo.lon = ncread (имя_файла, 'ДОЛГОТА'); % Long хранятся в диапазоне от -180 до +180; это удаляет искусственные скачки%, которые могут произойти только за пределами карты. argo.lon (argo.lon> 0) = argo.lon (argo.lon> 0) -360; б = найти (isfinite (argo.lon)); если есть (ii) m_line (argo.lon (ii), argo.lat (ii), 'color', [0 0 0]); % Иногда первая точка - это какая-то ошибка, поэтому пропустите ее Dlon = argo.lon (ii ([2 end])); Dlat = argo.lat (ii ([2 end])); t = diff (argo.mtime (ii ([2 end]))); % времени между точками% Расстояние между точками [d, a12] = m_idist (Dlon (1), Dlat (1), Dlon (2), Dlat (2)); % Хранить вещи m = m + 1; spd (m) = d / (t * 86400);% m / s% Найти среднюю точку на геодезической и сохранить также [Clon (m), Clat (m), a21 (m)] = m_fdist (Dlon (1), DLAT (1), а12, d / 2); конец конец конец Clon = rem (Clon-360,360); % Получить его в нужном диапазоне a21 = rem (a21-180,360); % Мне нужно противоположное направление% Нарисуйте все стрелки «средней скорости», центрированные в средней точке% геодезической между первой и последней точками. m_vec (vecscl, Clon, Clat, spd. * sind (a21), spd. * cosd (a21), «r», ... «по центру», «да», «ширина вала», 2, «длина волны», 10 ); % Argo stuff% Перейти на:% http://www

7. SAR-изображение внутренних волн (формат HDF-5)

Fname = 'SAR_IMP_1PNESA19920724_190439_00000018C086_00199_05354_0000.h5'; % h5disp (fname)% См. структуру titlestr = h5readatt (fname, '/ metadata / MPH', 'STATE_VECTOR_TIME'); datsize = double ([h5readatt (fname, '/band / Amplitude', 'raster_width') ... h5readatt (fname, '/ band / Amplitude', 'raster_height')]); tielat = h5read (имя_файла, '/ tie_point_grids / широта'); tielon = h5read (имя_файла, '/ tie_point_grids / долготы'); stp = [h5readatt (fname, '/ tie_point_grids / latitude', 'sub_sampling_x') ... h5readatt (fname, '/ tie_point_grids / latitude', 'sub_sampling_y')]; % Вытащите подраздел в [2000 2500] из одного угла и в% [600 2000] из противоположного угла istart = [2000 2500]; strd = [3 3]; cnt = fix ([(datsize (1) -istart (1) -600) / strd (1) (datsize (2) -istart (2) -2000) / strd (2)]); % ...и читать. subimg = h5read (имя_файла, '/ группы / Амплитудные', ISTART, CNT, StrD); % .... немного сгладить ... subf = filter2 (ones (3,3) / 9, subimg); % Теперь сгенерируйте широту / долготу для всех пикселей путем интерполяции из% связующих точек. Ти = [0: размер (tielat, 2) -1] * СТП (2) +1; Tx = [0: размер (tielat, 1) -1] * СТП (1) +1; Iy = ISTART (2) + [0: размер (subimg, 2) -1] * StrD (2); Ix = ISTART (1) + [0: размер (subimg, 1) -1] * StrD (1); sublat = interp2 (Ти 'Тх, tielat, Iy', Ix); sublon = interp2 (Ти 'Тх, tielon, Iy', Ix); % Теперь сделайте карту m_proj ('lambert', 'lon', [- 123-25 ​​/ 60 -122-40 / 60], 'lat', [48 + 42/60 49 + 9/60]); m_pcolor (sublon, sublat, subf); затенение плоское; m_grid ( 'поле', 'фантазия', 'tickdir', 'нет'); m_ruler (1.03, [. 15 .5], 'ticklen', [. 01]); каксис ([0 450]); карта цветов (серый); Название (titlestr) Fname = 'SAR_IMP_1PNESA19920724_190439_00000018C086_00199_05354_0000

8. Затененный рельеф из топографии высокого разрешения (формат netCDF)

clat = [48 + 46/60 49 + 5/60]; clon = [- 125-15 / 60 -124-55 / 60]; % Barkley Sound %% Чтение данных из файла netcdf fname = '/ ocean / rich / more / mmapbase / noaa_bc3 / barkley_sound_1_navd88_2016.nc'; лат = ncread (имя_файла, 'ш'); долгота = ncread (имя_файла, 'долгота'); ilat = lat> = clat (1) & lat = clon (1) & lon clat = [48 + 46/60 49 + 5/60]; clon = [- 125-15 / 60 -124-55 / 60];  % Barkley Sound %% Чтение данных из файла netcdf fname = '/ ocean / rich / more / mmapbase / noaa_bc3 / barkley_sound_1_navd88_2016

9. Статический API Карт Google

% Ось пределы lms = [-123- [14 8] / 60 49+ [10 13,5] / 60]; % plot_google_maps.m из базы данных пользовательских файлов mathworks:% https://www.mathworks.com/matlabcentral/fileexchange/27627-zoharby-plot_google_map% получает доступ к статическим плиткам карт Google Maps, возвращая латт / длинное сеточное изображение%, которое отображает% просто больше, чем заданные пределы. КТМ; Ось (LMS); [Глонь, Glat, Gimg] = plot_google_map ( 'MapType', 'спутник', 'Обновить', 0, 'autoaxis', 0); КТМ; Теперь нарисуйте это! m_proj ( 'UTM', 'ш', (3 пленок: 4), 'долгота', (LMS 1: 2)); m_image (Глонь, Glat, Gimg); m_grid ( 'tickdir', 'из', 'окно', 'фантазии'); m_ruler ([. 4 .9], 1.05,6, 'tickdir', 'in', 'ticklen',. 01); % Ось пределы lms = [-123- [14 8] / 60 49+ [10 13,5] / 60];  % plot_google_maps
Если вы решите, что M_Map внес существенный вклад в проект, и вы хотите подтвердить этот вклад цитатой (спасибо!), Я рекомендую что-то вроде следующего:

Многие люди помогли с предложениями, исправлениями кода и т. Д. Я особенно благодарен за работу, проделанную Э. Фрингом, Д. Бирном, М. Манном, Дж. Принглом, Дж. Э. Нильсеном, М. Халверсоном, Джейми Цоа и Ши Вэйхэн, которые все внесли код.