首页 新闻中心 技术博客

图片配准并制作专题图

发布时间:2021-12-22 23:46:08   浏览量:2640   作者:GIS前沿

现有一批采集完毕的数据,其中矢量数据存在以下问题需要解决:1)某些图层中要素的几何信息存在错误,需要用标准检查方法进行数据检查;2)数据陈旧,需要进行更新。请根据以下要求对数据进行整理与更新:

一、数据说明

1、block:已有宗地地块数据的边界线数据;

2、building:已有宗地建筑物的二维矢量面数据;

3、local:该区域的绿化用地数据;

4、parcelnew.tif:最新的宗地地块图文件;

5、route.jpg:道路分布图;

6、道路等级表.xls:道路类型与等级的对应说明;

7、tree.csv:所有树木的空间位置点坐标文件;

8、type.xls:宗地地块类型说明文件;

9、example.jpg:图例符号参考文件;

文末有练习数据下载链接

二、要求

5、编辑现有building(面要素)数据,要求各要素均位于新的parcelnew(面要素)内部,将超出部分另存为新图层error;

6、参考已有图层数据,对道路图片文件route.jpg进行配准;参考example.jpg中道路类型图例以及“道路等级表.xls”文件,对道路进行数字化采集,存储为road图层,并在属性表中记录道路的名称、类型和等级;

7、根据tree.csv文件中记录的坐标点数据,创建树木点要素类tree,坐标系与block相同;

8、检查tree要素是否位于类型为open grass的绿化用地范围内,超出部分删除,将符合要求的树木图层存储为tree2;

9、根据example.jpg中的符号类型,创建新符号库;

10、图层符号化:tree图层按照树木类型和等级值设置相应的符号与大小;road图层按照等级设置道路符号;parcelnew图层按照类型设置任意的符号;

11、制作专题图:要求具有图名、比例尺、图例、指北针等要素,图层包括:tree2,road,local,building,parcel,parcelnew;并与要求4中的柱状图一并进行排版出图。

三、解答过程

5、编辑现有building(面要素)数据,要求各要素均位于新的parcelnew(面要素)内部,将超出部分另存为新图层error;

我们使用【分析工具】|【叠加分析】|【擦除】,输入要输为“building”,擦除要素为“parcelnew”,输出结果设置为“error”,如下图所示:
图片

6.参考已有图层数据,对道路图片文件route.jpg进行配准;参考example.jpg中道路类型图例以及“道路等级表.xls”文件,对道路进行数字化采集,存储为road图层,并在属性表中记录道路的名称、类型和等级;

我们将“route.jpg”图层和“parcelnew.tif”加载进来,可以发现它们两个根本不在一块,点击全图按钮图片发现是全部空白的,这时候就可以知道后面的配准过程那是相当的曲折,不想那些位置偏差只在同一个界面范围内的图层直接控制点连起来就行了,像这种不在同一个界面的图层进行配准需要不断的使用“缩放至图层”,较为麻烦。我们依旧右键菜单栏空白处加载“地理配准”工具条,选择操作对象为“route.jpg”,我们在【地理配准】下面的选项卡中将“自动校正”前面的勾去了,这样就不会构建了一个连接点就进行了空间位置的变换,导致后续的点较难选择(为什么会较难选择,因为创建一个连接点后进行配准两个图层会重叠在一起,不易于接下来的控制点选择)。
图片

这时候我们点击“添加控制点”按钮图片图片选择空间位置特征明显的控制点,至少3

个,地理配准如下图所示:
查看其链接表可以看到控制点设置的精度还是比较高的哈。


接下来要对道路进行数据采集工作了,我们首先在目录中新建一个新的线要素图层“road”,然后对该图层进行编辑,点击创建要素按钮
后开始进行矢量化。

最终成果如下图所示:


我们打开“road”图层的属性表,新建3个字段,名称(文本类型)、类型(文本类型)和等级(短整型),如下图所示:


