主要内容

使用地形可视化视域范围和覆盖地图

地图显示视域范围和覆盖的地区利益使用卫星图像和地形数据。一个视域范围包括区域内的视线(LOS)的一组点,和一个覆盖地图包括区域范围内的接收功率的无线发射器。您可以使用一个视域范围的一阶近似覆盖率地图。

结合映射的映射功能工具箱™射频天线工具箱™传播功能,您可以创建轮廓线覆盖地图和使用等高线数据可视化和分析。这个例子向您展示了如何:

  • 查看图像和地形在二维地图上

  • 查看影像、地形和三维地形图的视域范围

  • 在二维视图覆盖率地图使用轮廓图和条形图

  • 确定是否在附近的点覆盖

  • 查看覆盖率地图感兴趣的其他地区

查看地图上二维图像

你可以把感兴趣的区域的图像绘制数据转换成地理坐标。地理轴使您在视频绘制二维数据,探索区域交互,并添加数据提示的兴趣点。

指定两个基站的地理坐标和高度在圣费尔南多谷地区。指定使用米以上地形的高度。

lat1 = 34.076389;lon1 = -118.468944;towerHeight1 = 17.1;text1 =“塔1”;lat2 = 34.386389;lon2 = -118.329778;towerHeight2 = 30.5;text2 =“塔2”;

显示基站的位置在一个卫星技术。

图技术=“卫星”;geobasemap(技术)geoplot ([lat1 lat2], [lon1 lon2),线型=“没有”标志=“o”MarkerSize = 10,MarkerEdgeColor =“k”MarkerFaceColor =“c”)

准备创建一个三维地形图为同一地区通过查询缩放级别,经度和纬度限制,限制的地理坐标。确保地形图覆盖同一地区,地理坐标的缩放级别更改为一个整数。

甘氨胆酸gx =;zoomLevel =地板(gx.ZoomLevel);gx。ZoomLevel = zoomLevel; [latlim,lonlim] = geolimits(gx);

自定义地图通过标签发射塔和添加一个标题。

txtDelta = 0.005;文本(lat1 + txtDelta lon1 + txtDelta text1,颜色=“w”)文本(lat2 + txtDelta lon2 + txtDelta text2,颜色=“w”)标题(“圣费尔南多山谷地区的卫星图像”)副标题(“与基站的位置”)

查看地图上二维地形

同一地区的地形可视化绘制高程数据导入到一个感兴趣的axesm的地图。axesm的地图让你使用地图投影显示地理数据。

读取地形高程数据

读感兴趣的地区地形高程数据从Web地图服务(WMS)服务器。WMS服务器提供地理空间数据,如海拔、温度和天气的基于web的来源。

在WMS数据库搜索地形高程数据由MathWorks®。的wmsfind函数返回搜索结果层对象。一个是一个数据集,其中包含一个特定类型的地理信息,在这种情况下高程数据。

层= wmsfind (“mathworks”SearchField =“serverurl”);层=提炼(层,“高度”);

层的高程数据读入工作区作为数组在地理坐标和空间参考对象。获得定量数据通过指定基本脉冲电平的图像格式。

(Z, RZ) = wmsread(层,Latlim = Latlim Lonlim = Lonlim ImageFormat =“图像/基本脉冲电平”);

准备策划的海拔数据转换数据类型

Z =双(Z);

找到塔海拔

计算每个单元的底部地形海拔塔。米的海拔是高于平均海平面。

height1 = geointerp (Z, RZ, lat1 lon1,“最近的”)
height1 = 177
height2 = geointerp (Z, RZ, lat2 lon2,“最近的”)
height2 = 1422

可视化高程和塔的位置

创建一个axesm为该地区的地图和一个适当的投影。然后,显示表面使用一个适当的colormap高程数据。注意,最高海拔的地区在东北角。

