經緯度座標轉換成直角座標

%MATLAB將經緯度座標轉換成直角座標
% 從northEastChina20文本中讀取經緯度座標及臺站名,該文件中存放格式爲三列,第一列是經度,第二列是緯度,第三列是臺站名的三個字母​​縮寫

C=load('17c1-14c1_100ugal.TXT');
lon=C(:,1);lat=C(:,2);
% sta=cell2mat(sta); %將cell轉換成字符串

latlon20=[lat,lon];%把緯度放在第一列,經度放在第二列

axesm utm %設置投影方式,這是MATLAT自帶的Universal Transverse Mercator (UTM)方式

Z=utmzone(latlon20);%utmzone根據latlon20裏面的數據選擇他認爲合適的投影區域,可以是一個臺站的經緯度,也可以是所有臺站的經緯度(此時是平均)
setm(gca,'zone',Z)
h = getm(gca)
R=zeros(size(latlon20));
for i=1:length(latlon20)

[x,y]= mfwdtran(h,latlon20(i,1),latlon20(i,2));% 調用MATLAB自帶的函數,根據先前設置的Z,逐個臺站進行轉換計算

R(i,:)=[x;y];

end
dlmwrite('coordinate.txt',R)
figure; plot(R(:,1),R(:,2),'ro','linewidth',6) %在直角座標下畫出這些臺站

===================================================================

mstruct=defaultm('mercator');
mstruct.geoid=[ 6378137 ,0.0818191908426215];
mstruct.geoid = referenceEllipsoid('grs80','kilometers');

mstruct.origin=[0,0,0];
mstruct=defaultm(mstruct);
[x,y] =projfwd(mstruct,lat,lon);

[lat,lon]=projinv(mstruct,x,y);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章