接下来对字段进行赋值,由于等级字段和类型字段一一对应,为此我们可以考虑先对等级字段进行赋值,然后根据等级对类型进行赋值。

def a(a):

if(a==1):

return "Hwy"

if(a==2):

 return "Dr"

if(a==3):

 return "Blvd"

if(a==4):

 return "Ave"

if(a==5):

 return "St"

if(a==6):

 return "Way"

最后根据图片一个一个输入道路名称(确实很麻烦这个步骤),结果图层如下图所示:
7.根据tree.csv文件中记录的坐标点数据,创建树木点要素类tree,坐标系与block相同;

我们右键加载进来的tree.csv文件,选择显示XY数据,相关参数设置如下图所示:
这时候显示出来的点数据只是临时数据,我们需要右键点数据选择导出数据为“tree”,这时候的数据才是永久性的数据。

8.检查tree要素是否位于类型为open grass的绿化用地范围内,超出部分删除,将符合要求的树木图层存储为tree2;

查看“local”数据可以发现只有一个图形要素不属于绿化用地,并且该用地上面也没有tree要素,为此我们可以直接采用【相交】工具取交集即可获得符合要求的tree2了。
9.根据example.jpg中的符号类型,创建新符号库;

我们从“example.jpg”中抠出图像要素,然后右键菜单栏上面的自定义选项卡选择“样式管理器”,针对tree类型的点符号我们选择标记符号后右键选择新建标记符号,在打开的符号属性编辑器窗口中选择类型为“图片标记符号”,选择刚才抠出来的图片即可,如下图所示:


对于road道路网符号我们选择线符号后依旧右键选择新建线符号,在打开的符号属性编辑器窗口中选择类型为“制图线符号”,线端头选择为“圆头斜接”,然后挑选颜色即可,如下图所示:
最终新建的符号库在名称列中右键选择重命名,如下图所示;
10.图层符号化:tree图层按照树木类型和等级值设置相应的符号与大小;road图层按照等级设置道路符号;parcelnew图层按照类型设置任意的符号;

由于tree图层有树木等级和类型两种值进行符号化,为此我们打开符号系统下面的显示-类别-唯一值,多个字段下面针对Type和SizeClass这两个值字段进行符号化,如下图所示:
首先我们选择Type为0的前面几个符号后右键选择第一个“所选符号的属性”,选择一种符号颜色和形状即可,对Type为1的符号也是一样的操作,如下图所示:
这样两种不同的树木类型有了不一样的符号,但是数目等级还不可以体现出来,为此我们需要在右下角的“高级”选项卡下面选择“大小”,设置按照“SizeClass”字段来调整点的大小即可(如果感觉符号整体太小可以对“SizeClass”字段加上一个常数哦)。
最终效果图如下图所示:
对“road”数据进行符号化直接选择按照“等级”,选择之前在符号库里已经创建的符号即可,最终效果图如下图所示:
11、制作专题图:要求具有图名、比例尺、图例、指北针等要素,图层包括:tree2,road,local,building,parcel,parcelnew;并与要求4中的柱状图一并进行排版出图。

分别对tree2,road,local,building,parcel,parcelnew进行符号化后切换到布局视图,在菜单栏的视图选项卡下面选择创建图表如下图所示:
接着对该图表进行相关参数设计,分别设置图表的类型、X轴和Y轴显示字段以及柱子的颜色,然后点击下一步,如下图所示:
接下来主要是设置图表的坐标轴注释和图例位置,如下图所示
最后点击确定后复制为图片粘贴到布局视图即可,接下来插入比例尺、指北针、图例、标题,最后调整相互之间的位置,使其布局更为合理,最终效果图如下图所示:

来源:https://blog.csdn.net/qq_43173805/article/details/122028740

成都途远GIS是一家专业致力于无人机航空摄影测绘、航空数据处理、GIS地理信息系统研发、数字孪生城市制作、数字沙盘模型等业务的创新型科技公司,为您提供一站式地理信息服务。