1背景
As the wireless communication technology is developing faster and faster, the Long Term Evolution networks are widely installed all over the word. Since the Long Term Evolution network is based on wide-band radio access technology, there is only one radio carrier available for most of the operator. Since the frequency resource is limited, many telecom operators use same frequency TD-LTE networks. In the same frequency TD-LTE networks, overlapping coverage seriously impact download speed. RF optimization is a conventional method of controlling overlapping coverage. However, the network optimization resources are always limited, we must evaluate the wireless network coverage and quality as a whole, and identify the problems in priority.
Drive test data is widely used to evaluate the wireless network coverage and quality. And we will future associate the Drive test data with the map. Traditionally, we use a desktop software MapInfo to analysis the Drive test data point with the street and road, which is a very heavy labor task. Recently, we find a new approach the PostGIS middleware, we could transfer the city maps into Raster data, we can we could future associate the Drive test data point with the city map raster data , just like we associate the Drive test data point with the polygon object.
在本文中,我们将介绍如何将地图点与Raster相关联。我的问题是如果在栅格对象中有超过10000 * 10000像素的函数st_worldtorastercoordx(rast,geom),我们如何才能提高速度。此问题与中间件PostGIS Raster对象相关联。
2 Creat Drive-test数据点对象
2.1创建点对象字段
在上一个对象中,我们使用kettle中间件将Drive-test数据文件上载到Postgres-SQL数据库中。在数据库中,目标表是atu_sample,现在我们将更新表以添加几何对象“point”。 这是命令:
alter table atu_sample add column geom geometry(point,4326)
2.2将值赋值给
在Drive-test数据文件中,我们有长度和纬度来表示空间位置,现在我们将它们转换为几何对象“点” 这是命令:
更新atu_sample set geom = st_geomfromtext(' POINT(' || longtitude ||'' || latitude ||')',4326);
3创建栅格数据
为了将点对象与栅格数据相关联,我们必须首先设置栅格数据。在本文中,我们将城市地图(矢量数据)转换为栅格数据。
3.1导入武汉城市边界多边形
3.1.1创建形状文件 在这个项目中,我们将武汉城市边界多边形导入PostGIS数据库,武汉市是中国湖北省的省会城市。它取决于MAPinfo格式传递函数,GUI条目可以在下图中看到: 从我们可以看到的图片中,目标文件的格式是ESRI Shape文件,这是PostGIS可以支持的默认格式。
3.1.2创建PG脚本 然后我们将把ESRI形状文件中的武汉城市地图转移到PostGIS脚本中。它取决于工具shp2pgsql,它是PostGIS的插件组件。 这是命令:
shp2pgsql -W“GBK”-s 4326 wh_region.shp> 123.txt 这里-s 4326表示坐标系参数,这对未来的空间对象很有价值。
3.1.3脚本执行 现在,我们将打开PGADMIN,并将脚本传输到PostGIS数据库,最后得到一个名为武汉的名称。当脚本执行时,我们在postGIS中有空间数据表。
3.2测量武汉边界的高度和宽度
3.2.1绘制武汉市的凸出部分 enter image description here 图2-4:武汉市的ConvexHull 在图2-4中,我们绘制了武汉城市的凸出部分,它将围绕武汉城市的边界。
3.2.2通过标尺测量高度和宽度使用标尺工具
在Mapinfo中,我们有一个名为Ruler的工具,可用于测量武汉市ConvexHull的高度和宽度。
enter image description here
图2-5测量高度和宽度
最后我们得到了数据:132.7KM和155.5KM。
3.3创建武汉栅格数据 在我们的项目中,我们将创建100 * 100米的像素。因此我们将首先计算参数来划分武汉市ConvexHull的高度和宽度。根据我们先前测量的数据,高度为132.7KM,宽度为155.5KM,因此我们可以计算出等分参数为1327和1555.
3.3.1创建栅格持久性表 现在我们将创建一个可以存储Raster数据的表。这是SQL命令: CREATE TABLE myrasters ( 摆脱整数NOT NULL, rast raster, CONSTRAINT myrasters_pkey PRIMARY KEY(摆脱) );
3.3.2插入RASTER记录 在前面的步骤中,我们使用表wh_region和qually divide参数的geomtry对象,我们可以使用函数ST_AsRaster创建栅格实例。 这是命令: 从wh_region插入myrasters SELECT gid,ST_AsRaster(geom,1327,1555,' 8BUI');
4关注Raster 4.1添加Drive测试点RASTER坐标数据字段 我们将找出点和Raster的关系,也就是说我们应该找出某个点所在的像素。为了记录这个关系,我们首先将两个数据字段x整数和y整数添加到表atu_sample 。 这是命令: alter table atu_sample add column x integer; alter table atu_sample add column y integer;
4.2光栅映射
使用函数st_worldtorastercoordx(rast,geom)和st_worldtorastercoordy(rast,geom),我们可以很容易地找出某个点所在的像素并获取像素坐标数据。然后我们将更新tabe 这是命令:
从myrasters更新atu_sample set x = st_worldtorastercoordx(rast,geom);
从myrasters更新atu_sample set y = st_worldtorastercoordy(rast,geom);
Geom:
4.3光栅映射的性能问题 在上面的例子中,我们有12000个点和1327 * 1555个栅格数据。完成任务需要160多秒。在未来的项目中,我们将有超过1200000点,我们如何解决性能问题?
答案 0 :(得分:0)
请参阅this article。您无需测量区域的尺寸即可将其转换为栅格。确保使用非常小的图块生成平铺光栅覆盖。
对于4:你不必计算你的点在栅格中的位置。使用坐标表中的ST_MakePoint()创建点,并确保它们位于正确的坐标系中。然后创建一个新表,其中的点投影到与栅格表相同的坐标系中,并使用ST_Transform()并索引此表。然后使用如下查询查询像素值:
SELECT ST_Value(rast, geom) val
FROM rastertable, geomtable
WHERE ST_Intersects(rast, geom)