%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);