图usamap (Z, RZ) geoshow (Z, RZ, DisplayType =“texturemap”)demcmap (Z, 256) geoshow (lon1, lat1 DisplayType =“点”ZData = height1,MarkerEdgeColor =“k”MarkerFaceColor =“c”MarkerSize = 10,标记=“o”)geoshow (lat2 lon2 DisplayType =“点”ZData = height2,MarkerEdgeColor =“k”MarkerFaceColor =“c”MarkerSize = 10,标记=“o”)textm (lat1 + txtDelta lon1 + txtDelta text1) textm (lat2 + txtDelta lon2 + txtDelta text2)标题(“圣费尔南多山谷地区海拔”)cb = colorbar;cb.Label。字符串=“米海拔”;

查看影像、地形和三维地形图的视域范围

可视化图像、地形和视域范围为该地区通过绘制地形数据在标准轴技术的图像。图像技术使您能够提供地理环境对于地理轴不支持的图表类型,如三维表面。金宝app

阅读基础图图像

阅读基础图图像使用相同的技术,地理限制,和缩放级别的地理坐标。的readBasemapImage函数读取图像到工作区中作为一个数组,一个空间引用对象在Web墨卡托(WGS 84 / Pseudo-Mercator)坐标,和一个属性字符串。

(RA,鲜明)= readBasemapImage(基础图、latlim lonlim, zoomLevel);

显示手机发射塔位置技术的图像,你必须第一个项目Web墨卡托投影坐标的地理坐标。

项目= RA.ProjectedCRS;(x1, y1) = projfwd(项目,lat1 lon1);(x2, y2) = projfwd(项目、lat2 lon2);

情节在基础图图像投影坐标。请注意,这类似于可视化地理轴可视化。

图轴持有mapshow (RA)图(x1, x2), (y1 y2),线型=“没有”标志=“o”MarkerSize = 10,MarkerEdgeColor =“k”MarkerFaceColor =“c”)txtDeltaXY = 500;文本(x1 + txtDeltaXY, y1 + txtDeltaXY text1,颜色=“w”)文本(x2 + txtDeltaXY, y2 + txtDeltaXY text2,颜色=“w”)标题(“圣费尔南多谷地区的卫星技术图像”)副标题(归因:“+鲜明)

计算视域范围从塔

再次读取地形数据,这次使用数组维度和维度匹配的地理限制和限制的技术形象。

[latlim, lonlim] = projinv(项目、RA.XWorldLimits RA.YWorldLimits);szA = RA.RasterSize;(Z, RZ) = wmsread(层,Latlim = Latlim Lonlim = Lonlim,ImageHeight = szA (1) ImageWidth = szA (2), ImageFormat =“图像/基本脉冲电平”);Z =双(Z);

计算每个塔的视域范围指定地形数据和发射塔坐标。返回第一个参数视域范围调用显示可见的区域使用1值和模糊区域使用0值。

[vis1, visR1] =视域范围(Z, RZ, lat1、lon1 towerHeight1);[vis2, visR2] =视域范围(Z, RZ, lat2、lon2 towerHeight2);

塔的计算结合视域范围。为了避免策划模糊区域,取代0值和值。

visCombined = vis1 | vis2;vis = visCombined;vis =双(vis);vis (vis = = 0) =南;visR = visR2;

提取的地理坐标高程数据从其空间引用对象。然后,项目Web墨卡托投影坐标的坐标。

[莱兹,lonz] = geographicGrid (RZ);[xz, yz] = projfwd(项目、莱兹lonz);

把个人和视域范围相结合

显示每个塔的视域范围和合并后的视域范围为塔瓦布局。

定义一个colormap视域范围。使用蓝绿色的可见区域和黑色的模糊区域。

cmapt = (0 0 0);covcolor = (0.1034 0.8960 0.7150);cmapt (2::) = covcolor;

创建一个平铺的布局。显示个人的视域范围塔在左边。

图这一([0 1])colormap cmapt tiledlayout(2、3、填充=“紧”TileSpacing =“紧”)nexttile geoshow (vis1 visR1 EdgeColor =“没有”DisplayType =“表面”)轴标题(“视域范围”)副标题(“塔1”)nexttile (4) geoshow (vis2, visR2 EdgeColor =“没有”DisplayType =“表面”)轴标题(“视域范围”)副标题(“塔2”)

显示技术的图像和合并后的视域范围在右边。指定z坐标的标签使用地形高度(平均海平面以上)和塔高度地形(上图)。

