📄 xyz2mif.m
字号:
function xyz2Mif(UserPath)
%convert the xyz data to mif, in order to display it in Google Earth.
%%
%预定义第一列为x,第二列为y,第三列为tag连接信息,第四列为水深
%打开文件
[XYZFileName,XYZFilePath]=uigetfile(strcat(UserPath,'*.xyz'),'请选择需转换的XYZ文件:');
if strcmp(XYZFilePath(length(XYZFilePath)),'\')~=1
XYZFilePath(length(XYZFilePath)+1)='\';
end
XYZFilePathName=strcat(XYZFilePath,XYZFileName); %XYZ 文件绝对路径引用
LineName=XYZFileName(1:length(XYZFileName)-4);
MifFileName=strcat(LineName,'.Mif');
MifFilePathName=strcat(XYZFilePath,MifFileName); %Mif 文件绝对路径引用,生成的同名Mif文件存于与XYZ文件相同目录中。
MidFileName=strcat(LineName,'.Mid');
MidFilePathName=strcat(XYZFilePath,MidFileName); %Mid 文件绝对路径引用,生成的同名Mid文件存于与XYZ文件相同目录中。
Fid_XYZ=fopen(XYZFilePathName,'r');
if Fid_XYZ==-1
error(strcat(XYZFilePathName,'无法打开!'));
end
fclose(Fid_XYZ);
%%
Fid_Mif=fopen(MifFilePathName,'w');
if Fid_Mif==-1
error(strcat(MifFilePathName,'无法打开!'));
end
Fid_Mid=fopen(MidFilePathName,'w');
if Fid_Mid==-1
error(strcat(MidFilePathName,'无法打开!'));
end
fclose(Fid_Mid);
%%
Fid_Str=fopen('Mifstr.txt','r');
if Fid_Str==-1
error('Mifstr.txt无法打开!');
end
%%
%写入Mif文件头
while feof(Fid_Str)~=1
TempStr=fgetl(Fid_Str);
fprintf(Fid_Mif,'%s\n',TempStr);
end
fclose(Fid_Str);
%%
Data=load(XYZFilePathName,'-ascii');
X=Data(:,1);
Y=Data(:,2);
Tag_Connection=Data(:,3); %第三列为线段链接信息
clear Data;
N=length(X);
c1=1;
while c1<=N
TempLine=[];
c2=0;
while (c1<=N)&&(Tag_Connection(c1)~=0)
c2=c2+1;
TempLine(c2,1:2)=[X(c1),Y(c1)];
c1=c1+1;
end
%读入标记为0的记录行
c2=c2+1;
TempLine(c2,1:2)=[X(c1),Y(c1)];
c1=c1+1;
%
fprintf(Fid_Mif,'Pline %.0f\n',c2);
for c3=1:c2
fprintf(Fid_Mif,'%.10f %.10f\n',TempLine(c3,1),TempLine(c3,2));
end
fprintf(Fid_Mif,' Pen (1,2,0) \n');
end
%%
fclose(Fid_Mif);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -