Mapping Toolbox™ software supports three different interpretations of geolocated data grids:
First, a map matrix having the same number of rows and columns as the latitude and longitude coordinate matrices represents the values of the map data at the corresponding geographic points (centers of data cells).
Next, a map matrix having one fewer row and one fewer column than the geographic coordinate matrices represents the values of the map data within the area formed by the four adjacent latitudes and longitudes.
Finally, if the latitude and longitude matrices have smaller dimensions than the map matrix, you can interpret them as describing a coarser graticule, or mesh of latitude and longitude cells, into which the blocks of map data are warped.
This section discusses the first two interpretations of geolocated data grids. For more information on the use of graticules, see The Map Grid.
As an example of the first interpretation, consider a 4-by-4 map matrix whose cell size is 30-by-30 degrees, along with its corresponding 4-by-4 latitude and longitude matrices:
Z = [ ... 1 2 3 4; ... 5 6 7 8; ... 9 10 11 12; ... 13 14 15 16]; lat = [ ... 30 30 30 30; ... 0 0 0 0; ... -30 -30 -30 -30; ... -60 -60 -60 -60]; lon = [ ... 0 30 60 90;... 0 30 60 90;... 0 30 60 90;... 0 30 60 90];
Display the geolocated data grid with the values of
at the associated latitudes and longitudes:
figure('Color','white','Colormap',autumn(64)) axesm('pcarree','Grid','on','Frame','on',... 'PLineLocation',30,'PLabelLocation',30) mlabel; plabel; axis off; tightmap h = geoshow(lat,lon,Z,'DisplayType','surface'); set(h,'ZData',zeros(size(Z))) ht = textm(lat(:),lon(:),num2str(Z(:)), ... 'Color','blue','FontSize',14); colorbar('southoutside')
Notice that only 9 of the 16 total cells are displayed. The value displayed for
each cell is the value at the upper left corner of that cell, whose coordinates are
given by the corresponding
elements. By convention, the last row and column of the map matrix are not
displayed, although they exist in the
CData property of the
For the second interpretation, consider a 3-by-3 map matrix with the same
delete(h) delete(ht) Z3by3 = [ ... 1 2 3; ... 4 5 6; ... 7 8 9]; h = geoshow(lat,lon,Z3by3,'DisplayType','texturemap'); tlat = [ ... 15 15 15; ... -15 -15 -15; ... -45 -45 -45]; tlon = [ ... 15 45 75; ... 15 45 75; ... 15 45 74]; textm(tlat(:),tlon(:),num2str(Z3by3(:)), ... 'Color','blue','FontSize',14)
Display a surface plot of the map matrix, with the values of
map shown at the center of the associated cells:
All the map data is displayed for this geolocated data grid. The value of each cell is the value at the center of the cell, and the latitudes and longitudes in the coordinate matrices are the boundaries for the cells.
You may have noticed that the first row of the matrix is displayed as the top of
the map, whereas for a regular data grid, the opposite was true: the first row
corresponded to the bottom of the map. This difference is entirely due to how the
lon matrices are ordered. In a
geolocated data grid, the order of values in the two coordinate matrices determines
the arrangement of the displayed values.
When required, a regular data grid can be transformed into a geolocated data grid.
This simply requires that a pair of coordinates matrices be computed at the desired
spatial resolution from the regular grid. Do this with the
meshgrat function, as follows:
load('topo','topo','topolatlim','topolonlim') topoR = georefcells(topolatlim,topolonlim,size(topo)); [lat,lon] = meshgrat(topo,topoR);
Conversely, a regular data grid can also be constructed from a geolocated data
grid. The coordinates and values can be embedded in a new regular data grid. The
function that performs this conversion is
geoloc2grid; it takes
a geolocated data grid and a cell size as inputs.