nexttile ([2]) mapshow (RA),mapshow (yz, xz vis EdgeColor =“没有”DisplayType =“表面”)轴zdelta = 150;z1 = height1 + towerHeight1 + zdelta;z2 = height2 + towerHeight2 + zdelta;文本(x1, y1, z1、text1颜色=“k”EdgeColor =“k”写成BackgroundColor =“w”)文本(x2, y2、z2 text2,颜色=“k”EdgeColor =“k”写成BackgroundColor =“w”)标题(“综合视域范围技术形象”)副标题(归因:“+鲜明)

视图技术图像和三维地形图的视域范围

合并后的视域范围准备策划。

  • 在合并后的视域范围找到可见区域的指标。

  • 取代的可见区域结合视域范围的地形数据(相应的值Z)。

(行,坳)=找到(visCombined);深圳=大小(visCombined);印第安纳州= sub2ind(深圳、行坳);vis(印第安纳州)= Z(印第安纳州);

创建一个新的图,使用相同的colormap平铺的布局。删除轴线,使情节延长轴的边缘。

图colormap (covcolor)

可视化技术形象,视域范围,并使用表面地形。

  • 显示的地形高程数据覆盖技术的图像。指定使用地形的z坐标数据,并指定使用图像数据表面的颜色。

  • 显示合并后的视域范围。

  • 定制情节通过添加文本标签和标题。

  • 在3 d查看情节。调整数据纵横比这海拔规模堪比xy剂量。

mapshow (xz, yz, Z, DisplayType =“表面”CData = A) mapshow (yz, xz vis EdgeColor =“没有”DisplayType =“表面”z1)文本(x1, y1, text1,颜色=“k”EdgeColor =“k”写成BackgroundColor =“w”)文本(x2, y2、z2 text2,颜色=“k”EdgeColor =“k”写成BackgroundColor =“w”)标题(“卫星技术图像与地形和视域范围”)副标题(归因:“+鲜明)daspect([1 1 0.25])视图(3)

可视化覆盖在二维地图

视域范围与无线覆盖地图只包括视距(LOS)传播。您可以创建更详细的地图和报道利用发射机天线接收功率计算网站和传播模型。

计算覆盖率地图

创建一个为每个发射塔发射机的网站。然后,计算覆盖率地图并返回结果propagationData对象。默认情况下,报道函数使用一个Longley-Rice传播模型和包含在地形衍射。

txTower1 = txsite (Name = text1 = lat1纬度,经度= lon1);txTower2 = txsite (Name = text2 = lat2纬度,经度= lon2);txsites = [txTower1;txTower2];pd =覆盖率(txsites);

提取纬度和经度值、功率值和功率水平的propagationData通过使用对象propagationDataGridhelper函数。发现四边形的极限范围覆盖映射。

dataVariableName =“权力”;maxrange = (30000 - 30000);(背阔肌,经度、数据的水平)= propagationDataGrid (pd, dataVariableName, maxrange txsites);[covlatlim, covlonlim] = geoquadline(背阔肌,经度);

定义一个colormap使用功率。创建一个新的图使用功率colormap。

提出=涡轮(长度(水平));climLevels = [min(水平)马克斯(水平)+ 10);图colormap城市规划机构(cmap)爬(climLevels)

创建一个axesm为该地区的地图和一个适当的投影。报道显示地图,一个矩形代表圣费尔南多谷地区,和发射机网站地图。注意,覆盖映射超出圣费尔南多谷地区。

usamap (covlatlim covlonlim) geoshow(背阔肌、经度、数据,DisplayType =“表面”)geoshow (latlim ([1 2 2 1 1]), lonlim([1, 1、2、2、1]),颜色=“k”)textm (lat1 lon1 text1,颜色=“k”字形大小= 12)textm (lat2、lon2 text2,颜色=“k”字形大小= 12)标题(“与基础图图像的边界覆盖地图”)cb = colorbar;cb.Label。字符串=“权力(dBm)”;cb。Ticks = levels;

视图轮廓线覆盖地图技术形象

项目覆盖的地理坐标映射到Web墨卡托投影坐标。

