Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Jonny Schäfer
radolan
Commits
8daceb4b
Commit
8daceb4b
authored
Sep 14, 2016
by
Jonny Schäfer
Browse files
Add Interval field and parsing
parent
2d3702b0
Changes
3
Hide whitespace changes
Inline
Side-by-side
header.go
View file @
8daceb4b
...
...
@@ -76,6 +76,20 @@ func (c *Composite) parseHeader(reader *bufio.Reader) error {
c
.
ForecastTime
=
c
.
CaptureTime
.
Add
(
time
.
Duration
(
min
)
*
time
.
Minute
)
}
// Parse Interval - Example "INT 5" or "INT1008"
if
intr
,
ok
:=
section
[
"INT"
];
ok
{
min
:=
0
if
_
,
err
:=
fmt
.
Sscanf
(
intr
,
"%d"
,
&
min
);
err
!=
nil
{
return
newError
(
"parseHeader"
,
"could not parse interval: "
+
err
.
Error
())
}
c
.
Interval
=
time
.
Duration
(
min
)
*
time
.
Minute
switch
c
.
Product
{
case
"W1"
,
"W2"
,
"W3"
,
"W4"
:
c
.
Interval
*=
10
}
}
// Parse Dimensions - Example: "GP 450x 450" or "BG460460" or "GP 1500x1400"
dim
:=
section
[
"GP"
]
if
bg
,
ok
:=
section
[
"BG"
];
ok
{
...
...
header_test.go
View file @
8daceb4b
...
...
@@ -16,6 +16,7 @@ type headerTestcase struct {
expProduct
string
expCaptureTime
time
.
Time
expForecastTime
time
.
Time
expInterval
time
.
Duration
expDx
int
expDy
int
expDataLength
int
...
...
@@ -65,6 +66,7 @@ func TestParseHeaderFZ(t *testing.T) {
ht
.
expProduct
=
"FZ"
ht
.
expCaptureTime
,
err1
=
time
.
Parse
(
time
.
RFC1123
,
"Thu, 28 Jul 2016 23:05:00 CEST"
)
ht
.
expForecastTime
,
err2
=
time
.
Parse
(
time
.
RFC1123
,
"Fri, 29 Jul 2016 00:45:00 CEST"
)
ht
.
expInterval
=
5
*
time
.
Minute
ht
.
expDx
=
450
ht
.
expDy
=
450
ht
.
expDataLength
=
405160
-
154
// BY - header_etx_length
...
...
@@ -106,6 +108,12 @@ func testParseHeader(t *testing.T, ht *headerTestcase) {
dummy
.
ForecastTime
.
String
(),
ht
.
expForecastTime
.
String
())
}
// Interval
if
dummy
.
Interval
!=
ht
.
expInterval
{
t
.
Errorf
(
"%s.parseHeader(): Interval: %#v; expected: %#v"
,
ht
.
expProduct
,
dummy
.
Interval
.
String
(),
ht
.
expInterval
.
String
())
}
// Dx Dy
if
dummy
.
Dx
!=
ht
.
expDx
||
dummy
.
Dy
!=
ht
.
expDy
{
t
.
Errorf
(
"%s.parseHeader(): Dx: %d Dy: %d; expected Dx: %d Dy: %d"
,
ht
.
expProduct
,
...
...
radolan.go
View file @
8daceb4b
...
...
@@ -62,6 +62,7 @@ type Composite struct {
CaptureTime
time
.
Time
ForecastTime
time
.
Time
Interval
time
.
Duration
Data
[][]
RVP6
// rvp-6 data for each point [y][x]
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment