爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4137|回复: 0

用etopo1地形数据结合台风路径寻找首次登入点(老师要求只能用matlab)

[复制链接]

新浪微博达人勋

发表于 2015-10-15 16:38:39 | 显示全部楼层 |阅读模式
GrADS
系统平台: win8.1
问题截图:
问题概况: 1、台风登入点总是差0.2°左右,etopo1数据时0.0001的精度 ,可是图形出来是对。我估计求登入点的算法不对。
2、数据输出时总是显示好几个登入点,跟自己预期想的不一样,应该就是出现第一个登入点才对
我看过提问的智慧: 看过
自己思考时长(天): 4

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

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

x
   首先我将etopo1数据进行了处理,海洋置0,陆地置1.   我自己的想法是以相邻两个台风路径点构成直线,然后再直线上连续取点,观察时是否有点在陆地上。如果有,那么第一个直线上第一个在陆地上的点就是登入点。


   for i=1:c-1       %共c个台风路径点
    if abs(b(i)-b(i+1))<0.00001 %第一种情况两个点竖直
         for j=1:c
                b1=a(j);
                if zz(b(j),b1)==1
                    lon=x1(j);
                    lat=y1(b1);
                    sprintf('lat=%f lon=%f', lat,lon)

                    break;
                end
          end
    else                                 %非竖直
            d=(a(i+1)-a(i))/(b(i+1)-b(i));%xielv
            e=(a(i)-b(i)*d);
            jg=(b(i+1)-b(i))/abs(b(i+1)-b(i));
            for j=b(i):jg:b(i+1)
                 b1=d*j+e;
                 b1=fix(b1);
                 if  zz(j,b1)>0
                    lon=x1(j);
                    lat=y1(b1);
                    sprintf('lat=%f lon=%f', lat,lon)
                    break;
                 end         
            end
     end      
end

但是出来的结果出来好多
lat=17.983333 lon=122.183333
lat=18.583333 lon=120.883333
lat=22.183333 lon=120.666667
lat=24.500000 lon=121.833333
lat=29.566667 lon=121.983333
lat=29.800000 lon=121.900000
lat=30.900000 lon=121.700000
lat=34.683333 lon=128.583333
lat=37.233333 lon=136.700000
出来这么多答案  精确度也不高 我从图上放大观察应该是17.9882 122.2
麻烦大家了  我觉得是我控制条件的问题 我查阅了相关网页,询问了学长,没有实质进展,麻烦大家了。谢谢!


F{BA5S%7R~_6KSZ8ZC5%~$F.png
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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