Mapper
get_hrap_coord.c
Go to the documentation of this file.
1 #define _POSIX_SOURCE
2 #include "prototypes.h"
3 
4 void get_hrap_coord(double maximum_latitude,double minimum_latitude,double center_longitude)
5 
6 {
7 
8  extern struct grid *grid;
9  extern char station_list_file[256];
10  extern char grid_file[100];
11  extern Widget scrollbar;
12  extern Widget top_level;
13  extern int posit;
14  extern Widget s_text;
15  int i,k,kk,maxi,maxj;
16  struct HRAP hrap;
17  struct HRAP irap;
18  float cx,cy;
19  extern struct dval dval;
20  char dbuf[200],kbuf[200];
21  extern struct hrap_grid *hrap_grid;
22  long r,s;
23  extern struct pcp *pcp;
24  extern struct pcp *spf;
25  float conv=.0174,totlat;
26  float dist,dist1,dist2,distance,value;
27  float isohlat,isohlon;
28  int jj,latindex,lonindex;
29  int mini,minj;
30  int slider_size,scrollm,ivalue,increment,page_increment;
31  double pw;
32  int l,ll;
33  FILE *fp;
34  char *p;
35  float lat,lon;
36 
37  hrap_grid=(struct hrap_grid *) calloc(1,sizeof(struct hrap_grid));
38  if(hrap_grid==NULL) {
39 
40  printf("could not allocate hrap_grid space\n");
41  exit(1);
42 
43  }
44 
45 pcp=(struct pcp *) calloc(1,sizeof(struct pcp));
46  if(pcp==NULL) {
47 
48  printf("could not allocate pcp space\n");
49  exit(1);
50 
51  }
52 
53  spf=(struct pcp *) calloc(1,sizeof(struct pcp));
54  if(spf==NULL) {
55 
56  printf("could not allocate pcp space\n");
57  exit(1);
58 
59  }
60 
61  grid=(struct grid *) calloc(1,sizeof(struct grid));
62  if(grid==NULL) {
63 
64  printf("could not allocate grid space\n");
65  exit(1);
66 
67  }
68 
69 
70  maxi=-1;maxj=-1;mini=999999;minj=99999;
71 
72  strcpy(dbuf,"HRAP Coordinates\n");
73  posit=posit+strlen(dbuf);
74  XmTextInsert(s_text,posit,dbuf);
75 
76  XtVaGetValues(scrollbar,XmNmaximum,&scrollm,NULL);
77 
78  XmScrollBarGetValues(scrollbar,&ivalue,&slider_size,
79  &increment,&page_increment);
80 
81  XmScrollBarSetValues(scrollbar,scrollm-slider_size,
82  slider_size, increment,page_increment,True);
83 
84  XmUpdateDisplay(top_level);
85 
86  /* need longitude of 4 corners of display */
87 
88  totlat=maximum_latitude-minimum_latitude+2.0;
89 
90  hrap=LatLongToHrap((float)maximum_latitude,(float)center_longitude-5);
91 
92  cx=(int)hrap.x+1;
93  cy=(int)hrap.y;
94 
95  if(cx > maxi)
96  maxi=cx;
97 
98  if(cy > maxj)
99  maxj=cy;
100 
101  if(cx < mini)
102  mini=cx;
103 
104  if(cy < minj)
105  minj=cy;
106 
107  hrap=LatLongToHrap((float)maximum_latitude,(float)center_longitude+5);
108 
109  cx=(int)hrap.x+1;
110  cy=(int)hrap.y;
111 
112  if(cx > maxi)
113  maxi=cx;
114 
115  if(cy > maxj)
116  maxj=cy;
117 
118  if(cx < mini)
119  mini=cx;
120 
121  if(cy < minj)
122  minj=cy;
123 
124  hrap=LatLongToHrap((float)minimum_latitude,(float)center_longitude-5);
125  cx=(int)hrap.x+1;
126  cy=(int)hrap.y;
127 
128  if(cx > maxi)
129  maxi=cx;
130 
131  if(cy > maxj)
132  maxj=cy;
133 
134  if(cx < mini)
135  mini=cx;
136 
137  if(cy < minj)
138  minj=cy;
139 
140  hrap=LatLongToHrap((float)minimum_latitude,(float)center_longitude+5);
141 
142  cx=(int)hrap.x+1;
143  cy=(int)hrap.y;
144 
145  if(cx > maxi)
146  maxi=cx;
147 
148  if(cy > maxj)
149  maxj=cy;
150 
151  if(cx < mini)
152  mini=cx;
153 
154  if(cy < minj)
155  minj=cy;
156 
157 /*allocate necessary space */
158 
159 hrap_grid->hrap_minx=mini;
160 hrap_grid->hrap_miny=minj;
161 hrap_grid->maxi=maxi-mini;
162 hrap_grid->maxj=maxj-minj;
163 
164 maxi=hrap_grid->maxi;
165 maxj=hrap_grid->maxj;
166 
167 grid->value=(float **) calloc(maxi,sizeof(float *));
168 if(grid->value==NULL) {
169 
170  printf("could not allocate grid space\n");
171  exit(1);
172 
173  }
174 
175 pcp->value=(short int **) calloc(maxi,sizeof(short int *));
176 if(pcp->value==NULL) {
177 
178  printf("could not allocate pcp space\n");
179  exit(1);
180 
181  }
182 
183 spf->value=(short int **) calloc(maxi,sizeof(short int *));
184 if(spf->value==NULL) {
185 
186  printf("could not allocate pcp space\n");
187  exit(1);
188 
189  }
190 
191 
192 hrap_grid->coord=(struct coord**) calloc(maxi,sizeof(struct coord *));
193 
194 if(hrap_grid->coord==NULL) {
195 
196  printf("no memory for hrap array\n");
197  exit(1);
198 
199  }
200 
201 for(i=0;i<maxi;i++) {
202 
203  hrap_grid->coord[i]=(struct coord *) calloc(maxj,sizeof(struct coord));
204 
205 
206  if(hrap_grid->coord[i]==NULL) {
207 
208  printf("no memory for hrap array\n");
209  exit(1);
210 
211  }
212 
213  }
214 
215 
216  for(i=0;i<maxi;i++) {
217 
218  grid->value[i]=(float *) calloc(maxj,sizeof(float));
219 
220  if(grid->value[i]==NULL) {
221 
222  printf("no memory for grid array\n");
223  exit(1);
224 
225  }
226 
227  }
228 
229  for(i=0;i<maxi;i++) {
230 
231  pcp->value[i]=(short int *) calloc(maxj,sizeof(short int));
232 
233  if(pcp->value[i]==NULL) {
234 
235  printf("no memory for pcp array\n");
236  exit(1);
237 
238  }
239 
240  }
241 
242  for(i=0;i<maxi;i++) {
243 
244  spf->value[i]=(short int *) calloc(maxj,sizeof(short int));
245 
246  if(spf->value[i]==NULL) {
247 
248  printf("no memory for pcp array\n");
249  exit(1);
250 
251  }
252 
253  }
254 
255 
256 for (i=0; i < hrap_grid->maxi; i++)
257  {
258 
259 for (k=0; k < hrap_grid->maxj ;k++)
260  {
261 
262 
263  irap.x=mini+i;
264  irap.y=minj+k;
265 
266  hrap=HrapToLatLong(irap);
267 
268  r=dval.a * cos(hrap.y*conv)/(1+sin(hrap.y*conv))
269  * cos((hrap.x-dval.lo-90)*conv) + dval.xo +.5;
270 
271  hrap_grid->coord[i][k].x=r;
272 
273  s=dval.a * cos(hrap.y*conv)/(1+sin(hrap.y*conv))
274  * sin((hrap.x-dval.lo-90)*conv) + dval.yo + .5;
275 
276  hrap_grid->coord[i][k].y=s;
277 
278  }
279 
280  }
281 
282 return;
283 
284 }
285 
286 
287 
288 
289 
290 
291 
292 
293 
294 
295 
static int i
Widget top_level
Definition: display_rec.c:5
void get_hrap_coord(double maximum_latitude, double minimum_latitude, double center_longitude)
Definition: get_hrap_coord.c:4
struct HRAP LatLongToHrap(float lat, float lon)
Definition: hrap.c:105
struct HRAP HrapToLatLong(struct HRAP hrap)
Definition: hrap.c:40
printf("fbuf is %s\n", fbuf)
fp
Definition: make_NEXRAD.c:339
double lat
Definition: mapp2h.h:41
double lon
Definition: mapp2h.h:41
int k
Definition: mapp2h.h:48
HRAP ll
Definition: mapp2h.h:53
HRAP hrap
Definition: mapp2h.h:53
char grid_file[100]
Definition: mapper.c:17
char station_list_file[256]
Definition: mapper.c:18
Widget scrollbar
Definition: mapper.c:185
int posit
Definition: mapper.c:93
struct pcp * spf
Definition: mapper.c:141
struct grid * grid
Definition: mapper.c:127
Widget s_text
Definition: mapper.c:185
float value
struct pcp * pcp
Definition: mapper.c:140
struct hrap_grid * hrap_grid
Definition: mapper.c:142
Definition: mapp2h.h:25
float y
Definition: mapp2h.h:26
float x
Definition: mapp2h.h:26
Definition: misc.h:495
short int y
Definition: misc.h:498
short int x
Definition: misc.h:497
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
Definition: misc.h:538
float ** value
Definition: misc.h:540
short int hrap_miny
Definition: misc.h:583
short int hrap_minx
Definition: misc.h:582
short int maxi
Definition: misc.h:580
short int maxj
Definition: misc.h:581
struct coord ** coord
Definition: misc.h:584
Definition: misc.h:596
short int ** value
Definition: misc.h:599