This is machine translation

Translated by Microsoft
Mouse over text to see original. Click the button below to return to the English verison of the page.


Filter latitudes and longitudes based on underlying data grid


[latout,lonout] = filterm(lat,lon,Z,R,allowed)
[latout,lonout,indx] = filterm(lat,lon,Z,R,allowed)


[latout,lonout] = filterm(lat,lon,Z,R,allowed) filters a set of latitudes and longitudes to include only those data points which have a corresponding value in Z equal to allowed. R can be a geographic raster reference object, a referencing vector, or a referencing matrix.

If R is a geographic raster reference object, its RasterSize property must be consistent with size(Z).

If R is a referencing vector, it must be a 1-by-3 with elements:

[cells/degree northern_latitude_limit western_longitude_limit]

If R is a referencing matrix, it must be 3-by-2 and transform raster row and column indices to or from geographic coordinates according to:

[lon lat] = [row col 1] * R

If R is a referencing matrix, it must define a (non-rotational, non-skewed) relationship in which each column of the data grid falls along a meridian and each row falls along a parallel. Nearest-neighbor interpolation is used by default. NaN is returned for points outside the grid limits or for which lat or lon contain NaN. All angles are in units of degrees.

[latout,lonout,indx] = filterm(lat,lon,Z,R,allowed) also returns the indices of the included points.


Filter a random set of 100 geographic points. Use the topo map for starters:

load topo

Then generate 100 random points:

lat = -90+180*rand(100,1);
long = -180+360*rand(100,1);

Make a land map, which is 1 where topo>0 elevation:

land = topo>0;
[newlat,newlong] = filterm(lat,long,land,topolegend,1);

ans =
    15     1    

15 of the 100 random points fall on land.

See Also

| |

Introduced before R2006a

Was this topic helpful?