[残雪,cy] = projfwd(项目、背阔肌、经度);

创建一个图,使用功率colormap。

图colormap城市规划机构(cmap)爬(climLevels)轴持有

轮廓覆盖率地图,指定轮廓水平的能力水平,在基础图图像显示结果。改变地图的限制与圣费尔南多谷地区。

mapshow (RA) contourf (cx, cy、数据LevelList =水平)xlim (RA.XWorldLimits) ylim (RA.YWorldLimits)文本(x1, y1, text1颜色=“w”)文本(x2, y2、text2颜色=“w”)标题(“波状外形的覆盖率地图技术形象”)副标题(归因:“+鲜明)cb = colorbar;cb.Label。字符串=“权力(dBm)”;cb。Ticks = levels;

视图轮廓覆盖率地图和视域范围技术形象

项目地理坐标的视域范围结合Web墨卡托投影坐标。

[vlat, vlon] = geographicGrid (visR);(vx, v) = projfwd(项目、vlat vlon);

显示覆盖地图和基础图图像利用等高线视域范围。您可以创建一个地图通过叠加两个轴有两个彩色的对象。

使用第一个坐标轴显示技术形象,覆盖率地图,colorbar覆盖率地图。

图ax₁=轴;持有(ax₁“上”)轴(ax₁,“关闭”)这一(ax₁, climLevels) colormap (ax₁,提出)mapshow (ax₁, RA) contourf (ax₁,残雪,cy、数据LevelList =水平);xlim (ax₁, RA.XWorldLimits) ylim (ax₁, RA.YWorldLimits)标题(ax₁,“波状外形的覆盖图和基础图图像视域范围”)副标题(ax₁,归因:“+鲜明)cb1 = colorbar (ax₁);cb1.Label。字符串=“权力(dBm)”;cb1。Ticks = levels;

使用第二轴显示的视域范围和colorbar视域范围。

ax2 =轴(可见=“关闭”);持有(ax2,“上”)colormap (ax2 covcolor) [~, visContourMap] = contourf (ax2, vx、v、vis LevelList = 0.5:1:1.5);cb2 = colorbar (ax2);cb2.Label。字符串=“视域范围”;cb2。Ticks = [];

重新定位轴对象和彩色的。

ax₁。位置= [ax1.Position (1) ax1.Position ax1.Position -0.04 (2) (3) ax1.Position (4)];ax2。位置= ax1.Position;cb1。位置= [cb1.Position (1) cb1.Position (2) cb1.Position (3) cb1.Position (4) * 0.8);cb2。位置= [cb2.Position cb2.Position 0.76 (1) (3) 0.1);

除了洛分析,覆盖在地形地图包含了衍射。因此,覆盖映射超出视域范围。

调整透明度的视域范围。当你减少的价值faceAlpha,视域范围变得更加透明,你可以看到下面的覆盖图。

faceAlpha =0.3;visContourMap。FaceAlpha = FaceAlpha;

视图轮廓线覆盖地图地理轴

显示的覆盖率地图在地理轴,轮廓覆盖率地图使用contourDataGridhelper函数。返回地理空间表的每一行对应一个功率级,包括轮廓形状、轮廓形状的面积平方公里,水平的最小功率,功率范围的水平。每个轮廓形状的区域价值包括区域覆盖其他轮廓形状。

GT = contourDataGrid(背阔肌,经度、数据水平);disp (GT)
形状面积(平方公里)的权力(dBm)功率范围(dBm) _______其_________________ geopolyshape 2.5889 e + 06 -120 -120 -110 geopolyshape 2.314 e + 06 -110 -110 -100 geopolyshape 2.1344 e + 06 -100 -100 -90 geopolyshape 1.7129 e + 06 -90 -90 -80 geopolyshape 3.0979 e + 05年-80 -80 -70 geopolyshape geopolyshape 13563 -70 -70 -60 -50 -50 -40 1894.9 -60 -60 -50 geopolyshape 676.29

情节的波状外形的覆盖图和一个矩形代表圣费尔南多谷地区地理轴。

