Mapper
get_lat_lon.c
Go to the documentation of this file.
1 #include "prototypes_new.h"
2 
3 void get_lat_lon(int newx,int newy,float *lat,float *lon)
4 
5 {
6 
7 extern struct dval dval;
8 double conv=.0174,c,lonf;
9 double t1,t2,t3,t4,t5,lat1,lat2;
10 
11 if(newx==6400)
12  newx=6401;
13 
14 t1=.0001;
15 
16 lonf= atan(((double)newy-dval.yo)/(t1))/conv-90.;
17 
18 t1=(double)newx-dval.xo;
19 
20 *lon= atan(((double)newy-dval.yo)/(t1))/conv;
21 
22 if(*lon > 0)
23  *lon=-180+*lon-2*lonf;
24 
25 *lon=*lon+90+dval.lo;
26 
27 c=dval.a*cos((*lon-dval.lo-90)*conv)/((double)newx-dval.xo);
28 c=pow(c,2);
29 
30 t1=1/(1+c);
31 t2=1-c;
32 t3=pow(2*t1,2);
33 t4=4*t2*t1;
34 t5=pow(t3-t4,.5)/2;
35 
36 if(fabs(-t1+t5) > 1.0)
37  lat1=-9999;
38 else
39  lat1=asin(-t1+t5)/conv;
40 
41 if(fabs(-t1-t5) > 1.0)
42  lat2=-9999;
43 else
44  lat2=asin(-t1-t5)/conv;
45 
46 if(lat1 > 0 && lat1 < 90)
47  *lat=lat1;
48 
49 else
50  *lat=lat2;
51 
52 return;
53 
54 }
55 
56 
57 
58 
59 
60 
61 
void get_lat_lon(int newx, int newy, float *lat, float *lon)
Definition: get_lat_lon.c:3
double lat
Definition: mapp2h.h:41
double lon
Definition: mapp2h.h:41
Definition: misc.h:470
double lo
Definition: misc.h:475
double a
Definition: misc.h:472
double yo
Definition: misc.h:474
double xo
Definition: misc.h:473