exponenta event banner

Создание карт с помощью MAPSHOW

В этом примере показано, как создать диапазон различных карт с помощью mapshow.

Карта 1: Concord Roads - географическая структура данных

Отображение массива географической структуры данных со строками, представляющими дороги. В shapefile 'concord _ roads.shp' координаты дороги были предварительно спроецированы в систему Massachusetts Mainland State Plane (в метрах), поэтому файл формы импортируется в mapstruct (переменная 'дороги').

roads = shaperead('concord_roads.shp');
figure
mapshow(roads);
xlabel('easting in meters')
ylabel('northing in meters')

Карта 2: Дороги согласия с пользовательским стилем линий

Отображение формы дорог и изменение стиля линий.

figure
mapshow('concord_roads.shp','LineStyle',':');
xlabel('easting in meters')
ylabel('northing in meters')

Карта 3: Конкорд Дороги с SymbolSpec

Отображение формы дорог и визуализация с помощью SymbolSpec.

Чтобы узнать о concord_roads.shp набор данных, прочтите связанный с ним concord_roads.txt файл метаданных, описывающий атрибуты.

type concord_roads.txt
  A shapefile data set for roads in part of Concord, Massachusetts,
  USA comprising the following files:
 
     concord_roads.dbf
     concord_roads.shp
     concord_roads.shx
 
  Source
  ------
  Office of Geographic and Environmental Information (MassGIS),
  Commonwealth of Massachusetts  Executive Office of Environmental Affairs
  (http://www.state.ma.us/mgis/)
 
  Coordinate system/projection
  ----------------------------
  All data distributed by MassGIS are registered to the NAD83 datum,
  Massachusetts State Plane Mainland Zone coordinate system. Units are in
  meters.
 
  Data set construction
  ---------------------
  This data set was constructed by concatenating Massachusetts Highway
  Department road shapefiles for the Maynard and Concord USGS Quadrangles,
  from compressed files mrd97.exe and mrd104.exe.
 
  Features were selected with bounding boxes intersecting the following
  box:
            [206500 (min easting)  910500 (min northing)
             211500 (max easting)  913500 (max northing)]
 
  The following attributes were retained:
 
      'STREETNAME', 'RT_NUMBER', 'CLASS', 'ADMIN_TYPE', 'LENGTH'
 
  Attributes 'CLASS' and 'ADMIN_TYPE' contain numerical codes defined by
  MassGIS as follows:
 
  Road classes (from file mrdac.dbf)
  ----------------------------------
  CLASS 1 Limited access highway
  CLASS 2 Multi-lane highway, not limited access
  CLASS 3 Other numbered route
  CLASS 4 Major road - collector
  CLASS 5 Minor street or road
  CLASS 6 Minor street or road
  CLASS 7 Highway ramp
 
  Road admin types (from file mrdac.dbf)
  --------------------------------------
  ADMIN_TYPE 0 Local road
  ADMIN_TYPE 1 Interstate
  ADMIN_TYPE 2 U.S. Federal
  ADMIN_TYPE 3 State
 
  Construction date
  -----------------
  November 17, 2003.

Запрос атрибутов в этом файле дорог.

roads = shaperead('concord_roads.shp')
roads = 

  609x1 struct array with fields:

    Geometry
    BoundingBox
    X
    Y
    STREETNAME
    RT_NUMBER
    CLASS
    ADMIN_TYPE
    LENGTH

Узнайте, сколько дорог приходится на каждый КЛАСС.

histcounts([roads.CLASS],'BinLimits',[1 7],'BinMethod','integer')
ans =

     0    14    93    26   395    81     0

Узнайте, сколько дорог приходится на каждую ADMIN_TYPE.

histcounts([roads.ADMIN_TYPE],'BinLimits',[0 3],'BinMethod','integer')
ans =

   502     0     0   107

Обратите внимание, что в этом файле нет дорог КЛАССА 1 или 7, а дороги имеют значения ADMIN_TYPE 0 или 3.

Создайте команду SymbolSpec, чтобы:

  • Цвет местных дорог (ADMIN_TYPE=0) чёрный.

  • Цветные государственные дороги (ADMIN_TYPE=3) красного цвета.

  • Скрыть очень мелкие дороги (КЛАСС = 6).

  • Установить крупные или большие дороги (КЛАСС = 1-4) с LineWidth значение 2,0.

roadspec = makesymbolspec('Line',...
    {'ADMIN_TYPE',0, 'Color','black'}, ...
    {'ADMIN_TYPE',3, 'Color','red'},...
    {'CLASS',6, 'Visible','off'},...
    {'CLASS',[1 4], 'LineWidth',2});
figure
mapshow('concord_roads.shp','SymbolSpec',roadspec);
xlabel('easting in meters')
ylabel('northing in meters')

Карта 4: Concord Roads, Override SymbolSpec

Переопределить графическое свойство SymbolSpec.

roadspec = makesymbolspec('Line',...
    {'ADMIN_TYPE',0, 'Color','black'}, ...
    {'ADMIN_TYPE',3, 'Color','red'},...
    {'CLASS',6, 'Visible','off'},...
    {'CLASS',[1 4], 'LineWidth',2});
figure
mapshow('concord_roads.shp','SymbolSpec',roadspec,'Color','black');
xlabel('easting in meters')
ylabel('northing in meters')

Карта 5: Бостон Дороги с SymbolSpec, Переопределить значения по умолчанию

Переопределить свойство SymbolSpec по умолчанию.

roadspec = makesymbolspec('Line',...
    {'Default', 'Color','green'}, ...
    {'ADMIN_TYPE',0, 'Color','black'}, ...
    {'ADMIN_TYPE',3, 'Color','red'},...
    {'CLASS',6, 'Visible','off'},...
    {'CLASS',[1 4], 'LineWidth',2});
figure
mapshow('boston_roads.shp','SymbolSpec',roadspec);
xlabel('easting in meters')
ylabel('northing in meters')

Карта 6: GeoTIFF Изображение Бостона

Отображение изображения Boston GeoTIFF; включает в себя материал (c) GeoEye™, все права защищены.

figure
mapshow boston.tif
axis image manual off

Чтобы наложить поверх изображения GeoTIFF, прочитайте имена плаценов Бостона.

S = shaperead('boston_placenames.shp');

Проекция в файле GeoTIFF находится в единицах съемочных футов. Координаты точек в файле формы в метрах. Поэтому нам нужно преобразовать координаты placename из метров в съемочные футы, чтобы наложить точки на изображение.

surveyFeetPerMeter = unitsratio('sf', 'meter');
for k = 1:numel(S)
    S(k).X = surveyFeetPerMeter * S(k).X;
    S(k).Y = surveyFeetPerMeter * S(k).Y;
end

Выведите на экран имена плаценаций.

text([S.X], [S.Y], {S.NAME}, 'Color', [0 0 0], ...
    'BackgroundColor',[0.9 0.9 0],'Clipping','on');

Увеличьте изображение выбранной области.

xlim([ 772007,  775582])
ylim([2954572, 2956535])

Карта 7: Пруд с островами над Orthopoto Backdrop

Покажите пруд с тремя большими островами (покажите 14 в concord_hydro_area shapefile). Обратите внимание, что островки видны в ортофото через три «отверстия» в полигоне пруда. Отображение дорог на том же рисунке.

[ortho, cmap] = imread('concord_ortho_w.tif');
R = worldfileread('concord_ortho_w.tfw', 'planar', size(ortho));
figure
mapshow(ortho, cmap, R)

Сохранить ограничения карты, используемые для изображения

xLimits = xlim;
yLimits = ylim;
pond = shaperead('concord_hydro_area.shp', 'RecordNumbers', 14);
hold on
mapshow(pond, 'FaceColor', [0.3 0.5 1], 'EdgeColor', 'black')
mapshow('concord_roads.shp', 'Color', 'red', 'LineWidth', 1);
xlabel('easting in meters')
ylabel('northing in meters')

Восстановить ограничения карты для соответствия изображению

xlim(xLimits)
ylim(yLimits)

Карта 8: Цифровая модель возвышения Mount Washington SDTS

Просмотр данных рельефа горы Вашингтон в виде сетки. Сетка данных привязана к зоне 19 универсального поперечного меркатора (UTM).

figure
h = mapshow('sdts/9129CATD.ddf','DisplayType','mesh');
Z = h.ZData;
demcmap(Z)
xlabel('UTM easting in meters')
ylabel('UTM northing in meters')

Просмотр данных рельефа горы Вашингтон как 3-D поверхности. Используйте вид 3-D по умолчанию, показывающий вид диапазона с юго-запада.

figure
mapshow('sdts/9129CATD.ddf');
demcmap(Z)
view(3);
axis equal;
xlabel('UTM easting in meters')
ylabel('UTM northing in meters')
zlabel('Elevation in feet')

Карта 9: Гора Вашингтон и Гора Дартмут на одной карте с контурами

Отображение линий сетки и контуров горы Вашингтон и горы Дартмут.

Прочитайте файлы данных местности для горы Вашингтон и горы Дартмут. Печать данных с помощью mapshow, растровые данные должны иметь тип single или double. Укажите тип данных для растра с помощью 'OutputType' пара имя-значение.

[ZWash,RWash] = readgeoraster('MtWashington-ft.grd', ...
    'OutputType','double');
[ZDart,RDart] = readgeoraster('MountDartmouth-ft.grd', ...
    'OutputType','double');

% Find missing data using the |georasterinfo| function. The function
% returns an object with a |MissingDataIndicator| property that indicates
% which value represents missing data. Replace the missing data with |NaN|
% values using the |standardizeMissing| function.

infoWash = georasterinfo('MtWashington-ft.grd');
ZWash = standardizeMissing(ZWash,infoWash.MissingDataIndicator);

infoDart = georasterinfo('MountDartmouth-ft.grd');
ZDart = standardizeMissing(ZDart,infoDart.MissingDataIndicator);

Убедитесь, что горизонтали и метки отображаются над данными рельефа, указав 'ZData' пара имя-значение как матрица нулей. Применение карты цветов, соответствующей данным рельефа местности, с помощью demcmap.

figure
hold on
mapshow(ZWash,RWash,'DisplayType','surface', ...
    'ZData',zeros(RWash.RasterSize))
mapshow(ZDart,RDart,'DisplayType','surface', ...
    'ZData',zeros(RDart.RasterSize))
demcmap(ZWash)
xlabel('UTM easting in meters')
ylabel('UTM northing in meters')
axis equal

Наложение черных контурных линий и меток.

mapshow(ZWash,RWash,'DisplayType','contour', ...
   'LineColor','k','ShowText','on');
mapshow(ZDart,RDart,'DisplayType','contour', ...
   'LineColor','k','ShowText','on');

Кредиты

boston_roads.shp, concord_roads.shp, concord_hydro_area.shp, concord_ortho_e.tif:

  Office of Geographic and Environmental Information (MassGIS),
  Commonwealth of Massachusetts Executive Office of Environmental Affairs
  http://www.state.ma.us/mgis

boston.tif

  Copyright GeoEye
  Includes material copyrighted by GeoEye, all rights reserved.
  (GeoEye was merged into the DigitalGlobe corporation January 29th,
  2013.)
  For more information, run:
  >> type boston.txt

9129CATD.ddf (и вспомогательные файлы):

  United States Geological Survey (USGS) 7.5-minute Digital Elevation
  Model (DEM) in Spatial Data Transfer Standard (SDTS) format for the
  Mt. Washington quadrangle, with elevation in meters.
  http://edc.usgs.gov/products/elevation/dem.html
  For more information, run:
  >> type 9129.txt

MtWashington-ft.grd, MountDartmouth-ft.grd:

  MtWashington-ft.grd is the same DEM as 9129CATD.ddf, but converted to
  Arc ASCII Grid format with elevation in feet.
  MountDartmouth-ft.grd is an adjacent DEM, also converted to Arc ASCII
  Grid with elevation in feet.
  For more information, run:
  >> type MtWashington-ft.txt
  >> type MountDartmouth-ft.txt

См. также

| | |