Mapper
get_basin_data.c
Go to the documentation of this file.
1
#include "
prototypes.h
"
2
3
void
get_basin_data
(
char
*basin_file,
char
*
hrap_file
)
4
5
{
6
7
extern
struct
map
map
[500];
8
extern
struct
dval
dval
;
9
FILE *fr,*
fp
;
10
char
*p,ibuf[100];
11
int
ib
,ier,l,numpts,ip,x,y,ip2,ip3,ip4,zones,
i
,maxib,dum,mm;
12
double
lat
,
lon
;
13
long
r,s;
14
float
conv=.0174;
15
16
if
(basin_file[0]==0 ) {
17
18
printf
(
"no basin_file specified\n"
);
19
exit(1);
20
21
}
22
23
if
(
hrap_file
[0]==0 ) {
24
25
printf
(
"no basin_file specified\n"
);
26
exit(1);
27
28
}
29
30
fr=fopen(basin_file,
"r"
);
31
32
if
(fr==NULL) {
33
34
printf
(
"could not open basin_file %s\n"
,basin_file);
35
36
exit(1);
37
38
}
39
40
fp
=fopen(
hrap_file
,
"r"
);
41
42
if
(
fp
==NULL) {
43
44
printf
(
"could not open hrap_file %s\n"
,
hrap_file
);
45
46
exit(1);
47
48
}
49
50
ib
=0;
51
52
for
(;;) {
53
54
p=fgets(ibuf,80,fr);
55
56
if
(p==NULL)
57
break
;
58
59
p=strchr(ibuf,
'\n'
);
60
if
(p!=NULL)
61
*p=0;
62
63
ier=sscanf(ibuf,
"%d %d %s"
,&numpts,&dum,
map
[
ib
].hb5);
64
65
map
[
ib
].
basin_points
=numpts;
66
67
map
[
ib
].
basin
=calloc(numpts,
sizeof
(XPoint));
68
69
for
(l=0;l<numpts;l++) {
70
71
p=fgets(ibuf,80,fr);
72
73
if
(p==NULL)
74
break
;
75
76
ier=sscanf(ibuf,
"%lf %lf"
,&
lon
,&
lat
);
77
78
lon
=-
lon
;
79
80
r=
dval
.
a
* cos(
lat
*conv)/(1+sin(
lat
*conv))
81
* cos((
lon
-
dval
.
lo
-90)*conv) +
dval
.
xo
+.5;
82
83
s=
dval
.
a
* cos(
lat
*conv)/(1+sin(
lat
*conv))
84
* sin((
lon
-
dval
.
lo
-90)*conv) +
dval
.
yo
+ .5;
85
86
map
[
ib
].
basin
[l].x=r;
87
map
[
ib
].
basin
[l].y=s;
88
89
}
90
91
p=fgets(ibuf,80,fr);
92
93
ib
++;
94
95
}
96
97
map
[
ib
].
hb5
[0]=0;
98
maxib=
ib
;
99
100
for
(
ib
=0;
ib
<maxib;
ib
++) {
101
102
p=fgets(ibuf,80,
fp
);
103
104
if
(p==NULL)
105
break
;
106
107
ier=sscanf(ibuf,
"%d %d"
,&numpts,&zones);
108
109
map
[
ib
].
hrap_points
=numpts;
110
111
map
[
ib
].
hrap_data
=calloc(numpts,
sizeof
(
struct
hrap_data
));
112
113
for
(mm=0;mm<4;mm++)
114
map
[
ib
].zones[mm]=-1;
115
116
for
(l=0;l<numpts;l++) {
117
118
for
(mm=0;mm<4;mm++)
119
map
[
ib
].
hrap_data
[l].zone[mm]=-1;
120
121
p=fgets(ibuf,100,
fp
);
122
123
if
(p==NULL)
124
break
;
125
126
ier=sscanf(ibuf,
"%d %d %d %d %d %d\n"
,&x,&y,&ip,&ip2,&ip3,&ip4);
127
128
if
(ip < 0 || ip > 4) {
129
130
printf
(
"hrap error\n"
);
131
exit(1);
132
133
}
134
135
map
[
ib
].
hrap_data
[l].
x
=x;
136
map
[
ib
].
hrap_data
[l].
y
=y;
137
map
[
ib
].
hrap_data
[l].
zone
[ip-1]=1;
138
map
[
ib
].
zones
[0]=1;
139
140
if
(ier>=4) {
141
142
if
(ip2 < 0 || ip2 > 4) {
143
144
printf
(
"hrap error\n"
);
145
exit(1);
146
147
}
148
149
map
[
ib
].
hrap_data
[l].
zone
[ip2-1]=1;
150
map
[
ib
].
zones
[ip2-1]=1;
151
152
}
153
154
155
if
(ier>=5) {
156
157
if
(ip3 < 0 || ip3 > 4) {
158
159
printf
(
"hrap error\n"
);
160
exit(1);
161
162
}
163
164
map
[
ib
].
hrap_data
[l].
zone
[ip3-1]=1;
165
map
[
ib
].
zones
[ip3-1]=1;
166
167
}
168
169
if
(ier>=6) {
170
171
if
(ip4 < 0 || ip4 > 4) {
172
173
printf
(
"hrap error\n"
);
174
exit(1);
175
176
}
177
178
map
[
ib
].
hrap_data
[l].
zone
[ip4-1]=1;
179
map
[
ib
].
zones
[ip4-1]=1;
180
181
}
182
183
}
184
185
186
for
(
i
=0;
i
<51;
i
++)
187
map
[
ib
].maps_done[
i
]=-1;
188
189
190
}
191
192
fclose
(fr);
193
fclose
(
fp
);
194
195
return
;
196
197
}
198
199
i
static int i
Definition:
get_apps_defaults.c:110
get_basin_data
void get_basin_data(char *basin_file, char *hrap_file)
Definition:
get_basin_data.c:3
fclose
fclose(fp)
printf
printf("fbuf is %s\n", fbuf)
fp
fp
Definition:
make_NEXRAD.c:339
lat
double lat
Definition:
mapp2h.h:41
lon
double lon
Definition:
mapp2h.h:41
hrap_file
char hrap_file[100]
Definition:
mapper.c:19
prototypes.h
ib
ib
Definition:
shleap.cc:46
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
hrap_data
Definition:
misc.h:228
hrap_data::zone
int zone[4]
Definition:
misc.h:232
hrap_data::x
int x
Definition:
misc.h:230
hrap_data::y
int y
Definition:
misc.h:231
map
Definition:
misc.h:236
map::hb5
char hb5[10]
Definition:
misc.h:238
map::hrap_data
struct hrap_data * hrap_data
Definition:
misc.h:245
map::basin_points
int basin_points
Definition:
misc.h:240
map::hrap_points
int hrap_points
Definition:
misc.h:244
map::zones
int zones[4]
Definition:
misc.h:241
map::basin
XPoint * basin
Definition:
misc.h:243
Generated by
1.9.1