26 lines
		
	
	
		
			707 B
		
	
	
	
		
			Matlab
		
	
	
		
		
			
		
	
	
			26 lines
		
	
	
		
			707 B
		
	
	
	
		
			Matlab
		
	
	
| 
								 | 
							
								function pos_ECEF = LatLonHRad_to_ECEF(LatLonH)
							 | 
						||
| 
								 | 
							
								% convert latitude, longitude, height to XYZ in ECEF coordinates 
							 | 
						||
| 
								 | 
							
								% LatLonH(1) : latitude in radian 
							 | 
						||
| 
								 | 
							
								% LatLonH(2) : longitude in radian
							 | 
						||
| 
								 | 
							
								% LatLonH(3) : height in meter
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% Source: A. Chatfield, "Fundamentals of High Accuracy Inertial
							 | 
						||
| 
								 | 
							
								% Navigation", 1997. pp. 10 Eq 1.18
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								% constants
							 | 
						||
| 
								 | 
							
								a = 6378137.0; %m
							 | 
						||
| 
								 | 
							
								e_sqr =0.006694379990141317; 
							 | 
						||
| 
								 | 
							
								% b = 6356752.3142; % m 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								%RAD_PER_DEG = pi/180;
							 | 
						||
| 
								 | 
							
								phi = LatLonH(1);%*RAD_PER_DEG;
							 | 
						||
| 
								 | 
							
								lambda = LatLonH(2);%*RAD_PER_DEG;
							 | 
						||
| 
								 | 
							
								h = LatLonH(3);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								RN = a/sqrt(1 - e_sqr*sin(phi)^2);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								pos_ECEF = zeros(3,1);
							 | 
						||
| 
								 | 
							
								pos_ECEF(1) = (RN + h )*cos(phi)*cos(lambda);
							 | 
						||
| 
								 | 
							
								pos_ECEF(2) = (RN + h )*cos(phi)*sin(lambda);
							 | 
						||
| 
								 | 
							
								pos_ECEF(3) = (RN*(1-e_sqr) + h)*sin(phi) ;
							 |