批量处理netdiff
用于GNSS开源netdiff批处理的脚本
%批处理netdiff解算模式
%by Nihaowen
%20240315
a=1;
year=23;%日期
suffix=['.',num2str(year),'o'];
%观测值路径
path='G:\BiYeLunwen\real_experience\Turkey\06022023_KMarasData\20230206\obzer';
sation=[];
%读取观测文件获取站名
file=dir(path);
for i=3:length(file)
if strcmp(file(i).name(end-3:end),suffix)
sation=[sation;file(i).name];
fileid=fopen([file(i).folder,'\',file(i).name],'r+');
if fileid<1
disp('提示:文件打开失败');
return;
end
while ~feof(fileid)
tline=fgetl(fileid); %%%%%%%%%%%%按行读取数据
if tline<=0 break;end
if contains(tline,'APPROX POSITION XYZ')
x=tline(3:13);y=tline(17:27);z=tline(31:41);
break;
end
end
fclose(fileid);
cd 'G:\software\application\Input'
%编辑netdif配置文件
fid=fopen('Control_Net.txt','r+');
flg=0;
num=0;
while ~feof(fid)
line=fgetl(fid); %%%%%%%%%%%%按行读取数据
num=num+1;
newline{num}=line;
if flg==1
line(1:11)=file(i).name;
line(22:32)=x;line(37:47)=y;line(52:62)=z;
newline{num}=line;
flg=0;
end
if contains(line,'*name SKD')
flg=1;
end
end
fclose(fid);
fid = fopen('Control_Net.txt','w+');
for k=1:num
fprintf(fid,'%s\n',newline{k});
end
fclose(fid);
%运行
command='Net_Diff.dll Control_Net.txt';
status = system(command);
disp(sation);
a=1;
else
continue;
end
end