near2文档
near2发现最近的点在网格的下标索引到指定的位置。
内容
语法
(行,坳)= near2 (X, Y, xi,易建联)[行,坳]= near2 (X, Y, xi,咦,面具)(行,坳,dst) = near2 (…)
描述
(行,坳)= near2 (X, Y, xi,易)返回相对应的行和列X, Y网格点的最短欧氏距离的点xi,易如果习或易两个之间的距离相等X或Y的网格点,只有前两个同样有效的行或列返回。
(行,坳)= near2 (X, Y, xi,咦,面具)忽略了X, Y网格点对应错误面具值。此选项可能有用数据边界附近,最近的数据网格的对应点南时间序列中的数据。
(行,坳,dst) = near2 (…)还返回欧几里得距离dst从点(X(行,上校),Y(行,上校))点(xi,易)。
示例1
考虑这个网格X和Y的值,和一个特殊的位置xi,易用一个红色的x,我们会标记:
(X, Y) = meshgrid (50:5:300,480:5:675);ξ= 103.2;易= 517;情节(X, Y,“。”,“颜色”rgb (“淡蓝色”)举行在情节(xi,咦,“处方”)轴平等的紧包含“x值”ylabel“y值”
使用near2确定的下标索引X, Y网格点接近xi,易和马克,网格点蓝圈:
(行,坳)= near2 (X, Y, xi,易);情节(X(行,上校),Y(行,上校),“波”)
如果你还想知道距离(xi,易)(X(行,上校),Y(行,上校)),请求第三个函数的输出:
(行,坳,dst) = near2 (X, Y, xi,易);dst
dst = 2.6907
…和we see that our point of interest is about 2.69 units away.
示例2:气候数据的应用程序
假设你想要一个附近的海面温度时间序列檀香山,夏威夷(21.3 N, 157.8 W)。你可以这样做geomask和当地的或者你可以使用near2找到的行和列海温接近火奴鲁鲁网格单元。的现状是:
负载pacific_sst(经度、纬度)= meshgrid(经度、纬度);图imagescn(经度,纬度,意味着(sst, 3)) cmocean热持有在图(-157.8,21.3,“波”)
对海温接近火奴鲁鲁网格单元可以找到像这样:
(行,坳)= near2(纬度,经度,21.3,-157.8)
行= 20坳= 12
与行和上校的地理坐标网格单元给出的
(纬度(行)上校经度(行,上校)]
ans = 21.5000 - -157.5000
对海温在网格点时间序列的行,然后上校容易阴谋。唯一的方法是你需要使用挤压命令来挤压802 x1 x1x802时间序列为一个数组的情节函数会理解它:
sst_honolulu =挤压(sst(行,坳,:));图(22)%给这个数字很多所以我们可以稍后再回来。情节(t, sst_honolulu)轴紧datetick (“x”,“keeplimits”)包含“日期”ylabel“海洋表面温度\ circC”标题火奴鲁鲁附近风场的
示例3:掩蔽nan
有时候兴趣坐在靠近边界的位置,这样你得到的时间序列感兴趣的网格单元接近你的位置,但你得到的全是nan的回报。例如,你可能感兴趣的海洋表面温度接近一个城市,但因为大多数城市都在陆地上,和大多数海洋表面温度在海上被发现,有一个好机会,太平洋的时间序列最接近你的最喜欢的城市就是一堆nan。
墨西哥恩塞纳达港附近例如,考虑这一点:
图(33)%给这个数字很多所以我们可以稍后再回来。imagescn(经度,纬度,意味着(sst, 3)) cmocean热持有在边界(“国家”,“颜色”rgb (“灰色”31岁的)阴谋(-116“记者”31岁的)文本(-116“恩塞纳达港”,“颜色”,“r”,…“水平的”,“中心”,“绿色”,“高级”轴([55 -133 -94 10])%得到最近的网格索引和标签:(行,坳)= near2(纬度,经度,31岁,-116);情节(经度(行,上校),Lat(行,上校),“废话”)文本(经度(行,上校),Lat(行,上校),“最近的网格单元”,…“颜色”,“b”,“绿色”,“中间”)
果然,所有的海温资料接近恩塞纳达港nan:网格单元
% 1 d Enenada附近太平洋时间序列:sst_ensenada =挤压(sst(行,坳,:));%多少Enesnada太平洋是有限的?sum (isfinite (sst_ensenada))
ans = 0
找到最接近的SST网格单元的数据在哪里不nan,首先定义一个面具的好网格细胞,像这样:
%确定哪些网格细胞有有限的数据:掩码=所有(isfinite (sst), 3);图imagescn(经度、纬度、面具)标题“这是面具”
面具上面好(真正的)网格细胞黄色,用蓝色和坏的(假)网格细胞。我们现在可以进入面具成near2找到,好网格细胞接近恩塞纳达港:
(行,坳)= near2(纬度,经度,31岁,-116年,面具);图(33)%的地图情节(经度(行,上校),Lat(行,上校),“ks”)文本(经度(行,上校),Lat(行,上校),“最近的有限网格单元”,…“水平的”,“对”,“绿色”,“中间”)
有限的时间序列太平洋靠近恩塞纳达港现在可以檀香山太平洋相比是这样的:
sst_ensenada =挤压(sst(行,坳,:));图(22)%回到夏威夷图持有在情节(t, sst_ensenada)传说(“Honolu”,“恩塞纳达港”)标题“风场比较”
地理坐标网格的顺序
通常是相当重要的分别跟踪纬度,也构成经度。一些网格构建
(纬度、经度)= meshgrid(纬度、经度);
而其他网格构建
(经度、纬度)= meshgrid(经度、纬度);
并绘制坐标
情节(经度、纬度)
不会产生相同的结果吗
情节(纬度、经度)
相比之下,near2总是会产生相同结果你是否认为经度x或y值。两个以下语法,会产生正确的行和列的海温接近火奴鲁鲁网格单元:
(行,坳)= near2(纬度,经度,21.3,-157.8)[行,坳]= near2(经度、纬度、-157.8、21.3)
行= 20坳= 12行= 20坳= 12
唯一的警告是,地理坐标网格,您可能不希望使用可选的第三个输出dst。这是因为度经度和纬度的欧几里得距离没有任何意义,鉴于度经度纬度并不代表相同的距离度。
作者信息
这个函数的一部分气候数据为Matlab工具箱。的功能和支持文档是乍得a·格林写的金宝app德州大学奥斯丁分校。