-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrainbow.h
67 lines (57 loc) · 1.61 KB
/
rainbow.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#ifndef INCLUDE_RAINBOW_H
#define INCLUDE_RAINBOW_H
/* Control characters used in Rainbow data header */
#define SOH 0x01 /* Start of header: first character in Rainbow file. */
#define ETX 0x03 /* End of text: end of header. */
#define CR 0x0d /* Carriage return: end of line, same as '\r'. */
#define ETB 0x17 /* End of transmission block: marks header sections. */
/* Other constants */
#define SCAN_DATA 2
#define VOLUME_SCAN 100
/* Declarations */
struct elev_params {
float elev_angle;
float az_rate;
int prf_high;
int prf_low;
float maxrange;
};
typedef struct {
int filetype;
int product;
int datatype;
int compressed;
char radarname[9];
int month;
int day;
int year;
int hour;
int minute;
int sec;
float lat; /* radar latitude, degrees */
float lon; /* radar longitude, degrees */
int nsweeps;
int az_start; /* degrees */
int az_stop; /* degrees */
float az_step; /* degrees */
float range_start; /* km */
float range_stop; /* km */
float range_step; /* km */
int nbins;
float bin_resolution; /* km */
int nvalues;
int pulse_width_code;
int zdata;
int vdata;
int wdata;
int unfolding;
int cdata;
int ddata;
int uzdata;
struct elev_params *elev_params[20];
} Rainbow_hdr;
/* Function prototypes */
Radar *RSL_rainbow_to_radar(char *infile);
int rainbow_data_to_radar(Radar *radar, Rainbow_hdr rainbow_hdr, FILE *fp);
void read_rainbow_header(Rainbow_hdr *rainbow_header, FILE *fp);
#endif