图geobasemap卫星colormap城市规划机构(cmap)爬(climLevels)惠普= geoplot (GT, ColorVariable =“权力(dBm)”EdgeColor =“k”FaceAlpha = 1);边界= geoplot (latlim ([1 2 2 1 1]), lonlim([1, 1、2、2、1]),颜色=“k”、线宽= 2);文本(lon1, lat1 text1颜色=“w”)文本(lat2 lon2 text2,颜色=“w”)标题(“波状外形的覆盖图和基础图图像边界”)cb = colorbar;cb.Label。字符串=“权力(dBm)”;cb。Ticks = levels;

地图缩放到圣费尔南多山谷地区和删除的边界。

geolimits (latlim lonlim)删除(边界)标题(“波状外形的覆盖率地图边界的基础图形象”)

调整透明度的覆盖率地图。当你减少的价值faceAlpha,覆盖地图变得更加透明,你可以看到下面的技术。

faceAlpha =0.3;惠普。FaceAlpha = FaceAlpha;

查看覆盖范围的条形图

创建一个条形图显示每个功率覆盖面积平方公里。随着功率的增加,覆盖面积减少。

图colormap城市规划机构(cmap)爬(climLevels)酒吧(GT。“权力(dBm)”),GT。”“面积(平方公里)),FaceColor =“平”CData =提出);ylabel (“平方公里区域”)包含(“权力(dBm)”)cb = colorbar;cb.Label。字符串=“权力(dBm)”;cb。Ticks = levels;

判断点是否在报道

判断点在圣费尔南多谷地区内覆盖。

计算覆盖点的位置

指定发射塔附近的两个点的位置。判断点是否在使用报道incoveragehelper函数。结果表明在覆盖和第一点是第二点不覆盖。

locationLats = (34.2107 - 34.1493);locationLons = (-118.4545 - -118.1744);[tf, powerLevels] = incoverage (locationLats locationLons, GT);disp (tf)
1 0

显示力量的水平。结果表明,第二点不覆盖。

disp (powerLevels)
-90负

显示的点覆盖使用青色标记,并不是在报道使用黑色的标记。

图geobasemap地形持有geotickformatddgeolimits (latlim lonlim) geoplot (locationLats (tf) locationLons (tf),“o”,MarkerEdgeColor =“c”MarkerFaceColor =“c”MarkerSize = 10) geoplot (locationLats (~ tf) locationLons (~ tf),“o”,MarkerEdgeColor =“k”MarkerFaceColor =“k”MarkerSize = 10)

交互式地选择分和计算覆盖点的位置

选择分,确定他们在报道。

建立一个使用功率colormap地图。然后,画出轮廓线覆盖地图。

图geobasemap地形geotickformat geolimits (latlim lonlim)dd持有colormap城市规划机构(cmap)爬(climLevels) contourPlot = geoplot (GT, ColorVariable =“权力(dBm)”EdgeColor =“k”FaceAlpha = 1);cb = colorbar;cb.Label。字符串=“权力(dBm)”;cb。Ticks = levels(1:end);

选择的点。通过指定使用预定义的点interactivelySelectPoints作为。或者,您可以交互式地选择通过指定点interactivelySelectPoints作为真正的。指定点的数量交互式地选择通过指定一个值numberOfPoints

interactivelySelectPoints =;如果interactivelySelectPoints numberOfPoints =4;% #好< * UNRCH >标题(“选择”字符串(numberOfPoints) + +“点”)分= ginput (numberOfPoints);其他的分= [34.0732 -118.4652 34.1880 -118.2000 34.2200 - -118.6172 34.3849 - -118.5472);结束

确定每一个点是否在报道。如果点不是在报道,显示它在地图上的黑色。如果点在报道,显示它在地图上使用的颜色与它的力量水平。

k = 1:尺寸(分,1)latpoint =分(k, 1);lonpoint =分(k, 2);[tf, powerLevel] = incoverage (latpoint lonpoint, GT);如果~ tf颜色= (0 0 0);其他的指数= GT。“权力(dBm)”)= = powerLevel;颜色=提出(索引、::);结束h = geoplot (latpoint lonpoint,“o”MarkerEdgeColor =颜色,MarkerFaceColor =颜色,MarkerSize = 10);dt = datatip (h);dtrow = dataTipTextRow (“权力”,powerLevel);h.DataTipTemplate.DataTipRows结束(+ 1)= dtrow;结束标题(“选定点”)

