爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5358|回复: 5

[数据转换] 为何用matlab保存的bln文件在surfer中不能直接出图

[复制链接]

新浪微博达人勋

发表于 2019-12-10 22:15:43 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
大家好,我遇到这样一个问题:
用matlab将包含岸线信息的shp文件在matlab中转化成了bln,具体就是将shp文件中每个闭环数据保存到一个mat中,并在每个环的起始处添加了【数据量,0/1】格式上与正常surfer生成的bln无异(图1)。但是在surfer中map添加base之后却不能正确出图(图2),正确出图如图3请问这是为何


图1

图1

图2

图2

图3

图3
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-12-11 19:20:23 | 显示全部楼层
从两张图看,比较一下坐标系,可以猜出是在数据上出了问题。错误的数据 Y 坐标范围不对啊,0~20,正确数据里面根本就没有,正确数据 Y 坐标是 22.3~22.9,根本没有 0~20 的数据。检查一下数据,检查一下转换过程。
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-12-10 22:18:04 | 显示全部楼层
附一段shp2bln的程序

for j=1:size(data_struct,2);
   bb=size(data_struct(j).xy,2) ;
   cc=[bb,0];%
   dd=data_struct(j).xy';
   data_struct(j).xy(:,2:bb+1)=data_struct(j).xy;
   data_struct(j).xy(:,1)=cc;
   data_struct(j).xy=data_struct(j).xy';  
end

data_bln=[];

for m=1:size(data_struct,2);
   data_bln=[data_bln;data_struct(m).xy];
      
end
data_bln=rmmissing(data_bln);% remove nan
save 2017_pre_m.bln -ascii data_bln
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-12-11 15:53:27 | 显示全部楼层
现在已经用surfer直接读取shp并保存为bln,此法虽然简单,但是数据量很大时也是麻烦,所以还是想用matlab将其弄清楚
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-12-11 19:48:05 | 显示全部楼层
我觉得你既然说了数据和格式一致,那数据错误可能性不大。最大的可能性就是surfer自己生成bln文件时会有特殊符号置入文件代码里,而你用其他软件只是格式上符合了,文件代码不符合。具体可以参考程贤辅老师的帖子,我觉得有可能是同一个问题。
程老师的帖子“Surfer 底图 .bln 数据文件的奇事”
http://bbs.06climate.com/forum.php?mod=viewthread&tid=30822
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-12-13 00:15:34 | 显示全部楼层
xiedaolei 发表于 2019-12-11 19:48
我觉得你既然说了数据和格式一致,那数据错误可能性不大。最大的可能性就是surfer自己生成bln文件时会有特 ...

谢谢您,我也是这种感觉,多谢!!!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表