Mapper
libraries
common
time_series.c
Go to the documentation of this file.
1
#include "
prototypes.h
"
2
3
void
time_series
(
int
win_x,
int
win_y,
unsigned
int
win_button,
char
*disp)
4
5
{
6
extern
Cursor
watch_cursor
;
7
extern
Cursor
dotbox_cursor
;
8
extern
Widget
top_level
;
9
extern
Window
window
;
10
extern
Widget
drawing_area
;
11
extern
Display *
display
;
12
int
isave
;
13
extern
struct
pdata
pdata
[10];
14
extern
int
qflag[10];
15
extern
struct
station
station
[3000];
16
extern
int
max_stations
;
17
extern
int
npoint
[2],
zoom
;
18
extern
struct
display_set
display_set
[4];
19
extern
struct
dval
dval
;
20
extern
int
dflag
[10];
21
extern
int
pcpn_day
,
pcpn_time
;
22
extern
int
pcpn_time_step
;
23
Widget rowcol,rowcol3,pbutton,rowcol1,
dialog
,sep;
24
float
conv=.0174;
25
int
MY
=10;
26
Arg
args
[10];
27
Cardinal argcount;
28
int
i
;
29
double
testdist,maxdist;
30
int
x,y;
31
XmString t;
32
Dimension
width
,
height
;
33
signed
long
XSIZE
,
YSIZE
;
34
float
xrat
,
yrat
,
mult
;
35
int
xmin
,
xmax
,
ymin
,
ymax
,
display_flag
,
xcen
,
ycen
,h;
36
long
lint1
,
lint2
;
37
float
dmult
,
lat
,
lon
;
38
char
cmd
[100],pc[10],
buf
[100],muf[10];
39
long
r,s;
40
int
time_pos,naflag,m;
41
char
tbuf[100];
42
43
if
(
pcpn_time_step
==0)
44
time_pos=
pcpn_time
;
45
46
else
47
time_pos=4;
48
49
/* need to set flag to plot */
50
51
/* need to set resource in widget also */
52
53
XtSetArg(
args
[0],XtNwidth,&
width
);
54
XtSetArg(
args
[1],XtNheight,&
height
);
55
XtGetValues(
drawing_area
,
args
,2);
56
57
XSIZE
=(long)
width
*10L;
58
YSIZE
=(long)
height
*10L;
59
60
xrat
=(float)
XSIZE
/(
float
)12800;
61
yrat
=(float)
YSIZE
/(
float
)9600;
62
63
if
(
xrat
<
yrat
)
64
mult
=
xrat
;
65
66
else
67
mult
=
yrat
;
68
69
display_flag
=0;
70
h=0;
71
72
dmult
=
display_set
[
display_flag
].
dmult
[h];
73
xmin
=
display_set
[
display_flag
].
xmin
[h];
74
xmax
=
display_set
[
display_flag
].
xmax
[h];
75
ymin
=
display_set
[
display_flag
].
ymin
[h];
76
ymax
=
display_set
[
display_flag
].
ymax
[h];
77
xcen
=
display_set
[
display_flag
].
xcen
[h];
78
ycen
=
display_set
[
display_flag
].
ycen
[h];
79
80
lint1
=(long)
npoint
[0]*(
long
)
MY
;
81
lint2
=(long)
npoint
[1]*(
long
)
MY
;
82
83
x=win_x;
84
y=win_y;
85
86
if
(
zoom
==1) {
87
88
win_x=x*
MY
/
mult
;
89
win_y=y*
MY
/
mult
;
90
91
}
92
93
else
{
94
95
96
win_x=((x*
MY
-
xcen
)/
zoom
+
lint1
)/
mult
;
97
win_y=((y*
MY
-
ycen
)/
zoom
+
lint2
)/
mult
;
98
99
}
100
101
102
if
(
zoom
==1) {
103
104
x=(win_x*
mult
)/
MY
;
105
y=(win_y*
mult
)/
MY
;
106
107
}
108
109
else
{
110
111
x=(((win_x*
mult
)-
lint1
)*
zoom
+
xcen
)/
MY
;
112
y=(((win_y*
mult
)-
lint2
)*
zoom
+
ycen
)/
MY
;
113
114
}
115
116
isave
=-1;
117
maxdist=9999;
118
119
for
(
i
=0;
i
<
max_stations
;
i
++){
120
121
lat
=
station
[
i
].
lat
;
122
lon
=
station
[
i
].
lon
;
123
124
if
(strncmp(&
station
[
i
].parm[4],
"P"
,1)==0 &&
dflag
[1] != 1)
125
continue
;
126
127
if
(strncmp(&
station
[
i
].parm[4],
"M"
,1)==0 &&
dflag
[2] != 1)
128
continue
;
129
130
if
(strncmp(&
station
[
i
].parm[4],
"R"
,1)==0 &&
dflag
[3] != 1)
131
continue
;
132
133
if
(strncmp(&
station
[
i
].parm[4],
"G"
,1)==0 &&
dflag
[4] != 1)
134
continue
;
135
136
if
(strncmp(&
station
[
i
].parm[4],
"Z"
,1)==0 &&
dflag
[5] != 1)
137
continue
;
138
139
for
(m=0;m<8;m++) {
140
141
if
((m==
pdata
[
pcpn_day
].
stn
[
i
].frain[time_pos].
qual
&&
142
qflag[m]==1) ||
143
(m==(
pdata
[
pcpn_day
].
stn
[
i
].
frain
[time_pos].
qual
-100) &&
144
qflag[m]==1) )
145
break
;
146
147
}
148
149
if
(m==8)
150
continue
;
151
152
r=
dval
.
a
* cos(
lat
*conv)/(1+sin(
lat
*conv))
153
* cos((
lon
-
dval
.
lo
-90)*conv) +
dval
.
xo
+.5;
154
155
s=
dval
.
a
* cos(
lat
*conv)/(1+sin(
lat
*conv))
156
* sin((
lon
-
dval
.
lo
-90)*conv) +
dval
.
yo
+ .5;
157
158
testdist= pow((
double
)(win_x-r),2) + pow((
double
)(win_y-s),2);
159
testdist= pow(testdist,.5);
160
161
if
(testdist < maxdist) {
162
163
isave
=
i
;
164
maxdist=testdist;
165
166
}
167
168
}
169
170
if
(
isave
==-1)
171
return
;
172
173
strcpy(
cmd
,
"rsh wasatch -l oper /usr/local/bin/subdisplay "
);
174
strcat(
cmd
,
station
[
isave
].hb5);
175
strcat(
cmd
,
" "
);
176
strcpy(pc,
station
[
isave
].parm);
177
178
pc[3]=
'R'
;
179
if
(pc[4]!=
'Z'
) {
180
181
pc[1]=
'C'
;
182
pc[2]=
'I'
;
183
184
}
185
186
else
187
pc[2]=
'D'
;
188
189
strcat(
cmd
,pc);
190
strcat(
cmd
,
" "
);
191
192
strcat(
cmd
,
"15 "
);
193
sprintf
(tbuf,
"-display %s"
,disp);
194
strcat(
cmd
,tbuf);
195
196
XDefineCursor(
display
,
window
,
watch_cursor
);
197
XmUpdateDisplay(
top_level
);
198
199
XUndefineCursor(
display
,
window
);
200
XDefineCursor(
display
,
window
,
dotbox_cursor
);
201
system
(
cmd
);
202
203
}
204
205
206
i
static int i
Definition:
get_apps_defaults.c:110
display
Display * display
Definition:
mapper.c:159
qual
char qual[10]
Definition:
subdisplay.c:33
top_level
Widget top_level
Definition:
display_rec.c:5
dialog
Widget dialog
Definition:
display_rec.c:5
isave
int isave
Definition:
edit_stations.c:8
mult
float mult
Definition:
edit_stations.c:6
buf
struct stat buf
Definition:
is_file_closed.c:8
time_series
void time_series(int win_x, int win_y, unsigned int win_button, char *disp)
Definition:
time_series.c:3
sprintf
sprintf(fbuf,"/usr/mapper/nexrad/ngrid.%02d-%02d-%02d-%02d", year, month, day, hour)
system
system(tarbuf)
lat
double lat
Definition:
mapp2h.h:41
lon
double lon
Definition:
mapp2h.h:41
pcpn_time
int pcpn_time
Definition:
mapper.c:83
pcpn_time_step
int pcpn_time_step
Definition:
mapper.c:75
max_stations
int max_stations
Definition:
mapper.c:64
dflag
int dflag[10]
Definition:
mapper.c:106
pcpn_day
int pcpn_day
Definition:
mapper.c:83
dotbox_cursor
Cursor dotbox_cursor
Definition:
mapper.c:155
window
Window window
Definition:
mapper.c:190
watch_cursor
Cursor watch_cursor
Definition:
mapper.c:153
display_flag
int display_flag
Definition:
mapper.c:100
xrat
float xrat
Definition:
plot_qpf_legend.c:20
xmax
long xmax
Definition:
plot_qpf_legend.c:26
yrat
float yrat
Definition:
plot_qpf_legend.c:20
ymax
long ymax
Definition:
plot_qpf_legend.c:26
lint1
long lint1
Definition:
plot_qpf_legend.c:26
xcen
signed long xcen
Definition:
plot_qpf_legend.c:27
height
Dimension height
Definition:
plot_qpf_legend.c:22
ycen
signed long ycen
Definition:
plot_qpf_legend.c:27
width
Dimension width
Definition:
plot_qpf_legend.c:22
lint2
long lint2
Definition:
plot_qpf_legend.c:26
args
Arg args[10]
Definition:
plot_qpf_legend.c:23
xmin
long xmin
Definition:
plot_qpf_legend.c:26
XSIZE
unsigned long XSIZE
Definition:
plot_qpf_legend.c:24
MY
int MY
Definition:
plot_qpf_legend.c:19
zoom
int zoom
Definition:
plot_qpf_legend.c:9
dmult
float dmult
Definition:
plot_qpf_legend.c:20
drawing_area
Widget drawing_area
Definition:
mapper.c:185
npoint
int npoint[2]
Definition:
mapper.c:105
ymin
long ymin
Definition:
plot_qpf_legend.c:26
YSIZE
unsigned long YSIZE
Definition:
plot_qpf_legend.c:24
prototypes.h
cmd
char cmd[100]
Definition:
send_afos.c:7
display_set
Definition:
misc.h:603
display_set::dmult
float dmult[4]
Definition:
misc.h:613
display_set::xmin
long xmin[4]
Definition:
misc.h:607
display_set::xmax
long xmax[4]
Definition:
misc.h:609
display_set::ymax
long ymax[4]
Definition:
misc.h:610
display_set::ymin
long ymin[4]
Definition:
misc.h:608
display_set::ycen
long ycen[4]
Definition:
misc.h:612
display_set::xcen
long xcen[4]
Definition:
misc.h:611
dval
Definition:
misc.h:470
dval::lo
double lo
Definition:
misc.h:475
dval::a
double a
Definition:
misc.h:472
dval::yo
double yo
Definition:
misc.h:474
dval::xo
double xo
Definition:
misc.h:473
pdata
Definition:
misc.h:280
pdata::stn
struct stn stn[1500]
Definition:
misc.h:286
rain::qual
short int qual
Definition:
misc.h:258
station
Definition:
misc.h:296
station::lat
float lat
Definition:
misc.h:303
station::lon
float lon
Definition:
misc.h:304
stn
Definition:
misc.h:264
stn::frain
struct rain frain[5]
Definition:
misc.h:267
Generated by
1.9.1