设置切换的等高线图showContourPlot。每一个点的颜色表明其功率级。

showContourPlot =;contourPlot。可见= showContourPlot;

为其他地区创建地理覆盖地图

geocoveragehelper函数计算或显示指定发射机覆盖地图网站。当你指定一个输出参数,函数返回一个地理空间表。

T = geocoverage (txsites);disp (T)
形状面积(平方公里)的权力(dBm)功率范围(dBm) _______其_________________ geopolyshape 2.5889 e + 06 -120 -120 -110 geopolyshape 2.314 e + 06 -110 -110 -100 geopolyshape 2.1344 e + 06 -100 -100 -90 geopolyshape 1.7129 e + 06 -90 -90 -80 geopolyshape 3.0979 e + 05年-80 -80 -70 geopolyshape geopolyshape 13563 -70 -70 -60 -50 -50 -40 1894.9 -60 -60 -50 geopolyshape 676.29

当你忽略输出参数,函数轮廓覆盖映射技术和显示结果。

基础图=“地形”;geocoverage (txsites(1)、基础图)

您可以使用geocoveragehelper函数创建覆盖率地图为其他位置。例如,创建一个覆盖基站在波士顿附近的地图。的geocoverage函数计算覆盖率数据从发射机网站30公里。

名称= [“克拉伦登圣”,“剑桥圣”,“奥尔巴尼圣”];bostonLat = (42.348722 42.361222 42.338444);bostonLon = (-71.075889 -71.069778 -71.065611);bostonH = 30 23 [260];频率= (852.637 e6 862.012 e6 862.012 e6);tx = txsite (Name =, = bostonLat纬度,经度= bostonLon,AntennaHeight = bostonH TransmitterFrequency =频率);geocoverage (tx,基础图)

细胞塔很近。看来塔周围的地区立即覆盖地图放大。

甘氨胆酸gx =;gx。ZoomLevel = 12;

辅助函数

propagationDataGridhelper函数提取纬度和经度值clats克隆,功率值cdata和功率水平从传播数据对象pd数据变量dataVariableName使用发射机网站txsites从发射机和最大射程米网站maxrange。内的功能:

  • 创建定期间隔的网格的纬度和经度值传播数据对象。

  • 确定哪些纬度和经度值范围内发射机的网站。

  • 创建一个网格插值的功率值传播数据。只插入值范围内发射机的网站。

  • 确定功率通过离散化数据网格。

函数cdata [clats,克隆,水平)= propagationDataGrid (pd、dataVariableName maxrange, txsites)%从propagationData对象提取传播数据网格%创建网格的纬度和经度值图象尺寸= (512 - 512);背阔肌= pd.Data.Latitude;朗= pd.Data.Longitude;data = pd.Data。(dataVariableName);[lonmax铂金生产商lonmin] =边界(朗);[latmin, latmax] =边界(背阔肌);lonsv = linspace (lonmax铂金生产商lonmin图象尺寸(2));latsv = linspace (latmin latmax,图象尺寸(1));[克隆,clats] = meshgrid (lonsv latsv);%确定哪些纬度和经度值的范围内%发射器txlat = [txsites.Latitude] ';txlon = [txsites.Longitude] ';numTx =大小(txlat, 1);gc =南(元素个数(克隆),numTx);txInd = 1: numTx gc (:, txInd) =距离(txlat (txInd) txlon (txInd) clats(:),无性繁殖(:),wgs84Ellipsoid);结束任何(gc isInRange = < = maxrange 2);%创建网格的值cdata =南(图象尺寸);cdata (isInRange) =插值函数(pd clats (isInRange),无性繁殖(isInRange),DataVariableName = DataVariableName);%确定功率[bmin, bmax] =边界(数据);水平= max (bmin, -120): 10: bmax;datalevels =排序(水平);maxBin = max (max (datalevels(:)),马克斯(cdata (:))) + 1;%马克斯本边缘需要包括所有的值垃圾箱= [datalevels (:);maxBin];cdata =离散化(cdata,垃圾箱,datalevels);结束

