coordonate carteziene obtinute din latitudine si longitudine

Creat de pistachio, Mar 07, 2009, 10:11 PM

« precedentul - următorul »

pistachio

Am un receiver de GPS care se conecteaza la interfata seriala a calculatorului. Am reusit sa citesc de acolo latitudinea si longitudinea. Acuma doresc sa le transform in coordonate carteziene (x,y,z).
Va arat ce am facut pana acuma:
a=6378245;
b=6356863.019;       
h=37.5;                                                     -inaltimea geoidului
e=sqrt((a^2-b^2)/a^2);                              -eccentricity
latit:(46*3600+46*60+43.659)*3600;          -latitudinea in grade
long:(23*3600+36*60+41.513)*3600;         -longitudinea in grade
n=a/sqrt(1-e^2*sind(latit)*sind(latit));          -sind sinusul in grade(degree)

xA:((n+h)*cosd(latit)*cosd(long)); 
yA:((n+h)*cosd(latit)*sind(long));
zA:(((b^2/a^2)*n+h)*sind(latit)); 

SF=-6.4401;                                                 -factorul de scara
s=1+SF*10^-6;
rx=1.47607;ry=-6.47807;rz=1.81491;              -parametri atasati clujului
dx=-163.9538;dy=133.5520;dz=242.2603;

xB=s*(xA-yA*rz+ry*zA)+dx
yB=s*(xA*rz+yA-rx*zA)+dy
zB=s*(-xA*ry+yA*rx+zA)+dz


Va rog sa-mi spuneti cu ce gresesc, multumesc anticipat.


pistachio

postez din nou sa se vada clar:D

a = 6378245;                                             -Krassowsky 1940
b = 6356863.019;       
h = 37.5;                                                     -inaltimea geoidului
e = sqrt((a^2-b^2)/a^2);                              -eccentricity
latit = (46*3600+46*60+43.659)/3600;          -latitudinea in grade
long = (23*3600+36*60+41.513)/3600;         -longitudinea in grade
n = a/sqrt(1-e^2*sind(latit)*sind(latit));          -sind sinusul in grade(degree)

xA = ((n+h)*cosd(latit)*cosd(long));
yA = ((n+h)*cosd(latit)*sind(long));
zA = (((b^2/a^2)*n+h)*sind(latit));

SF = -6.4401;                                                 -factorul de scara
s = 1+SF*10^-6;
rx = 1.47607;ry = -6.47807;rz = 1.81491;              -parametri atasati clujului
dx = -163.9538;dy= 133.5520;dz = 242.2603;

xB = s*(xA-yA*rz+ry*zA)+dx
yB = s*(xA*rz+yA-rx*zA)+dy
zB = s*(-xA*ry+yA*rx+zA)+dz