Mapper
get_topo.c
Go to the documentation of this file.
1
#include "
prototypes.h
"
2
3
void
get_topo
(
char
*
fname
)
4
5
{
6
7
int
i
,
j
,ier,maxj,maxi,max_value,
k
;
8
float
lat
,
lon
;
9
extern
struct
top
*
topo
;
10
FILE *
fp
;
11
char
*p,kbuf[10000];
12
float
max_lat
,
max_lon
,
delta_lat
,
delta_lon
,
total_lat
,
total_lon
;
13
14
topo
=(
struct
top
*) calloc(1,
sizeof
(
struct
top
));
15
if
(
topo
==NULL) {
16
17
printf
(
"could not allocate topo space\n"
);
18
exit(1);
19
20
}
21
22
max_value=0;
23
24
fp
=fopen(
fname
,
"r"
);
25
26
if
(
fp
==NULL) {
27
28
printf
(
"could not open %s\n"
,
fname
);
29
exit(1);
30
31
}
32
33
p=fgets(kbuf,80,
fp
);
34
35
ier=sscanf(kbuf,
"%f %f %f %f %f %f"
,&
max_lat
,&
max_lon
,&
total_lat
,&
total_lon
,&
delta_lat
,&
delta_lon
);
36
delta_lat
=
delta_lat
/60.;
37
delta_lon
=
delta_lon
/60.;
38
39
maxi
=
total_lon
/
delta_lon
+1;
40
maxj
=
total_lat
/
delta_lat
+1;
41
42
topo
->
maxi
=
maxi
;
43
topo
->
maxj
=
maxj
;
44
topo
->
max_lat
=
max_lat
;
45
topo
->
max_lon
=
max_lon
;
46
topo
->
total_lat
=
total_lat
;
47
topo
->
total_lon
=
total_lon
;
48
topo
->
delta_lat
=
delta_lat
;
49
topo
->
delta_lon
=
delta_lon
;
50
51
topo
->
value
=(
short
int
**) calloc(
maxi
,
sizeof
(
short
int
*));
52
53
if
(
topo
->
value
==NULL) {
54
55
printf
(
"no memory for topo array\n"
);
56
exit(1);
57
58
}
59
60
for
(
i
=0;
i
<
maxi
;
i
++) {
61
62
topo
->
value
[
i
]=(
short
int
*) calloc(
maxj
,
sizeof
(
short
int
));
63
64
if
(
topo
->
value
[
i
]==NULL) {
65
66
printf
(
"no memory for topo array\n"
);
67
exit(1);
68
69
}
70
71
}
72
73
for
(
j
=0;
j
<
maxj
;
j
++) {
74
75
fread(kbuf,
sizeof
(
char
),
maxi
*4,
fp
);
76
77
k
=0;
78
79
for
(
i
=0;
i
<
maxi
;
i
++) {
80
81
topo
->
value
[
i
][
j
]=atoi(&kbuf[
k
]);
82
83
k
=
k
+4;
84
85
}
86
87
}
88
89
fclose
(
fp
);
90
printf
(
"return from topo\n"
);
91
return
;
92
93
}
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
topo
struct top * topo
Definition:
build_hrap.c:3
i
static int i
Definition:
get_apps_defaults.c:110
get_topo
void get_topo(char *fname)
Definition:
get_topo.c:3
fclose
fclose(fp)
printf
printf("fbuf is %s\n", fbuf)
fp
fp
Definition:
make_NEXRAD.c:339
j
int j
Definition:
mapp2h.h:48
lat
double lat
Definition:
mapp2h.h:41
lon
double lon
Definition:
mapp2h.h:41
k
int k
Definition:
mapp2h.h:48
max_lat
double max_lat
Definition:
mapper.c:22
prototypes.h
fname
char fname[100]
Definition:
send_afos.c:6
top
Definition:
misc.h:509
top::max_lon
float max_lon
Definition:
misc.h:515
top::total_lon
float total_lon
Definition:
misc.h:517
top::delta_lon
float delta_lon
Definition:
misc.h:519
top::maxi
int maxi
Definition:
misc.h:512
top::maxj
int maxj
Definition:
misc.h:513
top::delta_lat
float delta_lat
Definition:
misc.h:518
top::total_lat
float total_lat
Definition:
misc.h:516
topo
Definition:
misc.h:523
topo::delta_lat
float delta_lat
Definition:
misc.h:533
topo::max_lat
float max_lat
Definition:
misc.h:529
topo::maxi
int maxi
Definition:
misc.h:527
topo::total_lat
float total_lat
Definition:
misc.h:531
topo::delta_lon
float delta_lon
Definition:
misc.h:534
topo::value
short int ** value
Definition:
misc.h:526
topo::max_lon
float max_lon
Definition:
misc.h:530
topo::total_lon
float total_lon
Definition:
misc.h:532
topo::maxj
int maxj
Definition:
misc.h:528
Generated by
1.9.1