contourDataGridhelper函数轮廓使用创建的数据网格propagationDataGrid辅助函数作为地理空间表并返回结果。表的每一行对应一个功率级,包括轮廓形状、轮廓形状的面积平方公里,水平的最小功率,功率范围的水平。内的功能:

  • 确保函数轮廓功率值低于最低功率通过替换电网中的值大的负数。

  • 计算准确地区突出的纬度和经度坐标等积使用一个投影,在这种情况下,北美Albers圆锥投影面积相等。

  • 使用轮廓投影坐标contourf函数。指定轮廓水平的力量水平。的contourf函数返回一个矩阵,其中包含,每个功率等值线的坐标。

  • 准备分析数据为每个轮廓线通过初始化几个变量。

  • 计算区域内每个轮廓线。删除区域对应孔和忽视消极的地区。Unproject坐标。

  • 创建轮廓形状的非预料的坐标。包括轮廓形状,领域,功率在一个地理空间表中。

  • 浓缩的地理空间表到一个新的地理空间表一行/功率。每一行包含一个轮廓形状相结合(包括所有轮廓形状的功率),合并后的轮廓形状的面积,最小的功率水平,水平的功率范围。

  • 清理地理空间表。转换每个形状的面积平方公里,确保小轮廓出现在顶部的大轮廓排序的行,和重命名表变量。

