登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 little_five 于 2018-1-28 15:33 编辑
最近在做台风路径突变的统计分析,需要先把经纬度转为平面坐标用的是中国台风1949-2015年的台风最佳路径集
看了好多资料和文献,发现真是隔行如隔山,什么高斯坐标、北京84,什么的完全不懂
后面搜到个简易方法,方法公式如下图
这步算出来的貌似没有问题
但是下一步要算台风路径的斜率和角度时,数据感觉很奇怪啊
求大神指导指导
最后附上我的程序
- program main
- implicit none
-
- character*5 :: liu
- character*4 :: wu,C
- integer :: i,j,k,line,ty_id
- character :: F,G
- character*20 :: name,h
- integer :: status = 0
- integer, allocatable :: ymdt(:),cata(:)
- real, allocatable :: lat(:),lon(:),pres(:),wind(:),x(:),y(:),w(:),N(:)
- character*8 :: year
- real*8, parameter :: pi=3.1415926
- real*8, parameter :: a=6378.137, b=6356.7523
- real*8 :: e2
- e2=(a**2-b**2)/a**2
- do k=1949,2015,1
- write(year,'(I4)')k
- open(unit = 10,file='h:/CH'//trim(adjustl(year))//'BST.txt')
- open(unit = 11,file='h:/CH'//trim(adjustl(year))//'BST.txt',status='replace',position='append')
- do while(.true.)
- read(10,*,iostat=status)liu,wu,line,ty_id,C,F,G,name,h
- if(status/=0)exit
- allocate(ymdt(line),cata(line),lat(line),lon(line),pres(line),wind(line),x(line),y(line),w(line),N(line))
- do i=1,line,1
- read(10,*,iostat=status)ymdt(i),cata(i),lat(i),lon(i),pres(i),wind(i)
- w(i)=dsqrt(1-((sin(lat(i)))**2)*e2)
- N(i)=a/w(i)
- x(i)=N(i)*cos(lat(i)/18000*pi)*cos(lon(i)/18000*pi)
- y(i)=N(i)*cos(lat(i)/18000*pi)*sin(lon(i)/18000*pi)
- end do
- write(11,"(A6,1X,I3,1X,I4,1X,A20)")liu,line,ty_id,name
- do j=1,line,1
- write(11,*)ymdt(j),cata(j),lat(j),lon(j),x(j),y(j)
- end do
- deallocate(ymdt,cata,lat,lon,pres,wind,x,y,w,N)
- end do
- end do
- end
复制代码
|