filename = '11.txt';
delimiterIn = ' ';
headerlinesIn = 1;
format long e
%A= readtable('nagpur_for_rpc.txt','format','%s%f%f%f%f%f%f%f%f');
A = importdata(filename,delimiterIn,headerlinesIn);
fn=A.data(:,1);
X0=A.data(:, 2);
Y0=A.data(:, 3);
Z0=A.data(:, 4);
wo=A.data(:, 5);
ph=A.data(:, 6);
ka=A.data(:, 7);
zmin=A.data(:, 8);
zmax=A.data(:, 9);
scale =0.07/10;
f=0.1005;
fid1=fopen(filename);
x0=3750;
y0=5750;
ll=length(ka);
for p =1:ll;
a1=cos(ph(p))*cos(ka(p));
a2= (cos(wo(p))*sin(ka(p)) + sin(wo(p))*sin(ph(p))*cos(ka(p)));
a3= (sin(wo(p))*sin(ka(p))-cos(wo(p))*sin(ph(p))*cos(ka(p)));
b1 = -(cos(ph(p))*sin(ka(p)));
b2 = cos(wo(p))*cos(ka(p)) - sin(wo(p))*sin(ph(p))*sin(ka(p));
b3 = sin(wo(p))*cos(ka(p))+ cos(wo(p))*sin(ph(p))*sin(ka(p));
c1 = sin(ph(p));
c2 = -sin(wo(p))*cos(ph(p));
c3 = cos(wo(p))*cos(ph(p));
%XA=X-X0;
%YA=Y-Y0;
output_filename = strcat('rpc_',num2str(fn(p)),'_XYZ_1st.txt');
Pathname = 'd:\mst_rpc\aerial\nag\';
output = fullfile(Pathname, output_filename);
fid = fopen(output, 'w');
mm = 7500;
nn=11500;
zmean= (zmax(p)+zmin(p))/2;
zscale= (zmax(p)-zmin(p))/2;
rscale=3750;
cscale=5750;
% fprintf(fid, 'LINE_OFF: +3750 pixels\n');
% fprintf(fid, 'SAMP_OFF: +5750 pixels\n');
% fprintf(fid, 'LAT_OFF: +%f degrees\n', X0(p));
% fprintf(fid, 'LONG_OFF: +%f degrees\n', Y0(p));
% fprintf(fid, 'HEIGHT_OFF: +%f meters\n', zmean);
% fprintf(fid, 'LINE_SCALE: +%f pixels\n', rscale);
% fprintf(fid, 'SAMP_SCALE: +%f pixels\n', cscale);
% fprintf(fid, 'LAT_SCALE: +%f \n', scale);
% fprintf(fid, 'LONG_SCALE: +%f \n', scale);
%fprintf(fid, 'HEIGHT_SCALE: +%f meters\n', zscale);
%for i =1:l;
SHX =[]; SHY =[];
for m= 0:375:7500
for n = (0:575:11500)
Z =zmin(p);
zin= (zmax(p)-zmin(p))/3;
for o =(1:4)
x=m;
y=n;
XA=(a1*(x-x0)*0.000009 + a2*(y-y0)*0.000009 + a3*(-f))/(c1*(x-x0)*0.000009 + c2*(y-y0)*0.000009 + c3*(-f));
XAA = (Z-Z0(p))*XA + X0(p);
YA=(b1*(x-x0)*0.000009 + b2*(y-y0)*0.000009 + b3*(-f))/(c1*(x-x0)*0.000009 + c2*(y-y0)*0.000009 + c3*(-f));
YAA=(Z-Z0(p))*YA +Y0(p);
% SHX=XAA; SHY=YAA;
fprintf(fid, '%5.6f %5.6f %5.9f %5.9f %5.9f \n', y,x,XAA,YAA,Z);
Z=Z + zin; %Z=Z+1i;
end
% n = n+1;
end
%m= m + 1;
end
fclose(fid);
ground =importdata(output);
SHX=ground(:,3);
SHY=ground(:,4);
XMAX = max(SHX); XMIN = min(SHX); LATSCALE = (XMAX-XMIN)/2;
YMAX = max(SHY); YMIN = min(SHY); LONSCALE = (YMAX-YMIN)/2;
output_filename = strcat('rpc_',num2str(fn(p)),'_ANCI_XYZ_1st.txt');
Pathname = 'd:\mst_rpc\aerial\nag\';
output2 = fullfile(Pathname, output_filename);
fid = fopen(output2, 'w');
fprintf(fid, 'LINE_OFF: +3750 pixels\n');
fprintf(fid, 'SAMP_OFF: +5750 pixels\n');
fprintf(fid, 'LAT_OFF: +%f degrees\n', X0(p));
fprintf(fid, 'LONG_OFF: +%f degrees\n', Y0(p));
fprintf(fid, 'HEIGHT_OFF: +%f meters\n', zmean);
fprintf(fid, 'LINE_SCALE: +%f pixels\n', rscale);
fprintf(fid, 'SAMP_SCALE: +%f pixels\n', cscale);
fprintf(fid, 'LAT_SCALE: %f \n', LATSCALE);
fprintf(fid, 'LONG_SCALE: %f \n', LONSCALE);
fprintf(fid, 'HEIGHT_SCALE: +%f meters\n', zscale);
for m= 0:375:7500
for n = (0:575:11500)
Z =zmin(p);
zin= (zmax(p)-zmin(p))/3;
for o =(1:4)
x=m;
y=n;
XA=(a1*(x-x0)*0.000009 + a2*(y-y0)*0.000009 + a3*(-f))/(c1*(x-x0)*0.000009 + c2*(y-y0)*0.000009 + c3*(-f));
XAA = (Z-Z0(p))*XA + X0(p);
YA=(b1*(x-x0)*0.000009 + b2*(y-y0)*0.000009 + b3*(-f))/(c1*(x-x0)*0.000009 + c2*(y-y0)*0.000009 + c3*(-f));
YAA=(Z-Z0(p))*YA +Y0(p);
% SHX=XAA; SHY=YAA;
fprintf(fid, '%5.6f %5.6f %5.9f %5.9f %5.9f \n', y,x,XAA,YAA,Z);
Z=Z + zin; %Z=Z+1i;
end
% n = n+1;
end
%m= m + 1;
end
fclose(fid);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ggg##########################
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
filename1 = output2;
delimiterIn = ' ';
headerlinesIn = 10;
format long e
B = importdata(filename1,delimiterIn,headerlinesIn);
c=B.data(:, 1);
r=B.data(:, 2);
x=B.data(:, 3);
y=B.data(:, 4);
z=B.data(:, 5);
fid1=fopen(filename1);
[lineoff, rmean] = textread(filename1, '%9c %10f', 1, 'delimiter', '\n', 'headerlines', 0)
[lineoff, cmean] = textread(filename1, '%9c %10f', 1, 'delimiter', '\n', 'headerlines', 1)
[lineoff, ymean] = textread(filename1, '%9c %10f', 1, 'delimiter', '\n', 'headerlines', 2)
[lineoff, xmean] = textread(filename1, '%9c %10f', 1, 'delimiter', '\n', 'headerlines', 3)
[lineoff, zmean] = textread(filename1, '%11c %10f', 1, 'delimiter', '\n', 'headerlines', 4)
[lineoff, rscale] = textread(filename1, '%11c %10f', 1, 'delimiter', '\n', 'headerlines', 5)
[lineoff, cscale] = textread(filename1, '%11c %10f', 1, 'delimiter', '\n', 'headerlines', 6)
[lineoff, yscale] = textread(filename1, '%11c %10f', 1, 'delimiter', '\n', 'headerlines', 7)
[lineoff, xscale] = textread(filename1, '%11c %10f', 1, 'delimiter', '\n', 'headerlines', 8)
[lineoff, zscale] = textread(filename1, '%13c %10f', 1, 'delimiter', '\n', 'headerlines', 9)
R=(r-rmean)/rscale;
C=(c-cmean)/cscale;
Y=(x-xmean)/xscale;
X=(y-ymean)/yscale;
Z=(z-zmean)/zscale;
l=length(x);
for i=[1:l]
%M(01,i)=1; %1
%M(02,i)=Y(i); %y
%M(03,i)=X(i); %x
%M(04,i)=Z(i); %z
M1(01,i)=1; %1
M1(02,i)=Y(i); %y
M1(03,i)=X(i); %x
M1(04,i)=Z(i); %z
%M1(05,i)=Y(i)*X(i); %yx
%M1(06,i)=Y(i)*Z(i); %yz
%M1(07,i)=X(i)*Z(i); %xz
%M1(08,i)=Y(i)*Y(i); %yy
%M1(09,i)=X(i)*X(i); %xx
%M1(10,i)=Z(i)*Z(i); %zz
M1(05,i)=M1(02,i)*-R(i);
M1(06,i)=M1(3,i)*-R(i);
M1(07,i)=M1(4,i)*-R(i);
%M1(14,i)=M1(5,i)*-R(i);
%M1(15,i)=M1(6,i)*-R(i);
%M1(16,i)=M1(7,i)*-R(i);
%M1(17,i)=M1(8,i)*-R(i);
%M1(18,i)=M1(9,i)*-R(i);
%M1(19,i)=M1(10,i)*-R(i);
end
J=lscov(M1',R);
i=0;
eo=feof(fid1);
for i=[1:l]
Mc1(01,i)=1;
Mc1(02,i)=Y(i);
Mc1(03,i)=X(i);
Mc1(04,i)=Z(i);
Mc1(05,i)=Mc1(2,i)*-C(i);
Mc1(06,i)=Mc1(3,i)*-C(i);
Mc1(07,i)=Mc1(4,i)*-C(i);
%Mc1(01,i)=1;
%Mc1(02,i)=Y(i);
%Mc1(03,i)=X(i);
%Mc1(04,i)=Z(i);
%Mc1(05,i)=Y(i)*X(i);
%Mc1(06,i)=Y(i)*Z(i);
%Mc1(07,i)=X(i)*Z(i);
%Mc1(08,i)=Y(i)*Y(i);
%Mc1(09,i)=X(i)*X(i);
%Mc1(10,i)=Z(i)*Z(i);
%Mc1(11,i)=Mc1(2,i)*-C(i);
%Mc1(12,i)=Mc1(3,i)*-C(i);
%Mc1(13,i)=Mc1(4,i)*-C(i);
%Mc1(14,i)=Mc1(5,i)*-C(i);
%Mc1(15,i)=Mc1(6,i)*-C(i);
%Mc1(16,i)=Mc1(7,i)*-C(i);
%Mc1(17,i)=Mc1(8,i)*-C(i);
%Mc1(18,i)=Mc1(9,i)*-C(i);
%Mc1(19,i)=Mc1(10,i)*-C(i);
end
fclose(fid1);
K=lscov(Mc1',C);
output_filename1 = strcat('rpc_',num2str(fn(p)),'_',num2str(fn(p)),'_RPC_1st.txt');
%output_filename1 = strcat(num2str(fn(p)),'_RPC.txt');
Pathname = 'd:\mst_rpc\aerial\nag\';
output1 = fullfile(Pathname, output_filename1);
fid2 = fopen(output1, 'w');
fprintf(fid2, 'LINE_OFF: +%f pixels\n', rmean);
fprintf(fid2, 'SAMP_OFF: +%f pixels\n', cmean);
fprintf(fid2, 'LAT_OFF: +%f degrees\n', ymean);
fprintf(fid2, 'LONG_OFF: +%f degrees\n', xmean);
fprintf(fid2, 'HEIGHT_OFF: +%f meters\n', zmean);
fprintf(fid2, 'LINE_SCALE: +%f pixels\n', rscal