函数GT = contourDataGrid (latd lond、数据水平)%从propagationDataGrid helper函数创建的轮廓数据网格%在电网NaN值替换为负数数据(isnan(数据))= min(水平)- 1000;%项目使用等积的坐标项目= projcrs (102008“权威”,“独立”);[xd,码]= projfwd(项目、latd lond);%轮廓投影数据无花果=图(“可见”,“关闭”);obj = onCleanup(@()关闭(图);c = contourf (xd、码、数据LevelList =水平);%初始化变量:x = c (1);:y = c (2);n =长度(y);k = 1;指数= 1;水平= 0 (n, 1);latc =细胞(n, 1);lonc =细胞(n, 1);面积= 0 (n, 1);%计算区域内每个轮廓线。删除区域%对应孔和忽视消极的地区。k < n级= x (k);numVertices = y (k);yk = y (k + 1: k + numVertices);xk = x (k + 1: k + numVertices);k = k + numVertices + 1;(首先,去年)= findNanDelimitedParts (xk);jindex = 0;司法院= {};jx = {};sumpart = 0;j = 1:元素个数(第一个)%处理j k水平的一部分s =第一(j);e =去年(j);残雪= xk (s: e);cy = yk (s: e);如果残雪(结束)~ = cx (1) & & cy(结束)~ = cy (1) cy(结束+ 1)= cy (1);% #好< * AGROW >残雪(结束+ 1)=残雪(1);结束如果j = = 1 & & ~ ispolycw (cx, cy)%的第一个区域必须是顺时针方向[残雪,cy] = poly2cw (cx, cy);结束jindex = jindex + 1;司法院{jindex 1} = cy (:)”;jx {jindex 1} =残雪(:)”;一个= polyarea (cx, cy);如果cy ~ ispolycw (cx)%删除对应孔的区域一个= -;结束sumpart = sumpart +一个;结束%添加一个部分时它的面积大于0。Unproject的%的坐标。(jx,客户至上]= polyjoin (jx,司法院);如果长度(司法院)> 2 & & (jx) > 2 & & sumpart > 0 [jlat jlon] = projinv(项目、jx司法院);latc{指数1}= jlat (:)”;lonc{指数1}= jlon (:)”;水平(指数(1)=水平;面积(指数(1)= sumpart;指数=指数+ 1;结束结束%创建轮廓形状的非预料的坐标。包括%轮廓形状,领域,功率在一个地理空间%表。latc = latc(1:索引1);lonc = lonc(1:索引1);形状= geopolyshape (latc lonc);面积=(1:索引1);水平=(1:索引1);水平=水平;allPartsGT =表(形状、面积、水平);%凝结的地理空间表到一个新的地理空间表%行/功率。GT = table.empty;水平=独特(allPartsGT.Levels);k = 1:长度(水平)gtLevel = allPartsGT (allPartsGT。= = (k)水平,水平:);tLevel = geotable2table (gtLevel, (“人肉搜索”,“经”]);(经度、纬度)= polyjoin (tLevel.Longitude tLevel.Latitude);形状= geopolyshape(纬度、经度);水平= (k)水平;面积= (gtLevel.Area)之和;GT(+ 1,:) =表(形状、面积、水平);结束maxLevelDiff = max (abs (diff (GT.Levels)));LevelRange = [GT。水平GT.Levels + maxLevelDiff];GT.LevelRange = LevelRange;%清理地理空间表GT.Area = GT.Area / 1000;GT = sortrows (GT,“区域”,“下”);GT.Properties。VariableNames =(“形状”,”“面积(平方公里),“权力(dBm)”,“权力范围(dBm)”];结束

incoveragehelper函数决定的点与纬度值纬度和经度值在覆盖映射定义的地理空间表吗T。内的功能:

  • 确定范围内的点是地图和返回结果。的元素1(真正的当相应的点覆盖范围内。

  • 确定点的功率和返回结果powerLevels。的值表示对应点不是在报道。

函数[,powerLevels] = incoverage(纬度,经度,T)%查询点覆盖%确定点在报道tf = false(长度(T.Shape), (lat));k = 1:长度(T.Shape)特遣部队(k,:) = isinterior (T.Shape (k), geopointshape(纬度、经度));结束%确定点的功率在= false(长度(lat), 1);powerLevels =无穷(长度(lat), 1);k = 1:长度()v =特遣部队(:,k);(k) = (v);如果在(k) powerLevels (k) = max (T {v,“权力(dBm)”});结束结束结束

geocoveragehelper函数计算或显示发射机的覆盖率地图网站txsites。内的功能:

  • 计算覆盖率地图使用报道函数。然后,轮廓覆盖率地图使用progagationDataGridcontourDataGrid辅助功能。

  • 当你不指定一个输出参数,函数显示了地理上的波状外形的覆盖图轴使用技术基础图

  • 当你指定一个输出参数,函数返回结果作为地理空间表。

函数varargout = geocoverage (txsites基础图)%显示或计算波状外形的覆盖率地图%计算和轮廓覆盖映射pd =覆盖率(txsites);dataVariableName =“权力”;maxrange = 30000 * 1(1、长度(txsites));(背阔肌,经度、数据的水平)= propagationDataGrid (pd, dataVariableName, maxrange txsites);GT = contourDataGrid(背阔肌,经度、数据水平);%如果不指定一个输出参数,显示覆盖地图如果nargout = = 0如果输入参数个数< 2基础图=“卫星”;结束提出=涡轮(长度(水平));图geobasemap geoplot (GT, ColorVariable =(技术)“权力(dBm)”EdgeColor =“k”,FaceAlpha = 0.5) colormap这一城市规划机构(cmap) ([min(水平)max(水平)+ 10])h = colorbar;h.Label。字符串=“权力(dBm)”;h。Ticks = levels;k = 1:长度(txsites) latt = txsites (k) .Latitude;lont = txsites (k) .Longitude;文本(奈、lont txsites (k) . name,颜色=“w”)结束标题(“覆盖等值线图”)%如果指定一个输出参数时,返回一个地理空间表其他的varargout {1} = GT;结束结束

findNanDelimitedPartshelper函数发现的第一个和最后一个元素的索引分离数组的一部分x。的contourDataGrid辅助函数使用findNanDelimitedParts

函数(首先,去年)= findNanDelimitedParts (x)%找到指数每个部分的第一个和最后一个元素的x。% x可以包含运行多个nan, x可以开始或结束%一个或多个nan。n = isnan (x (:));firstOrPrecededByNaN =[真实;n (1: end-1)];第一次=找到(n ~ & firstOrPrecededByNaN);lastOrFollowedByNaN = [n(2:结束);真正的);去年=找到(n ~ & lastOrFollowedByNaN);结束

另请参阅

功能

对象

相关的话题