Matlab读取shp数据、显示和增加字段-2021-09-15

最近在做一个点云的林业参数提取,用到了shp冠层数据,使用Arcgis似乎不太方便计算多种参数,因此学习了matlab读取shp数据,显示并且增加字段的方法。

SHP数据的读取

matlab2019b存在 shaperead 函数,可以读取shp数据。

其中帮助文档如下:

S = shaperead(filename)

S = shaperead(filename, Name, Value)

[S,A] = shaperead(      )


S 中储存了shp数据的形状以及边界信息,如:读取一个面状shp,其情况如下:

 

 A 中存储了shp数据的属性表

如果不是[S, A]输出,则shp的属性表会叠加在S中 


 SHP数据的信息读取

shapeinfo可以读取shp数据的信息。

info = shapeinfo(filename) 

 

但是似乎没有坐标系的信息。

SHP数据的显示

 使用geoshow可以显示shp数据

 由于geoshow的用法很多,这里不做过多的演示,直接使用:

s = shaperead('xx.shp');
geoshow(s)

SHP数据保存

shapewrite函数可以保存shp数据

shapewrite(S,filename)
shapewrite(S,filename,'DbfSpec',dbfspec)

如果是添加字段的话,shp读取读取出来是有一点像是table的struct格式,无法直接按照字段添加,因此,需要先将读取的S转换成table,为表格添加字段,再将表格转换为struct,进行保存。

下面是代码示列:

% 读取shp数据
s = shaperead('xx.shp');
% 转换成table格式
s = struct2table(s);
% 组织要添加的字段
% a,b,c为和shp数据一样多的字段数据
filed = table(a,b,c);
% 为shp补充字段
s = [s,filed];
% 转换为struct格式
s = table2struct(s);
% 保存shp
shapewrite(s,'s.shp')

接下来在gis中打开保存的shp就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值