diff --git a/test/bom_IDN11060.xml b/test/bom_IDN11060.xml
deleted file mode 100644
index 9c433da6..00000000
--- a/test/bom_IDN11060.xml
+++ /dev/null
@@ -1,8716 +0,0 @@
-
-
-
-
- IDN11060
- 2019-04-30T10:56:27Z
- 2019-04-30T20:56:27+10:00
- 2019-04-30T10:56:27Z
- 2019-05-01T10:56:27Z
- 2019-04-30T17:00:00+10:00
- 2019-05-07T23:59:59+10:00
- 2019-04-30T18:25:00Z
- 2019-05-01T04:25:00+10:00
- O
- WSP
- FPR
- F
- UPD
-
-
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 17
- 25
- Partly cloudy.
- 10%
-
-
- 3
- 17
- 26
- Partly cloudy.
- 10%
-
-
- 12
- 5 to 8 mm
- 18
- 24
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 13
- 23
- Mostly sunny.
- 20%
-
-
- 11
- 1 to 5 mm
- 13
- 20
- Shower or two.
- 50%
-
-
- 11
- 0 to 2 mm
- 15
- 20
- Shower or two.
- 50%
-
-
- 3
- 13
- 22
- Partly cloudy.
- 20%
-
-
-
-
- 3
- Mostly clear.
- 5%
-
-
- 3
- 17
- 23
- Partly cloudy.
- 10%
-
-
- 3
- 18
- 24
- Partly cloudy.
- 10%
-
-
- 12
- 5 to 8 mm
- 19
- 22
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 14
- 21
- Mostly sunny.
- 20%
-
-
- 11
- 1 to 5 mm
- 14
- 19
- Shower or two.
- 50%
-
-
- 11
- 0 to 3 mm
- 15
- 18
- Shower or two.
- 50%
-
-
- 3
- 13
- 20
- Partly cloudy.
- 20%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 14
- 25
- Partly cloudy.
- 10%
-
-
- 3
- 15
- 27
- Partly cloudy.
- 10%
-
-
- 12
- 5 to 8 mm
- 16
- 24
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 11
- 23
- Mostly sunny.
- 10%
-
-
- 3
- 0 to 0.4 mm
- 11
- 20
- Partly cloudy.
- 30%
-
-
- 3
- 0 to 0.4 mm
- 12
- 20
- Partly cloudy.
- 30%
-
-
- 3
- 9
- 22
- Mostly sunny.
- 10%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 10
- 14
- 25
- Morning fog/smoke. Partly cloudy.
- 10%
-
-
- 3
- 15
- 28
- Partly cloudy.
- 20%
-
-
- 12
- 4 to 6 mm
- 17
- 24
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 11
- 23
- Mostly sunny.
- 5%
-
-
- 3
- 11
- 21
- Partly cloudy.
- 20%
-
-
- 3
- 12
- 21
- Partly cloudy.
- 20%
-
-
- 3
- 10
- 23
- Mostly sunny.
- 10%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 17
- 24
- Partly cloudy.
- 10%
-
-
- 3
- 18
- 25
- Partly cloudy.
- 10%
-
-
- 12
- 5 to 8 mm
- 19
- 23
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 14
- 22
- Mostly sunny.
- 20%
-
-
- 11
- 1 to 5 mm
- 13
- 19
- Shower or two.
- 50%
-
-
- 11
- 0 to 3 mm
- 15
- 19
- Shower or two.
- 50%
-
-
- 3
- 13
- 21
- Mostly sunny.
- 20%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 17
- 25
- Partly cloudy.
- 10%
-
-
- 3
- 17
- 26
- Partly cloudy.
- 10%
-
-
- 12
- 5 to 8 mm
- 18
- 24
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 14
- 23
- Mostly sunny.
- 20%
-
-
- 11
- 1 to 5 mm
- 14
- 20
- Shower or two.
- 50%
-
-
- 11
- 0 to 2 mm
- 15
- 20
- Shower or two.
- 50%
-
-
- 3
- 13
- 22
- Partly cloudy.
- 20%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 16
- 23
- Partly cloudy.
- 10%
-
-
- 3
- 16
- 25
- Partly cloudy.
- 10%
-
-
- 12
- 5 to 8 mm
- 17
- 23
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 12
- 21
- Mostly sunny.
- 20%
-
-
- 11
- 0 to 4 mm
- 12
- 19
- Shower or two.
- 50%
-
-
- 11
- 0 to 2 mm
- 13
- 19
- Shower or two.
- 50%
-
-
- 3
- 11
- 20
- Mostly sunny.
- 20%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 10
- 13
- 25
- Morning fog/smoke. Partly cloudy.
- 10%
-
-
- 3
- 14
- 27
- Partly cloudy.
- 10%
-
-
- 12
- 4 to 8 mm
- 16
- 24
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 10
- 23
- Mostly sunny.
- 10%
-
-
- 3
- 10
- 21
- Partly cloudy.
- 20%
-
-
- 3
- 0 to 0.2 mm
- 11
- 20
- Partly cloudy.
- 30%
-
-
- 3
- 9
- 23
- Mostly sunny.
- 10%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 14
- 25
- Partly cloudy.
- 10%
-
-
- 3
- 15
- 27
- Partly cloudy.
- 10%
-
-
- 12
- 5 to 8 mm
- 16
- 23
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 10
- 22
- Mostly sunny.
- 10%
-
-
- 3
- 0 to 1 mm
- 10
- 20
- Partly cloudy.
- 30%
-
-
- 17
- 0 to 1 mm
- 11
- 20
- Possible shower.
- 40%
-
-
- 3
- 9
- 22
- Mostly sunny.
- 20%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 14
- 25
- Partly cloudy.
- 10%
-
-
- 3
- 15
- 27
- Partly cloudy.
- 10%
-
-
- 12
- 5 to 8 mm
- 17
- 23
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 11
- 23
- Mostly sunny.
- 10%
-
-
- 3
- 0 to 0.4 mm
- 11
- 20
- Partly cloudy.
- 30%
-
-
- 3
- 0 to 0.4 mm
- 12
- 20
- Partly cloudy.
- 30%
-
-
- 3
- 10
- 22
- Mostly sunny.
- 10%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 10
- 12
- 24
- Morning fog/smoke. Partly cloudy.
- 10%
-
-
- 3
- 13
- 27
- Partly cloudy.
- 20%
-
-
- 12
- 6 to 10 mm
- 14
- 23
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 9
- 22
- Mostly sunny.
- 5%
-
-
- 3
- 9
- 20
- Partly cloudy.
- 20%
-
-
- 3
- 10
- 20
- Partly cloudy.
- 20%
-
-
- 3
- 7
- 22
- Mostly sunny.
- 10%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 10
- 13
- 24
- Morning fog/smoke. Partly cloudy.
- 10%
-
-
- 3
- 13
- 27
- Partly cloudy.
- 20%
-
-
- 12
- 6 to 10 mm
- 15
- 23
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 10
- 22
- Mostly sunny.
- 10%
-
-
- 3
- 0 to 1 mm
- 9
- 20
- Partly cloudy.
- 30%
-
-
- 3
- 0 to 0.4 mm
- 10
- 20
- Partly cloudy.
- 30%
-
-
- 3
- 8
- 22
- Mostly sunny.
- 10%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 14
- 25
- Partly cloudy.
- 10%
-
-
- 3
- 15
- 26
- Partly cloudy.
- 10%
-
-
- 12
- 5 to 8 mm
- 15
- 23
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 11
- 23
- Mostly sunny.
- 10%
-
-
- 17
- 0 to 3 mm
- 11
- 20
- Possible shower.
- 40%
-
-
- 17
- 0 to 2 mm
- 12
- 19
- Possible shower.
- 40%
-
-
- 3
- 10
- 21
- Mostly sunny.
- 20%
-
-
-
-
- 3
- Mostly clear.
- 5%
-
-
- 3
- 18
- 23
- Partly cloudy.
- 10%
-
-
- 3
- 19
- 24
- Partly cloudy.
- 10%
-
-
- 12
- 5 to 8 mm
- 19
- 23
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 15
- 21
- Mostly sunny.
- 20%
-
-
- 11
- 1 to 6 mm
- 15
- 19
- Shower or two.
- 60%
-
-
- 11
- 0 to 3 mm
- 16
- 19
- Shower or two.
- 50%
-
-
- 3
- 0 to 0.2 mm
- 14
- 20
- Partly cloudy.
- 30%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 15
- 24
- Partly cloudy.
- 10%
-
-
- 3
- 16
- 26
- Partly cloudy.
- 10%
-
-
- 12
- 5 to 8 mm
- 17
- 23
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 12
- 22
- Mostly sunny.
- 10%
-
-
- 17
- 0 to 2 mm
- 11
- 19
- Possible shower.
- 40%
-
-
- 17
- 0 to 1 mm
- 13
- 19
- Possible shower.
- 40%
-
-
- 3
- 11
- 21
- Mostly sunny.
- 20%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 15
- 25
- Partly cloudy.
- 10%
-
-
- 3
- 16
- 27
- Partly cloudy.
- 10%
-
-
- 12
- 5 to 8 mm
- 17
- 24
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 12
- 23
- Mostly sunny.
- 10%
-
-
- 17
- 0 to 2 mm
- 12
- 20
- Possible shower.
- 40%
-
-
- 17
- 0 to 1 mm
- 13
- 20
- Possible shower.
- 40%
-
-
- 3
- 11
- 22
- Mostly sunny.
- 20%
-
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 11
- 1 to 3 mm
- 11
- 22
- Shower or two.
- 50%
-
-
- 16
- 25 to 40 mm
- 13
- 23
- Rain. Possible storm.
- 90%
-
-
- 16
- 25 to 35 mm
- 14
- 20
- Rain clearing. Possible storm.
- 90%
-
-
- 3
- 7
- 17
- Partly cloudy.
- 5%
-
-
- 3
- 6
- 19
- Mostly sunny.
- 0%
-
-
- 3
- 5
- 18
- Mostly sunny.
- 0%
-
-
- 3
- 6
- 18
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 11
- 0 to 3 mm
- 10
- 22
- Shower or two.
- 50%
-
-
- 16
- 20 to 35 mm
- 12
- 22
- Rain. Possible storm.
- 90%
-
-
- 16
- 25 to 40 mm
- 13
- 19
- Rain clearing. Possible storm.
- 90%
-
-
- 3
- 6
- 16
- Partly cloudy.
- 5%
-
-
- 3
- 5
- 19
- Partly cloudy.
- 5%
-
-
- 3
- 4
- 17
- Mostly sunny.
- 5%
-
-
- 3
- 5
- 17
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 11
- 1 to 3 mm
- 11
- 22
- Shower or two.
- 50%
-
-
- 16
- 25 to 45 mm
- 13
- 22
- Rain. Possible storm.
- 90%
-
-
- 16
- 20 to 30 mm
- 14
- 19
- Rain clearing. Possible storm.
- 90%
-
-
- 3
- 7
- 17
- Partly cloudy.
- 5%
-
-
- 3
- 5
- 19
- Mostly sunny.
- 5%
-
-
- 3
- 5
- 18
- Mostly sunny.
- 0%
-
-
- 3
- 5
- 18
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 11
- 0 to 3 mm
- 9
- 22
- Shower or two.
- 50%
-
-
- 16
- 20 to 40 mm
- 11
- 22
- Rain. Possible storm.
- 90%
-
-
- 16
- 25 to 35 mm
- 12
- 19
- Rain clearing. Possible storm.
- 90%
-
-
- 3
- 5
- 16
- Partly cloudy.
- 5%
-
-
- 3
- 4
- 18
- Partly cloudy.
- 5%
-
-
- 3
- 4
- 17
- Mostly sunny.
- 5%
-
-
- 3
- 4
- 17
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 11
- 1 to 4 mm
- 10
- 21
- Shower or two.
- 50%
-
-
- 16
- 25 to 45 mm
- 11
- 21
- Rain. Possible storm.
- 90%
-
-
- 16
- 20 to 30 mm
- 13
- 19
- Rain clearing. Possible storm.
- 90%
-
-
- 3
- 6
- 17
- Partly cloudy.
- 5%
-
-
- 3
- 5
- 18
- Partly cloudy.
- 5%
-
-
- 3
- 4
- 17
- Mostly sunny.
- 0%
-
-
- 3
- 3
- 17
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 11
- 2 to 5 mm
- 7
- 11
- Shower or two.
- 60%
-
-
- 16
- 30 to 50 mm
- 8
- 11
- Rain. Possible storm.
- 95%
-
-
- 16
- 20 to 30 mm
- 10
- 10
- Rain clearing. Possible storm.
- 90%
-
-
- 3
- 3
- 6
- Partly cloudy.
- 10%
-
-
- 3
- 1
- 9
- Mostly sunny.
- 5%
-
-
- 3
- 0
- 9
- Mostly sunny.
- 5%
-
-
- 3
- 1
- 9
- Mostly sunny.
- 5%
-
-
-
-
-
- 17
- Possible shower.
- 30%
-
-
- 17
- 0 to 3 mm
- 19
- 24
- Possible shower.
- 40%
-
-
- 17
- 0 to 4 mm
- 19
- 24
- Possible shower.
- 40%
-
-
- 11
- 0 to 3 mm
- 18
- 24
- Shower or two.
- 50%
-
-
- 11
- 4 to 10 mm
- 18
- 24
- Showers.
- 90%
-
-
- 11
- 2 to 6 mm
- 16
- 22
- Showers.
- 80%
-
-
- 11
- 1 to 5 mm
- 15
- 22
- Showers.
- 80%
-
-
- 11
- 0 to 2 mm
- 15
- 22
- Shower or two.
- 50%
-
-
-
-
- 17
- Possible shower.
- 40%
-
-
- 17
- 0 to 1 mm
- 14
- 24
- Possible shower.
- 40%
-
-
- 17
- 0 to 2 mm
- 15
- 25
- Possible shower.
- 40%
-
-
- 17
- 0 to 2 mm
- 14
- 25
- Possible shower.
- 40%
-
-
- 11
- 3 to 8 mm
- 15
- 25
- Showers.
- 90%
-
-
- 11
- 0 to 2 mm
- 12
- 23
- Shower or two.
- 50%
-
-
- 11
- 0 to 3 mm
- 12
- 22
- Shower or two.
- 50%
-
-
- 3
- 0 to 0.4 mm
- 11
- 23
- Mostly sunny.
- 30%
-
-
-
-
- 17
- Possible shower.
- 40%
-
-
- 17
- 0 to 4 mm
- 18
- 25
- Possible shower.
- 40%
-
-
- 11
- 0 to 5 mm
- 18
- 25
- Shower or two.
- 50%
-
-
- 17
- 0 to 2 mm
- 17
- 25
- Possible shower.
- 40%
-
-
- 11
- 2 to 6 mm
- 18
- 25
- Showers.
- 90%
-
-
- 11
- 0 to 2 mm
- 15
- 23
- Shower or two.
- 50%
-
-
- 11
- 0 to 3 mm
- 16
- 22
- Shower or two.
- 60%
-
-
- 17
- 0 to 1 mm
- 15
- 23
- Possible shower.
- 40%
-
-
-
-
- 11
- Shower or two.
- 50%
-
-
- 11
- 0 to 1 mm
- 16
- 25
- Shower or two.
- 50%
-
-
- 11
- 0 to 2 mm
- 17
- 25
- Shower or two.
- 50%
-
-
- 17
- 0 to 2 mm
- 16
- 27
- Possible shower.
- 40%
-
-
- 11
- 2 to 6 mm
- 17
- 26
- Showers.
- 80%
-
-
- 3
- 12
- 24
- Partly cloudy.
- 20%
-
-
- 3
- 0 to 0.4 mm
- 14
- 23
- Partly cloudy.
- 30%
-
-
- 3
- 11
- 25
- Mostly sunny.
- 20%
-
-
-
-
- 17
- Possible shower.
- 40%
-
-
- 17
- 0 to 2 mm
- 18
- 25
- Possible shower.
- 40%
-
-
- 17
- 0 to 3 mm
- 18
- 25
- Possible shower.
- 40%
-
-
- 17
- 0 to 2 mm
- 17
- 26
- Possible shower.
- 40%
-
-
- 11
- 2 to 6 mm
- 18
- 25
- Showers.
- 90%
-
-
- 11
- 1 to 3 mm
- 16
- 23
- Shower or two.
- 60%
-
-
- 11
- 1 to 4 mm
- 17
- 22
- Shower or two.
- 60%
-
-
- 17
- 0 to 1 mm
- 15
- 23
- Possible shower.
- 40%
-
-
-
-
- 17
- Possible shower.
- 40%
-
-
- 17
- 0 to 2 mm
- 17
- 25
- Possible shower.
- 40%
-
-
- 17
- 0 to 3 mm
- 17
- 25
- Possible shower.
- 40%
-
-
- 17
- 0 to 2 mm
- 16
- 25
- Possible shower.
- 40%
-
-
- 11
- 3 to 8 mm
- 17
- 25
- Showers.
- 90%
-
-
- 11
- 1 to 5 mm
- 15
- 23
- Shower or two.
- 70%
-
-
- 11
- 1 to 5 mm
- 15
- 22
- Shower or two.
- 70%
-
-
- 11
- 0 to 1 mm
- 13
- 23
- Shower or two.
- 50%
-
-
-
-
- 17
- Possible shower.
- 40%
-
-
- 11
- 0 to 4 mm
- 16
- 25
- Shower or two.
- 50%
-
-
- 17
- 0 to 3 mm
- 17
- 25
- Possible shower.
- 40%
-
-
- 17
- 0 to 2 mm
- 16
- 26
- Possible shower.
- 40%
-
-
- 11
- 3 to 8 mm
- 16
- 26
- Showers.
- 90%
-
-
- 17
- 0 to 2 mm
- 14
- 24
- Possible shower.
- 40%
-
-
- 17
- 0 to 1 mm
- 14
- 23
- Possible shower.
- 40%
-
-
- 3
- 0 to 0.2 mm
- 13
- 24
- Mostly sunny.
- 30%
-
-
-
-
- 17
- Possible shower.
- 40%
-
-
- 11
- 0 to 5 mm
- 19
- 25
- Shower or two.
- 50%
-
-
- 17
- 0 to 5 mm
- 19
- 26
- Possible shower.
- 40%
-
-
- 11
- 0 to 3 mm
- 19
- 26
- Shower or two.
- 50%
-
-
- 11
- 3 to 8 mm
- 18
- 27
- Showers.
- 90%
-
-
- 11
- 0 to 3 mm
- 17
- 25
- Shower or two.
- 50%
-
-
- 11
- 0 to 2 mm
- 16
- 23
- Shower or two.
- 50%
-
-
- 17
- 0 to 1 mm
- 15
- 24
- Possible shower.
- 40%
-
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 13
- 27
- Partly cloudy.
- 5%
-
-
- 3
- 13
- 28
- Mostly sunny.
- 10%
-
-
- 12
- 3 to 5 mm
- 15
- 27
- Rain at times.
- 80%
-
-
- 17
- 0 to 2 mm
- 13
- 24
- Possible early shower.
- 40%
-
-
- 11
- 0 to 2 mm
- 10
- 21
- Shower or two.
- 50%
-
-
- 11
- 0 to 2 mm
- 12
- 21
- Shower or two.
- 50%
-
-
- 3
- 10
- 22
- Partly cloudy.
- 20%
-
-
-
-
- 17
- Possible shower.
- 40%
-
-
- 11
- 0 to 3 mm
- 17
- 25
- Shower or two.
- 50%
-
-
- 11
- 0 to 5 mm
- 17
- 25
- Shower or two.
- 50%
-
-
- 11
- 0 to 3 mm
- 17
- 26
- Shower or two.
- 50%
-
-
- 11
- 1 to 5 mm
- 17
- 24
- Showers.
- 80%
-
-
- 17
- 0 to 2 mm
- 14
- 23
- Possible shower.
- 40%
-
-
- 11
- 1 to 5 mm
- 15
- 22
- Shower or two.
- 70%
-
-
- 17
- 0 to 1 mm
- 13
- 23
- Possible shower.
- 40%
-
-
-
-
- 4
- Partly cloudy.
- 20%
-
-
- 3
- 0 to 1 mm
- 14
- 27
- Partly cloudy.
- 30%
-
-
- 3
- 0 to 1 mm
- 15
- 27
- Partly cloudy.
- 30%
-
-
- 12
- 0 to 2 mm
- 14
- 28
- Rain at times.
- 50%
-
-
- 11
- 1 to 5 mm
- 15
- 25
- Morning shower or two.
- 60%
-
-
- 17
- 0 to 1 mm
- 11
- 24
- Possible shower.
- 40%
-
-
- 11
- 0 to 2 mm
- 13
- 22
- Shower or two.
- 50%
-
-
- 3
- 11
- 24
- Mostly sunny.
- 20%
-
-
-
-
- 3
- Partly cloudy.
- 20%
-
-
- 3
- 0 to 1 mm
- 14
- 25
- Partly cloudy.
- 30%
-
-
- 3
- 0 to 1 mm
- 14
- 26
- Partly cloudy.
- 30%
-
-
- 12
- 1 to 3 mm
- 14
- 27
- Rain at times.
- 60%
-
-
- 11
- 1 to 4 mm
- 14
- 24
- Morning shower or two.
- 60%
-
-
- 11
- 1 to 5 mm
- 11
- 22
- Shower or two.
- 50%
-
-
- 11
- 1 to 6 mm
- 12
- 21
- Shower or two.
- 60%
-
-
- 17
- 0 to 1 mm
- 10
- 22
- Possible shower.
- 40%
-
-
-
-
- 3
- Partly cloudy.
- 10%
-
-
- 3
- 14
- 25
- Partly cloudy.
- 20%
-
-
- 3
- 14
- 26
- Partly cloudy.
- 20%
-
-
- 12
- 2 to 4 mm
- 15
- 26
- Rain at times.
- 70%
-
-
- 11
- 0 to 3 mm
- 14
- 23
- Shower or two.
- 50%
-
-
- 11
- 1 to 6 mm
- 10
- 20
- Shower or two.
- 60%
-
-
- 11
- 1 to 5 mm
- 12
- 20
- Shower or two.
- 60%
-
-
- 3
- 0 to 1 mm
- 10
- 21
- Partly cloudy.
- 30%
-
-
-
-
- 3
- Partly cloudy.
- 10%
-
-
- 3
- 17
- 25
- Partly cloudy.
- 20%
-
-
- 3
- 17
- 25
- Partly cloudy.
- 20%
-
-
- 12
- 2 to 4 mm
- 17
- 25
- Rain at times.
- 70%
-
-
- 11
- 0 to 4 mm
- 15
- 22
- Shower or two.
- 50%
-
-
- 11
- 2 to 8 mm
- 13
- 20
- Shower or two.
- 70%
-
-
- 11
- 1 to 5 mm
- 14
- 21
- Shower or two.
- 70%
-
-
- 17
- 0 to 1 mm
- 12
- 21
- Possible shower.
- 40%
-
-
-
-
- 3
- Partly cloudy.
- 5%
-
-
- 3
- 15
- 26
- Partly cloudy.
- 10%
-
-
- 3
- 15
- 27
- Mostly sunny.
- 10%
-
-
- 12
- 4 to 6 mm
- 15
- 26
- Rain at times.
- 80%
-
-
- 11
- 0 to 3 mm
- 13
- 23
- Early shower or two.
- 50%
-
-
- 11
- 2 to 8 mm
- 11
- 20
- Shower or two.
- 70%
-
-
- 11
- 1 to 4 mm
- 13
- 21
- Shower or two.
- 70%
-
-
- 17
- 0 to 1 mm
- 10
- 22
- Possible shower.
- 40%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 3
- 9
- 16
- Partly cloudy.
- 5%
-
-
- 3
- 10
- 17
- Partly cloudy.
- 10%
-
-
- 16
- 5 to 8 mm
- 11
- 15
- Rain. Possible storm.
- 80%
-
-
- 11
- 0 to 2 mm
- 7
- 12
- Shower or two.
- 50%
-
-
- 11
- 0 to 3 mm
- 4
- 9
- Shower or two.
- 50%
-
-
- 17
- 0 to 2 mm
- 5
- 9
- Possible shower.
- 40%
-
-
- 3
- 4
- 11
- Partly cloudy.
- 20%
-
-
-
-
- 17
- Possible shower.
- 40%
-
-
- 10
- 0 to 1 mm
- 11
- 20
- Early fog. Possible shower.
- 40%
-
-
- 17
- 0 to 1 mm
- 13
- 20
- Possible shower.
- 40%
-
-
- 11
- 0 to 2 mm
- 13
- 21
- Late shower or two.
- 40%
-
-
- 11
- 1 to 6 mm
- 14
- 19
- Shower or two clearing.
- 70%
-
-
- 3
- 0 to 0.2 mm
- 8
- 17
- Partly cloudy.
- 30%
-
-
- 3
- 0 to 0.4 mm
- 10
- 16
- Partly cloudy.
- 30%
-
-
- 3
- 8
- 18
- Mostly sunny.
- 20%
-
-
-
-
- 3
- Partly cloudy.
- 30%
-
-
- 17
- 0 to 2 mm
- 17
- 25
- Possible shower.
- 40%
-
-
- 17
- 0 to 3 mm
- 17
- 26
- Possible shower.
- 40%
-
-
- 12
- 0 to 3 mm
- 17
- 26
- Rain at times.
- 50%
-
-
- 11
- 1 to 4 mm
- 17
- 25
- Showers easing.
- 80%
-
-
- 17
- 0 to 1 mm
- 13
- 23
- Possible shower.
- 40%
-
-
- 11
- 0 to 3 mm
- 15
- 22
- Shower or two.
- 60%
-
-
- 3
- 0 to 0.4 mm
- 13
- 23
- Mostly sunny.
- 30%
-
-
-
-
- 3
- Partly cloudy.
- 10%
-
-
- 3
- 13
- 26
- Partly cloudy.
- 20%
-
-
- 3
- 13
- 26
- Partly cloudy.
- 20%
-
-
- 12
- 1 to 3 mm
- 13
- 27
- Rain at times.
- 60%
-
-
- 11
- 0 to 5 mm
- 13
- 24
- Morning shower or two.
- 60%
-
-
- 11
- 0 to 2 mm
- 9
- 23
- Shower or two.
- 50%
-
-
- 11
- 0 to 3 mm
- 11
- 21
- Shower or two.
- 50%
-
-
- 3
- 0 to 0.4 mm
- 9
- 23
- Partly cloudy.
- 30%
-
-
-
-
- 3
- Partly cloudy.
- 30%
-
-
- 17
- 0 to 3 mm
- 18
- 27
- Possible shower.
- 40%
-
-
- 17
- 0 to 4 mm
- 18
- 27
- Possible shower.
- 40%
-
-
- 11
- 0 to 3 mm
- 18
- 27
- Shower or two.
- 50%
-
-
- 11
- 1 to 4 mm
- 18
- 25
- Shower or two.
- 70%
-
-
- 11
- 0 to 3 mm
- 14
- 24
- Shower or two.
- 50%
-
-
- 11
- 1 to 4 mm
- 15
- 23
- Shower or two.
- 60%
-
-
- 17
- 0 to 1 mm
- 14
- 24
- Possible shower.
- 40%
-
-
-
-
-
- 3
- Mostly clear.
- 5%
-
-
- 3
- 16
- 25
- Partly cloudy.
- 5%
-
-
- 3
- 16
- 27
- Partly cloudy.
- 10%
-
-
- 12
- 5 to 8 mm
- 16
- 25
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 0 to 1 mm
- 13
- 23
- Mostly sunny.
- 30%
-
-
- 11
- 2 to 8 mm
- 12
- 21
- Shower or two.
- 60%
-
-
- 11
- 1 to 4 mm
- 14
- 20
- Shower or two.
- 60%
-
-
- 17
- 0 to 1 mm
- 12
- 22
- Possible morning shower.
- 40%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 14
- 26
- Partly cloudy.
- 5%
-
-
- 3
- 14
- 28
- Partly cloudy.
- 10%
-
-
- 12
- 5 to 8 mm
- 15
- 25
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 0 to 0.2 mm
- 12
- 23
- Mostly sunny.
- 30%
-
-
- 11
- 0 to 3 mm
- 10
- 21
- Shower or two.
- 50%
-
-
- 11
- 0 to 2 mm
- 11
- 20
- Shower or two.
- 50%
-
-
- 3
- 10
- 22
- Partly cloudy.
- 20%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 15
- 26
- Partly cloudy.
- 10%
-
-
- 3
- 16
- 28
- Partly cloudy.
- 10%
-
-
- 12
- 5 to 8 mm
- 17
- 25
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 14
- 23
- Mostly sunny.
- 20%
-
-
- 3
- 0 to 0.4 mm
- 11
- 21
- Partly cloudy.
- 30%
-
-
- 3
- 0 to 0.4 mm
- 12
- 21
- Partly cloudy.
- 30%
-
-
- 3
- 11
- 22
- Mostly sunny.
- 10%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 15
- 25
- Partly cloudy.
- 10%
-
-
- 3
- 15
- 26
- Partly cloudy.
- 10%
-
-
- 12
- 5 to 8 mm
- 16
- 24
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 12
- 22
- Mostly sunny.
- 20%
-
-
- 11
- 1 to 6 mm
- 12
- 20
- Shower or two.
- 60%
-
-
- 11
- 1 to 3 mm
- 12
- 20
- Shower or two.
- 50%
-
-
- 3
- 0 to 0.4 mm
- 11
- 22
- Mostly sunny.
- 30%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 12
- 25
- Partly cloudy.
- 5%
-
-
- 3
- 13
- 27
- Partly cloudy.
- 10%
-
-
- 12
- 5 to 8 mm
- 14
- 25
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 11
- 23
- Mostly sunny.
- 20%
-
-
- 17
- 0 to 1 mm
- 8
- 21
- Possible shower.
- 40%
-
-
- 17
- 0 to 1 mm
- 9
- 20
- Possible shower.
- 40%
-
-
- 3
- 8
- 22
- Mostly sunny.
- 10%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 15
- 25
- Partly cloudy.
- 10%
-
-
- 3
- 15
- 26
- Partly cloudy.
- 10%
-
-
- 12
- 5 to 8 mm
- 16
- 24
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 12
- 22
- Mostly sunny.
- 20%
-
-
- 11
- 1 to 5 mm
- 12
- 20
- Shower or two.
- 50%
-
-
- 11
- 0 to 3 mm
- 13
- 20
- Shower or two.
- 50%
-
-
- 3
- 0 to 0.2 mm
- 11
- 22
- Mostly sunny.
- 30%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 15
- 24
- Partly cloudy.
- 10%
-
-
- 3
- 15
- 25
- Partly cloudy.
- 10%
-
-
- 12
- 5 to 8 mm
- 16
- 23
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 12
- 21
- Mostly sunny.
- 20%
-
-
- 11
- 1 to 6 mm
- 11
- 19
- Shower or two.
- 50%
-
-
- 11
- 0 to 3 mm
- 12
- 19
- Shower or two.
- 50%
-
-
- 3
- 0 to 0.2 mm
- 10
- 21
- Mostly sunny.
- 30%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 3
- 13
- 26
- Partly cloudy.
- 10%
-
-
- 3
- 13
- 28
- Partly cloudy.
- 20%
-
-
- 12
- 6 to 10 mm
- 16
- 24
- Rain at times. Possible storm.
- 90%
-
-
- 3
- 0 to 0.4 mm
- 11
- 22
- Mostly sunny.
- 30%
-
-
- 3
- 7
- 20
- Partly cloudy.
- 20%
-
-
- 3
- 9
- 19
- Partly cloudy.
- 20%
-
-
- 3
- 7
- 21
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Mostly clear.
- 10%
-
-
- 3
- 18
- 25
- Partly cloudy.
- 10%
-
-
- 3
- 18
- 26
- Mostly sunny.
- 20%
-
-
- 12
- 5 to 8 mm
- 19
- 25
- Rain at times. Possible storm.
- 80%
-
-
- 11
- 0 to 3 mm
- 16
- 23
- Shower or two.
- 50%
-
-
- 11
- 3 to 10 mm
- 15
- 21
- Showers.
- 80%
-
-
- 11
- 2 to 5 mm
- 16
- 21
- Shower or two.
- 70%
-
-
- 11
- 0 to 2 mm
- 14
- 22
- Shower or two.
- 50%
-
-
-
-
- 3
- Mostly clear.
- 5%
-
-
- 3
- 14
- 25
- Partly cloudy.
- 5%
-
-
- 3
- 14
- 27
- Partly cloudy.
- 10%
-
-
- 12
- 5 to 8 mm
- 15
- 25
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 0 to 0.4 mm
- 11
- 23
- Mostly sunny.
- 30%
-
-
- 11
- 1 to 6 mm
- 10
- 21
- Shower or two.
- 60%
-
-
- 11
- 1 to 4 mm
- 11
- 20
- Shower or two.
- 60%
-
-
- 3
- 0 to 0.4 mm
- 10
- 22
- Partly cloudy.
- 30%
-
-
-
-
- 3
- Mostly clear.
- 5%
-
-
- 3
- 15
- 26
- Partly cloudy.
- 5%
-
-
- 3
- 15
- 27
- Partly cloudy.
- 10%
-
-
- 12
- 5 to 8 mm
- 15
- 25
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 0 to 0.4 mm
- 12
- 23
- Mostly sunny.
- 30%
-
-
- 11
- 1 to 5 mm
- 11
- 21
- Shower or two.
- 60%
-
-
- 11
- 1 to 3 mm
- 12
- 20
- Shower or two.
- 60%
-
-
- 3
- 0 to 1 mm
- 10
- 22
- Partly cloudy.
- 30%
-
-
-
-
- 3
- Mostly clear.
- 5%
-
-
- 3
- 19
- 23
- Partly cloudy.
- 10%
-
-
- 3
- 20
- 23
- Partly cloudy.
- 10%
-
-
- 12
- 5 to 8 mm
- 20
- 23
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 0 to 0.4 mm
- 17
- 21
- Mostly sunny.
- 30%
-
-
- 11
- 2 to 8 mm
- 17
- 20
- Shower or two.
- 70%
-
-
- 11
- 1 to 4 mm
- 18
- 19
- Shower or two.
- 60%
-
-
- 3
- 0 to 1 mm
- 16
- 20
- Partly cloudy.
- 30%
-
-
-
-
- 3
- Mostly clear.
- 5%
-
-
- 3
- 15
- 25
- Partly cloudy.
- 5%
-
-
- 3
- 15
- 27
- Partly cloudy.
- 10%
-
-
- 12
- 5 to 8 mm
- 15
- 25
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 0 to 1 mm
- 13
- 22
- Mostly sunny.
- 30%
-
-
- 11
- 1 to 5 mm
- 11
- 20
- Shower or two.
- 60%
-
-
- 11
- 1 to 3 mm
- 12
- 20
- Shower or two.
- 60%
-
-
- 3
- 0 to 1 mm
- 11
- 21
- Partly cloudy.
- 30%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 3
- 14
- 25
- Partly cloudy.
- 10%
-
-
- 3
- 15
- 28
- Partly cloudy.
- 20%
-
-
- 12
- 6 to 10 mm
- 17
- 24
- Rain at times. Possible storm.
- 90%
-
-
- 3
- 12
- 22
- Mostly sunny.
- 20%
-
-
- 3
- 8
- 21
- Partly cloudy.
- 20%
-
-
- 3
- 10
- 19
- Partly cloudy.
- 20%
-
-
- 3
- 9
- 21
- Mostly sunny.
- 10%
-
-
-
-
-
- 3
- Partly cloudy.
- 5%
-
-
- 4
- 8
- 21
- Cloudy.
- 10%
-
-
- 3
- 8
- 23
- Partly cloudy.
- 10%
-
-
- 12
- 5 to 10 mm
- 8
- 21
- Rain at times.
- 70%
-
-
- 11
- 1 to 6 mm
- 9
- 17
- Shower or two.
- 60%
-
-
- 3
- 2
- 16
- Partly cloudy.
- 10%
-
-
- 3
- 5
- 17
- Partly cloudy.
- 10%
-
-
- 3
- 1
- 17
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Partly cloudy.
- 10%
-
-
- 4
- 9
- 22
- Cloudy.
- 20%
-
-
- 3
- 9
- 23
- Partly cloudy.
- 10%
-
-
- 12
- 2 to 5 mm
- 9
- 22
- Rain at times.
- 60%
-
-
- 11
- 1 to 5 mm
- 11
- 18
- Shower or two.
- 60%
-
-
- 3
- 3
- 18
- Partly cloudy.
- 10%
-
-
- 3
- 5
- 17
- Partly cloudy.
- 10%
-
-
- 3
- 2
- 18
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Partly cloudy.
- 5%
-
-
- 4
- 13
- 25
- Cloudy.
- 20%
-
-
- 3
- 12
- 26
- Partly cloudy.
- 10%
-
-
- 12
- 6 to 10 mm
- 12
- 23
- Rain at times.
- 70%
-
-
- 11
- 3 to 8 mm
- 13
- 21
- Shower or two.
- 60%
-
-
- 3
- 7
- 22
- Mostly sunny.
- 0%
-
-
- 3
- 8
- 22
- Mostly sunny.
- 0%
-
-
- 3
- 6
- 21
- Mostly sunny.
- 0%
-
-
-
-
- 4
- Cloudy.
- 20%
-
-
- 4
- 0 to 0.4 mm
- 10
- 20
- Cloudy.
- 30%
-
-
- 3
- 10
- 21
- Partly cloudy.
- 20%
-
-
- 12
- 2 to 5 mm
- 9
- 21
- Late rain at times.
- 60%
-
-
- 11
- 2 to 5 mm
- 11
- 18
- Shower or two.
- 70%
-
-
- 3
- 3
- 18
- Mostly sunny.
- 5%
-
-
- 3
- 5
- 18
- Mostly sunny.
- 5%
-
-
- 3
- 3
- 18
- Mostly sunny.
- 5%
-
-
-
-
- 4
- Cloudy.
- 30%
-
-
- 4
- 0 to 1 mm
- 11
- 20
- Cloudy.
- 30%
-
-
- 3
- 11
- 21
- Partly cloudy.
- 20%
-
-
- 17
- 0 to 2 mm
- 10
- 22
- Possible late shower.
- 40%
-
-
- 11
- 2 to 5 mm
- 12
- 20
- Shower or two.
- 60%
-
-
- 3
- 4
- 18
- Mostly sunny.
- 10%
-
-
- 3
- 6
- 19
- Mostly sunny.
- 10%
-
-
- 3
- 4
- 19
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Partly cloudy.
- 10%
-
-
- 4
- 9
- 19
- Cloudy.
- 20%
-
-
- 3
- 9
- 20
- Partly cloudy.
- 10%
-
-
- 12
- 2 to 4 mm
- 9
- 19
- Rain at times.
- 60%
-
-
- 11
- 1 to 5 mm
- 11
- 16
- Shower or two.
- 60%
-
-
- 3
- 3
- 15
- Partly cloudy.
- 5%
-
-
- 3
- 6
- 15
- Partly cloudy.
- 10%
-
-
- 3
- 3
- 15
- Mostly sunny.
- 5%
-
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 16
- 22
- Partly cloudy.
- 10%
-
-
- 3
- 17
- 24
- Partly cloudy.
- 20%
-
-
- 12
- 5 to 8 mm
- 18
- 22
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 14
- 20
- Mostly sunny.
- 10%
-
-
- 17
- 0 to 4 mm
- 14
- 18
- Possible shower.
- 40%
-
-
- 17
- 0 to 2 mm
- 13
- 17
- Possible shower.
- 40%
-
-
- 3
- 12
- 20
- Partly cloudy.
- 20%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 15
- 23
- Partly cloudy.
- 10%
-
-
- 3
- 16
- 24
- Partly cloudy.
- 20%
-
-
- 12
- 4 to 8 mm
- 17
- 23
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 12
- 21
- Mostly sunny.
- 10%
-
-
- 11
- 1 to 5 mm
- 12
- 18
- Shower or two.
- 50%
-
-
- 17
- 0 to 2 mm
- 12
- 18
- Possible shower.
- 40%
-
-
- 3
- 11
- 20
- Partly cloudy.
- 20%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 10
- 12
- 20
- Morning fog/smoke. Partly cloudy.
- 10%
-
-
- 3
- 0 to 1 mm
- 13
- 22
- Partly cloudy.
- 30%
-
-
- 12
- 6 to 10 mm
- 14
- 19
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 8
- 16
- Mostly sunny.
- 5%
-
-
- 3
- 0 to 0.4 mm
- 7
- 14
- Partly cloudy.
- 30%
-
-
- 3
- 0 to 0.2 mm
- 7
- 14
- Partly cloudy.
- 30%
-
-
- 3
- 6
- 16
- Mostly sunny.
- 10%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 14
- 25
- Partly cloudy.
- 10%
-
-
- 3
- 0 to 1 mm
- 15
- 26
- Partly cloudy.
- 30%
-
-
- 12
- 5 to 8 mm
- 16
- 23
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 11
- 21
- Mostly sunny.
- 10%
-
-
- 17
- 0 to 3 mm
- 11
- 19
- Possible shower.
- 40%
-
-
- 3
- 0 to 1 mm
- 10
- 18
- Partly cloudy.
- 30%
-
-
- 3
- 10
- 21
- Partly cloudy.
- 10%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 14
- 25
- Partly cloudy.
- 10%
-
-
- 3
- 0 to 0.2 mm
- 15
- 26
- Partly cloudy.
- 30%
-
-
- 12
- 5 to 8 mm
- 16
- 24
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 11
- 22
- Mostly sunny.
- 10%
-
-
- 11
- 1 to 4 mm
- 11
- 20
- Shower or two.
- 60%
-
-
- 17
- 0 to 2 mm
- 11
- 20
- Possible shower.
- 40%
-
-
- 3
- 10
- 21
- Partly cloudy.
- 20%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 13
- 24
- Partly cloudy.
- 10%
-
-
- 3
- 14
- 26
- Partly cloudy.
- 20%
-
-
- 12
- 4 to 6 mm
- 15
- 24
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 11
- 22
- Mostly sunny.
- 10%
-
-
- 11
- 0 to 3 mm
- 11
- 19
- Shower or two.
- 50%
-
-
- 17
- 0 to 1 mm
- 10
- 18
- Possible shower.
- 40%
-
-
- 3
- 9
- 21
- Partly cloudy.
- 20%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 17
- 23
- Partly cloudy.
- 10%
-
-
- 3
- 18
- 24
- Partly cloudy.
- 20%
-
-
- 12
- 4 to 8 mm
- 18
- 22
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 14
- 21
- Mostly sunny.
- 10%
-
-
- 11
- 0 to 4 mm
- 14
- 18
- Shower or two.
- 50%
-
-
- 17
- 0 to 2 mm
- 14
- 18
- Possible shower.
- 40%
-
-
- 3
- 13
- 20
- Partly cloudy.
- 20%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 17
- 23
- Partly cloudy.
- 10%
-
-
- 3
- 18
- 24
- Partly cloudy.
- 20%
-
-
- 12
- 4 to 8 mm
- 19
- 23
- Rain at times. Possible storm.
- 80%
-
-
- 3
- 15
- 21
- Mostly sunny.
- 10%
-
-
- 11
- 1 to 5 mm
- 14
- 18
- Shower or two.
- 50%
-
-
- 17
- 0 to 2 mm
- 14
- 17
- Possible shower.
- 40%
-
-
- 3
- 13
- 20
- Partly cloudy.
- 20%
-
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 12
- 25
- Partly cloudy.
- 10%
-
-
- 17
- 0 to 5 mm
- 13
- 25
- Possible late shower.
- 40%
-
-
- 12
- 6 to 10 mm
- 14
- 25
- Rain clearing. Possible storm.
- 80%
-
-
- 3
- 9
- 22
- Mostly sunny.
- 10%
-
-
- 17
- 0 to 1 mm
- 9
- 19
- Possible shower.
- 40%
-
-
- 3
- 0 to 0.4 mm
- 8
- 18
- Partly cloudy.
- 30%
-
-
- 3
- 7
- 21
- Mostly sunny.
- 10%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 16
- 23
- Partly cloudy.
- 10%
-
-
- 3
- 0 to 4 mm
- 16
- 23
- Partly cloudy.
- 30%
-
-
- 12
- 8 to 15 mm
- 17
- 22
- Rain clearing. Possible storm.
- 80%
-
-
- 3
- 12
- 20
- Mostly sunny.
- 10%
-
-
- 17
- 0 to 2 mm
- 13
- 18
- Possible shower.
- 40%
-
-
- 3
- 0 to 0.4 mm
- 11
- 18
- Partly cloudy.
- 30%
-
-
- 3
- 11
- 19
- Mostly sunny.
- 10%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 13
- 24
- Partly cloudy.
- 5%
-
-
- 3
- 0 to 1 mm
- 13
- 26
- Partly cloudy.
- 30%
-
-
- 12
- 6 to 10 mm
- 15
- 22
- Rain clearing. Possible storm.
- 80%
-
-
- 3
- 9
- 20
- Partly cloudy.
- 10%
-
-
- 3
- 0 to 1 mm
- 11
- 18
- Partly cloudy.
- 30%
-
-
- 3
- 8
- 18
- Partly cloudy.
- 10%
-
-
- 3
- 7
- 19
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 14
- 23
- Partly cloudy.
- 5%
-
-
- 3
- 0 to 1 mm
- 14
- 25
- Partly cloudy.
- 30%
-
-
- 12
- 8 to 15 mm
- 15
- 21
- Rain clearing. Possible storm.
- 80%
-
-
- 3
- 10
- 19
- Partly cloudy.
- 20%
-
-
- 17
- 0 to 2 mm
- 11
- 18
- Possible shower.
- 40%
-
-
- 3
- 9
- 18
- Partly cloudy.
- 20%
-
-
- 3
- 8
- 19
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 10
- 20
- Partly cloudy.
- 10%
-
-
- 17
- 0 to 4 mm
- 11
- 21
- Possible shower.
- 40%
-
-
- 12
- 4 to 6 mm
- 13
- 18
- Rain clearing. Possible storm.
- 80%
-
-
- 3
- 7
- 15
- Mostly sunny.
- 5%
-
-
- 17
- 0 to 1 mm
- 6
- 12
- Possible shower.
- 40%
-
-
- 3
- 0 to 0.4 mm
- 6
- 13
- Partly cloudy.
- 30%
-
-
- 3
- 5
- 15
- Mostly sunny.
- 10%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 16
- 23
- Partly cloudy.
- 10%
-
-
- 3
- 0 to 1 mm
- 17
- 24
- Partly cloudy.
- 30%
-
-
- 12
- 6 to 10 mm
- 18
- 23
- Rain clearing. Possible storm.
- 80%
-
-
- 3
- 14
- 21
- Mostly sunny.
- 10%
-
-
- 11
- 1 to 4 mm
- 13
- 18
- Shower or two. Wind easing.
- 60%
-
-
- 17
- 0 to 1 mm
- 13
- 18
- Possible shower.
- 40%
-
-
- 3
- 12
- 19
- Partly cloudy.
- 10%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 15
- 23
- Partly cloudy.
- 5%
-
-
- 3
- 0 to 1 mm
- 15
- 24
- Partly cloudy.
- 30%
-
-
- 12
- 8 to 15 mm
- 16
- 21
- Rain clearing. Possible storm.
- 90%
-
-
- 3
- 11
- 19
- Partly cloudy.
- 20%
-
-
- 17
- 0 to 2 mm
- 12
- 17
- Possible shower.
- 40%
-
-
- 3
- 10
- 17
- Partly cloudy.
- 20%
-
-
- 3
- 8
- 19
- Mostly sunny.
- 10%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 15
- 23
- Partly cloudy.
- 5%
-
-
- 3
- 0 to 2 mm
- 15
- 24
- Partly cloudy.
- 30%
-
-
- 12
- 8 to 10 mm
- 16
- 22
- Rain clearing. Possible storm.
- 80%
-
-
- 3
- 11
- 20
- Partly cloudy.
- 20%
-
-
- 17
- 0 to 2 mm
- 12
- 18
- Possible shower.
- 40%
-
-
- 3
- 0 to 0.4 mm
- 10
- 18
- Partly cloudy.
- 30%
-
-
- 3
- 9
- 19
- Mostly sunny.
- 10%
-
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 4
- 0 to 0.4 mm
- 10
- 18
- Cloudy.
- 30%
-
-
- 11
- 3 to 6 mm
- 11
- 20
- Shower or two.
- 70%
-
-
- 16
- 30 to 45 mm
- 11
- 16
- Rain. Possible storm.
- 90%
-
-
- 3
- 4
- 13
- Partly cloudy.
- 10%
-
-
- 3
- 3
- 16
- Partly cloudy.
- 5%
-
-
- 3
- 3
- 16
- Mostly sunny.
- 0%
-
-
- 3
- 2
- 15
- Mostly sunny.
- 0%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 3
- 0 to 0.4 mm
- 12
- 23
- Partly cloudy.
- 30%
-
-
- 11
- 0 to 2 mm
- 14
- 25
- Shower or two.
- 50%
-
-
- 16
- 20 to 30 mm
- 14
- 19
- Rain. Possible storm.
- 90%
-
-
- 3
- 7
- 18
- Mostly sunny.
- 10%
-
-
- 3
- 6
- 20
- Partly cloudy.
- 0%
-
-
- 3
- 7
- 19
- Mostly sunny.
- 0%
-
-
- 3
- 5
- 19
- Mostly sunny.
- 0%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 4
- 0 to 0.4 mm
- 11
- 21
- Cloudy.
- 30%
-
-
- 11
- 1 to 4 mm
- 12
- 23
- Shower or two.
- 60%
-
-
- 16
- 20 to 30 mm
- 12
- 19
- Rain. Possible storm.
- 90%
-
-
- 3
- 5
- 16
- Mostly sunny.
- 5%
-
-
- 3
- 3
- 18
- Partly cloudy.
- 5%
-
-
- 3
- 4
- 18
- Mostly sunny.
- 5%
-
-
- 3
- 2
- 18
- Mostly sunny.
- 0%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 3
- 9
- 19
- Partly cloudy.
- 20%
-
-
- 17
- 0 to 1 mm
- 11
- 21
- Possible late shower.
- 40%
-
-
- 16
- 8 to 10 mm
- 12
- 17
- Rain. Possible storm.
- 90%
-
-
- 3
- 5
- 15
- Mostly sunny.
- 5%
-
-
- 3
- 4
- 15
- Partly cloudy.
- 10%
-
-
- 3
- 5
- 15
- Partly cloudy.
- 20%
-
-
- 3
- 2
- 16
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 13
- 18
- Partly cloudy.
- 20%
-
-
- 3
- 0 to 0.4 mm
- 14
- 20
- Partly cloudy.
- 30%
-
-
- 16
- 5 to 8 mm
- 16
- 17
- Rain. Possible storm.
- 90%
-
-
- 3
- 9
- 15
- Mostly sunny.
- 5%
-
-
- 3
- 8
- 13
- Partly cloudy.
- 20%
-
-
- 3
- 9
- 13
- Partly cloudy.
- 20%
-
-
- 3
- 7
- 15
- Mostly sunny.
- 10%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 14
- 23
- Partly cloudy.
- 10%
-
-
- 3
- 15
- 25
- Partly cloudy.
- 20%
-
-
- 16
- 4 to 6 mm
- 17
- 22
- Rain. Possible storm.
- 80%
-
-
- 3
- 11
- 20
- Mostly sunny.
- 5%
-
-
- 3
- 10
- 19
- Partly cloudy.
- 20%
-
-
- 3
- 11
- 18
- Partly cloudy.
- 20%
-
-
- 3
- 9
- 20
- Mostly sunny.
- 10%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 4
- 0 to 0.4 mm
- 14
- 25
- Cloudy.
- 30%
-
-
- 11
- 3 to 6 mm
- 15
- 27
- Shower or two.
- 60%
-
-
- 16
- 20 to 35 mm
- 15
- 21
- Rain. Possible storm.
- 90%
-
-
- 3
- 8
- 19
- Mostly sunny.
- 5%
-
-
- 3
- 7
- 23
- Mostly sunny.
- 0%
-
-
- 3
- 7
- 22
- Mostly sunny.
- 0%
-
-
- 3
- 6
- 21
- Mostly sunny.
- 0%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 12
- 20
- Partly cloudy.
- 20%
-
-
- 17
- 0 to 1 mm
- 13
- 22
- Possible late shower.
- 40%
-
-
- 16
- 8 to 15 mm
- 14
- 18
- Rain. Possible storm.
- 90%
-
-
- 3
- 7
- 15
- Mostly sunny.
- 5%
-
-
- 3
- 6
- 15
- Partly cloudy.
- 20%
-
-
- 3
- 7
- 16
- Partly cloudy.
- 20%
-
-
- 3
- 5
- 17
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 4
- 9
- 18
- Cloudy.
- 20%
-
-
- 11
- 0 to 2 mm
- 11
- 20
- Shower or two.
- 50%
-
-
- 16
- 15 to 25 mm
- 11
- 16
- Rain. Possible storm.
- 90%
-
-
- 3
- 4
- 14
- Mostly sunny.
- 5%
-
-
- 3
- 3
- 15
- Partly cloudy.
- 10%
-
-
- 3
- 4
- 15
- Partly cloudy.
- 10%
-
-
- 3
- 2
- 15
- Mostly sunny.
- 5%
-
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 4
- 11
- 22
- Cloudy.
- 20%
-
-
- 16
- 3 to 8 mm
- 12
- 23
- Rain at times. Possible storm.
- 70%
-
-
- 16
- 10 to 20 mm
- 14
- 19
- Rain clearing. Possible storm.
- 90%
-
-
- 3
- 7
- 15
- Partly cloudy.
- 5%
-
-
- 3
- 5
- 16
- Partly cloudy.
- 10%
-
-
- 3
- 5
- 15
- Partly cloudy.
- 10%
-
-
- 3
- 5
- 16
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 10
- 22
- Partly cloudy.
- 20%
-
-
- 16
- 4 to 10 mm
- 12
- 22
- Rain at times. Possible storm.
- 60%
-
-
- 16
- 8 to 10 mm
- 13
- 19
- Rain clearing. Possible storm.
- 80%
-
-
- 3
- 7
- 17
- Partly cloudy.
- 5%
-
-
- 3
- 6
- 15
- Partly cloudy.
- 20%
-
-
- 3
- 5
- 15
- Partly cloudy.
- 10%
-
-
- 3
- 4
- 18
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 11
- 0 to 2 mm
- 11
- 24
- Shower or two.
- 50%
-
-
- 16
- 15 to 25 mm
- 13
- 25
- Rain. Possible storm.
- 95%
-
-
- 16
- 25 to 35 mm
- 14
- 21
- Rain clearing. Possible storm.
- 90%
-
-
- 3
- 6
- 17
- Partly cloudy.
- 10%
-
-
- 3
- 3
- 21
- Mostly sunny.
- 5%
-
-
- 3
- 5
- 19
- Mostly sunny.
- 0%
-
-
- 3
- 5
- 19
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 4
- 0 to 0.4 mm
- 10
- 21
- Cloudy.
- 30%
-
-
- 16
- 5 to 10 mm
- 11
- 22
- Rain at times. Possible storm.
- 70%
-
-
- 16
- 20 to 35 mm
- 12
- 18
- Rain clearing. Possible storm.
- 90%
-
-
- 3
- 4
- 13
- Partly cloudy.
- 10%
-
-
- 3
- 2
- 16
- Partly cloudy.
- 10%
-
-
- 3
- 3
- 15
- Partly cloudy.
- 5%
-
-
- 3
- 3
- 16
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 11
- 0 to 3 mm
- 9
- 22
- Shower or two.
- 50%
-
-
- 16
- 20 to 35 mm
- 11
- 22
- Rain. Possible storm.
- 90%
-
-
- 16
- 25 to 35 mm
- 12
- 19
- Rain clearing. Possible storm.
- 90%
-
-
- 3
- 5
- 16
- Partly cloudy.
- 5%
-
-
- 3
- 4
- 18
- Partly cloudy.
- 5%
-
-
- 3
- 3
- 17
- Mostly sunny.
- 5%
-
-
- 3
- 3
- 18
- Mostly sunny.
- 5%
-
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 4
- 15
- 26
- Cloudy.
- 10%
-
-
- 3
- 14
- 27
- Partly cloudy.
- 10%
-
-
- 16
- 15 to 25 mm
- 16
- 24
- Rain developing. Possible storm.
- 80%
-
-
- 17
- 0 to 6 mm
- 13
- 21
- Possible shower.
- 40%
-
-
- 3
- 7
- 21
- Partly cloudy.
- 0%
-
-
- 3
- 10
- 21
- Partly cloudy.
- 0%
-
-
- 3
- 7
- 21
- Mostly sunny.
- 0%
-
-
-
-
- 4
- Cloudy.
- 0%
-
-
- 4
- 17
- 26
- Cloudy.
- 20%
-
-
- 3
- 17
- 29
- Partly cloudy.
- 10%
-
-
- 16
- 10 to 20 mm
- 18
- 26
- Rain developing. Possible storm.
- 80%
-
-
- 17
- 0 to 6 mm
- 15
- 23
- Possible morning shower.
- 40%
-
-
- 3
- 10
- 23
- Mostly sunny.
- 0%
-
-
- 3
- 11
- 24
- Mostly sunny.
- 0%
-
-
- 3
- 9
- 24
- Mostly sunny.
- 0%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 4
- 17
- 25
- Cloudy.
- 20%
-
-
- 3
- 17
- 28
- Partly cloudy.
- 10%
-
-
- 16
- 15 to 25 mm
- 17
- 24
- Rain developing. Possible storm.
- 90%
-
-
- 3
- 0 to 3 mm
- 14
- 22
- Mostly sunny.
- 30%
-
-
- 3
- 9
- 22
- Mostly sunny.
- 0%
-
-
- 3
- 11
- 22
- Mostly sunny.
- 0%
-
-
- 3
- 9
- 22
- Mostly sunny.
- 0%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 4
- 18
- 25
- Cloudy.
- 20%
-
-
- 3
- 17
- 27
- Partly cloudy.
- 10%
-
-
- 16
- 15 to 25 mm
- 18
- 23
- Rain developing. Possible storm.
- 90%
-
-
- 3
- 0 to 2 mm
- 14
- 21
- Mostly sunny.
- 30%
-
-
- 3
- 10
- 21
- Partly cloudy.
- 0%
-
-
- 3
- 12
- 20
- Partly cloudy.
- 0%
-
-
- 3
- 11
- 21
- Mostly sunny.
- 0%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 4
- 13
- 25
- Cloudy.
- 20%
-
-
- 3
- 12
- 27
- Partly cloudy.
- 10%
-
-
- 16
- 10 to 15 mm
- 13
- 23
- Rain developing. Possible storm.
- 80%
-
-
- 17
- 0 to 6 mm
- 11
- 21
- Possible morning shower.
- 40%
-
-
- 3
- 6
- 21
- Mostly sunny.
- 0%
-
-
- 3
- 7
- 21
- Mostly sunny.
- 0%
-
-
- 3
- 6
- 21
- Mostly sunny.
- 0%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 3
- 17
- 28
- Partly cloudy.
- 10%
-
-
- 17
- 0 to 1 mm
- 18
- 29
- Possible shower.
- 40%
-
-
- 16
- 10 to 20 mm
- 18
- 24
- Rain developing. Possible storm.
- 90%
-
-
- 3
- 10
- 22
- Mostly sunny.
- 10%
-
-
- 3
- 9
- 22
- Mostly sunny.
- 0%
-
-
- 3
- 9
- 23
- Mostly sunny.
- 0%
-
-
- 3
- 9
- 23
- Mostly sunny.
- 0%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 4
- 15
- 27
- Cloudy.
- 20%
-
-
- 3
- 15
- 29
- Partly cloudy.
- 5%
-
-
- 16
- 8 to 15 mm
- 15
- 27
- Rain developing. Possible storm.
- 80%
-
-
- 11
- 0 to 8 mm
- 14
- 24
- Morning shower or two.
- 50%
-
-
- 3
- 8
- 24
- Mostly sunny.
- 0%
-
-
- 3
- 9
- 25
- Mostly sunny.
- 0%
-
-
- 3
- 8
- 24
- Mostly sunny.
- 0%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 4
- 18
- 25
- Cloudy.
- 20%
-
-
- 4
- 18
- 28
- Cloudy.
- 20%
-
-
- 16
- 15 to 20 mm
- 18
- 23
- Rain developing. Possible storm.
- 90%
-
-
- 3
- 13
- 22
- Mostly sunny.
- 20%
-
-
- 3
- 10
- 22
- Mostly sunny.
- 0%
-
-
- 3
- 12
- 22
- Mostly sunny.
- 0%
-
-
- 3
- 10
- 23
- Mostly sunny.
- 0%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 4
- 14
- 25
- Cloudy.
- 20%
-
-
- 3
- 13
- 27
- Partly cloudy.
- 10%
-
-
- 16
- 15 to 25 mm
- 15
- 24
- Rain developing. Possible storm.
- 90%
-
-
- 3
- 0 to 3 mm
- 11
- 22
- Mostly sunny.
- 30%
-
-
- 3
- 6
- 20
- Partly cloudy.
- 5%
-
-
- 3
- 9
- 20
- Partly cloudy.
- 5%
-
-
- 3
- 6
- 21
- Mostly sunny.
- 0%
-
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 4
- 0 to 0.4 mm
- 16
- 25
- Cloudy.
- 30%
-
-
- 11
- 2 to 5 mm
- 17
- 27
- Shower or two.
- 60%
-
-
- 16
- 20 to 30 mm
- 16
- 22
- Rain. Possible storm.
- 90%
-
-
- 3
- 9
- 19
- Mostly sunny.
- 5%
-
-
- 3
- 8
- 22
- Mostly sunny.
- 0%
-
-
- 3
- 9
- 22
- Mostly sunny.
- 0%
-
-
- 3
- 8
- 21
- Mostly sunny.
- 0%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 3
- 11
- 23
- Partly cloudy.
- 20%
-
-
- 4
- 0 to 1 mm
- 12
- 25
- Cloudy.
- 30%
-
-
- 16
- 15 to 25 mm
- 13
- 20
- Rain. Possible storm.
- 90%
-
-
- 3
- 6
- 19
- Mostly sunny.
- 10%
-
-
- 3
- 5
- 20
- Mostly sunny.
- 0%
-
-
- 3
- 6
- 20
- Mostly sunny.
- 0%
-
-
- 3
- 4
- 20
- Mostly sunny.
- 0%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 4
- 0 to 1 mm
- 16
- 24
- Cloudy.
- 30%
-
-
- 16
- 6 to 10 mm
- 17
- 25
- Rain. Possible storm.
- 80%
-
-
- 16
- 25 to 40 mm
- 17
- 21
- Rain. Possible storm.
- 90%
-
-
- 3
- 9
- 18
- Partly cloudy.
- 5%
-
-
- 3
- 8
- 21
- Mostly sunny.
- 0%
-
-
- 3
- 9
- 21
- Mostly sunny.
- 0%
-
-
- 3
- 8
- 20
- Mostly sunny.
- 0%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 11
- 1 to 3 mm
- 17
- 23
- Shower or two.
- 50%
-
-
- 16
- 15 to 20 mm
- 17
- 25
- Rain. Possible storm.
- 95%
-
-
- 16
- 10 to 20 mm
- 15
- 21
- Rain clearing. Possible storm.
- 90%
-
-
- 3
- 10
- 17
- Partly cloudy.
- 5%
-
-
- 3
- 7
- 20
- Mostly sunny.
- 0%
-
-
- 3
- 8
- 20
- Mostly sunny.
- 0%
-
-
- 3
- 8
- 20
- Mostly sunny.
- 0%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 3
- 17
- 26
- Partly cloudy.
- 20%
-
-
- 11
- 0 to 2 mm
- 18
- 27
- Shower or two developing.
- 50%
-
-
- 16
- 20 to 30 mm
- 18
- 22
- Rain. Possible storm.
- 90%
-
-
- 3
- 11
- 21
- Mostly sunny.
- 10%
-
-
- 3
- 10
- 22
- Mostly sunny.
- 0%
-
-
- 3
- 10
- 22
- Mostly sunny.
- 0%
-
-
- 3
- 9
- 22
- Mostly sunny.
- 0%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 11
- 0 to 2 mm
- 17
- 25
- Shower or two.
- 50%
-
-
- 16
- 10 to 20 mm
- 18
- 26
- Rain. Possible storm.
- 90%
-
-
- 16
- 15 to 20 mm
- 16
- 22
- Rain clearing. Possible storm.
- 90%
-
-
- 3
- 9
- 19
- Partly cloudy.
- 0%
-
-
- 3
- 8
- 21
- Mostly sunny.
- 0%
-
-
- 3
- 9
- 22
- Mostly sunny.
- 0%
-
-
- 3
- 9
- 22
- Mostly sunny.
- 0%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 17
- 0 to 1 mm
- 16
- 25
- Possible shower.
- 40%
-
-
- 16
- 10 to 15 mm
- 17
- 25
- Rain. Possible storm.
- 90%
-
-
- 16
- 20 to 35 mm
- 16
- 22
- Rain clearing. Possible storm.
- 90%
-
-
- 3
- 9
- 18
- Partly cloudy.
- 5%
-
-
- 3
- 8
- 21
- Mostly sunny.
- 0%
-
-
- 3
- 8
- 21
- Mostly sunny.
- 0%
-
-
- 3
- 8
- 21
- Mostly sunny.
- 0%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 17
- 0 to 1 mm
- 15
- 24
- Possible shower.
- 40%
-
-
- 16
- 10 to 20 mm
- 16
- 25
- Rain. Possible storm.
- 90%
-
-
- 16
- 30 to 45 mm
- 16
- 21
- Rain. Possible storm.
- 90%
-
-
- 3
- 8
- 17
- Partly cloudy.
- 5%
-
-
- 3
- 7
- 21
- Partly cloudy.
- 0%
-
-
- 3
- 7
- 20
- Mostly sunny.
- 0%
-
-
- 3
- 7
- 19
- Mostly sunny.
- 0%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 11
- 3 to 6 mm
- 17
- 24
- Shower or two.
- 70%
-
-
- 16
- 30 to 50 mm
- 18
- 25
- Rain. Possible storm.
- 95%
-
-
- 16
- 8 to 10 mm
- 16
- 21
- Rain clearing. Possible storm.
- 80%
-
-
- 3
- 11
- 18
- Partly cloudy.
- 0%
-
-
- 3
- 9
- 21
- Mostly sunny.
- 0%
-
-
- 3
- 10
- 21
- Mostly sunny.
- 0%
-
-
- 3
- 10
- 21
- Mostly sunny.
- 0%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 4
- 18
- 26
- Cloudy.
- 20%
-
-
- 16
- 5 to 8 mm
- 19
- 26
- Rain. Possible storm.
- 80%
-
-
- 16
- 20 to 30 mm
- 18
- 23
- Rain. Possible storm.
- 90%
-
-
- 3
- 11
- 20
- Mostly sunny.
- 0%
-
-
- 3
- 10
- 21
- Mostly sunny.
- 0%
-
-
- 3
- 10
- 21
- Mostly sunny.
- 0%
-
-
- 3
- 10
- 21
- Mostly sunny.
- 0%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 11
- 1 to 3 mm
- 15
- 23
- Shower or two.
- 50%
-
-
- 16
- 20 to 35 mm
- 17
- 25
- Rain. Possible storm.
- 95%
-
-
- 16
- 15 to 25 mm
- 15
- 21
- Rain clearing. Possible storm.
- 90%
-
-
- 3
- 9
- 17
- Partly cloudy.
- 5%
-
-
- 3
- 7
- 20
- Mostly sunny.
- 0%
-
-
- 3
- 7
- 20
- Mostly sunny.
- 0%
-
-
- 3
- 8
- 20
- Mostly sunny.
- 0%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 4
- 0 to 0.4 mm
- 17
- 25
- Cloudy.
- 30%
-
-
- 11
- 4 to 8 mm
- 18
- 27
- Shower or two.
- 70%
-
-
- 16
- 20 to 35 mm
- 17
- 22
- Rain. Possible storm.
- 90%
-
-
- 3
- 10
- 20
- Mostly sunny.
- 0%
-
-
- 3
- 9
- 22
- Mostly sunny.
- 0%
-
-
- 3
- 10
- 22
- Mostly sunny.
- 0%
-
-
- 3
- 9
- 21
- Mostly sunny.
- 0%
-
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 11
- 1 to 2 mm
- 12
- 24
- Shower or two.
- 60%
-
-
- 16
- 25 to 40 mm
- 14
- 25
- Rain. Possible storm.
- 95%
-
-
- 16
- 20 to 35 mm
- 13
- 22
- Morning rain/storm clearing.
- 90%
-
-
- 3
- 7
- 18
- Partly cloudy.
- 20%
-
-
- 3
- 4
- 22
- Mostly sunny.
- 0%
-
-
- 3
- 5
- 21
- Mostly sunny.
- 0%
-
-
- 3
- 5
- 20
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 11
- 0 to 2 mm
- 13
- 23
- Shower or two.
- 50%
-
-
- 16
- 20 to 30 mm
- 15
- 24
- Rain. Possible storm.
- 95%
-
-
- 16
- 25 to 40 mm
- 14
- 19
- Morning rain/storm clearing.
- 90%
-
-
- 3
- 7
- 16
- Partly cloudy.
- 5%
-
-
- 3
- 5
- 19
- Mostly sunny.
- 0%
-
-
- 3
- 6
- 18
- Mostly sunny.
- 0%
-
-
- 3
- 5
- 18
- Mostly sunny.
- 0%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 11
- 2 to 4 mm
- 11
- 20
- Shower or two.
- 70%
-
-
- 16
- 25 to 40 mm
- 11
- 21
- Rain. Possible storm.
- 95%
-
-
- 16
- 20 to 30 mm
- 11
- 18
- Morning rain/storm clearing.
- 90%
-
-
- 3
- 0 to 1 mm
- 4
- 14
- Partly cloudy.
- 30%
-
-
- 3
- 2
- 19
- Partly cloudy.
- 0%
-
-
- 3
- 2
- 17
- Mostly sunny.
- 0%
-
-
- 3
- 2
- 16
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 11
- 1 to 2 mm
- 14
- 22
- Shower or two.
- 50%
-
-
- 16
- 15 to 25 mm
- 15
- 24
- Rain. Possible storm.
- 95%
-
-
- 16
- 20 to 30 mm
- 14
- 20
- Morning rain/storm clearing.
- 90%
-
-
- 3
- 8
- 16
- Partly cloudy.
- 10%
-
-
- 3
- 5
- 19
- Mostly sunny.
- 0%
-
-
- 3
- 7
- 19
- Mostly sunny.
- 0%
-
-
- 3
- 6
- 18
- Mostly sunny.
- 0%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 11
- 3 to 6 mm
- 12
- 24
- Shower or two.
- 70%
-
-
- 16
- 40 to 70 mm
- 13
- 25
- Rain. Possible storm.
- 95%
-
-
- 16
- 35 to 50 mm
- 13
- 22
- Morning rain/storm clearing.
- 90%
-
-
- 3
- 6
- 19
- Partly cloudy.
- 20%
-
-
- 3
- 3
- 23
- Mostly sunny.
- 0%
-
-
- 3
- 4
- 21
- Mostly sunny.
- 0%
-
-
- 3
- 4
- 21
- Mostly sunny.
- 5%
-
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 11
- 1 to 3 mm
- 15
- 22
- Shower or two.
- 70%
-
-
- 16
- 35 to 50 mm
- 17
- 24
- Rain. Possible storm.
- 95%
-
-
- 12
- 10 to 15 mm
- 15
- 21
- Rain clearing.
- 90%
-
-
- 3
- 10
- 17
- Partly cloudy.
- 10%
-
-
- 3
- 7
- 20
- Mostly sunny.
- 0%
-
-
- 3
- 7
- 19
- Mostly sunny.
- 0%
-
-
- 3
- 7
- 19
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 16
- 6 to 10 mm
- 13
- 22
- Showers. Possible storm.
- 90%
-
-
- 16
- 35 to 50 mm
- 15
- 22
- Rain. Possible storm.
- 95%
-
-
- 12
- 4 to 6 mm
- 12
- 21
- Rain clearing.
- 80%
-
-
- 3
- 0 to 0.2 mm
- 8
- 17
- Partly cloudy.
- 30%
-
-
- 3
- 6
- 21
- Mostly sunny.
- 0%
-
-
- 3
- 6
- 19
- Mostly sunny.
- 0%
-
-
- 3
- 7
- 19
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Partly cloudy.
- 5%
-
-
- 16
- 10 to 20 mm
- 15
- 23
- Rain. Possible storm.
- 90%
-
-
- 16
- 10 to 20 mm
- 16
- 23
- Rain. Possible storm.
- 95%
-
-
- 1
- 11
- 20
- Sunny.
- 20%
-
-
- 3
- 10
- 18
- Partly cloudy.
- 5%
-
-
- 3
- 8
- 19
- Partly cloudy.
- 0%
-
-
- 3
- 7
- 20
- Mostly sunny.
- 0%
-
-
- 3
- 8
- 21
- Mostly sunny.
- 0%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 16
- 15 to 25 mm
- 14
- 21
- Rain. Possible storm.
- 90%
-
-
- 16
- 10 to 20 mm
- 15
- 22
- Rain. Possible storm.
- 95%
-
-
- 3
- 9
- 19
- Mostly sunny.
- 20%
-
-
- 3
- 10
- 17
- Partly cloudy.
- 5%
-
-
- 3
- 8
- 19
- Partly cloudy.
- 0%
-
-
- 3
- 7
- 19
- Mostly sunny.
- 0%
-
-
- 3
- 8
- 21
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 12
- 3 to 5 mm
- 17
- 23
- Showers. Possible storm.
- 80%
-
-
- 16
- 20 to 35 mm
- 18
- 24
- Rain. Possible storm.
- 95%
-
-
- 12
- 3 to 6 mm
- 15
- 20
- Rain clearing.
- 70%
-
-
- 3
- 11
- 18
- Partly cloudy.
- 5%
-
-
- 3
- 8
- 19
- Mostly sunny.
- 0%
-
-
- 3
- 9
- 20
- Mostly sunny.
- 0%
-
-
- 3
- 9
- 20
- Mostly sunny.
- 0%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 16
- 5 to 10 mm
- 14
- 21
- Showers. Possible storm.
- 90%
-
-
- 16
- 30 to 50 mm
- 15
- 22
- Rain. Possible storm.
- 95%
-
-
- 12
- 1 to 3 mm
- 11
- 21
- Morning rain at times.
- 60%
-
-
- 3
- 9
- 18
- Partly cloudy.
- 20%
-
-
- 3
- 7
- 21
- Mostly sunny.
- 0%
-
-
- 3
- 6
- 20
- Mostly sunny.
- 0%
-
-
- 3
- 6
- 20
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 16
- 8 to 15 mm
- 14
- 21
- Showers. Possible storm.
- 90%
-
-
- 16
- 20 to 30 mm
- 15
- 23
- Rain. Possible storm.
- 95%
-
-
- 3
- 0 to 1 mm
- 10
- 21
- Mostly sunny.
- 30%
-
-
- 3
- 9
- 18
- Partly cloudy.
- 5%
-
-
- 3
- 8
- 21
- Mostly sunny.
- 0%
-
-
- 3
- 6
- 20
- Mostly sunny.
- 0%
-
-
- 3
- 7
- 21
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 11
- 1 to 2 mm
- 16
- 22
- Shower or two.
- 60%
-
-
- 16
- 15 to 25 mm
- 17
- 24
- Rain. Possible storm.
- 95%
-
-
- 12
- 15 to 20 mm
- 15
- 20
- Rain clearing.
- 90%
-
-
- 3
- 10
- 16
- Partly cloudy.
- 10%
-
-
- 3
- 8
- 19
- Mostly sunny.
- 0%
-
-
- 3
- 9
- 19
- Mostly sunny.
- 0%
-
-
- 3
- 8
- 19
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 11
- 1 to 3 mm
- 16
- 23
- Shower or two.
- 70%
-
-
- 16
- 20 to 35 mm
- 16
- 25
- Rain. Possible storm.
- 95%
-
-
- 12
- 4 to 6 mm
- 14
- 21
- Rain clearing.
- 70%
-
-
- 3
- 10
- 18
- Partly cloudy.
- 5%
-
-
- 3
- 7
- 20
- Mostly sunny.
- 0%
-
-
- 3
- 7
- 20
- Mostly sunny.
- 0%
-
-
- 3
- 7
- 21
- Mostly sunny.
- 0%
-
-
-
-
-
- 3
- Partly cloudy.
- 10%
-
-
- 16
- 10 to 20 mm
- 16
- 23
- Rain. Possible storm.
- 90%
-
-
- 16
- 20 to 35 mm
- 17
- 23
- Rain. Possible storm.
- 90%
-
-
- 1
- 0 to 1 mm
- 12
- 21
- Sunny.
- 30%
-
-
- 3
- 10
- 19
- Partly cloudy.
- 0%
-
-
- 3
- 9
- 19
- Partly cloudy.
- 0%
-
-
- 3
- 8
- 21
- Mostly sunny.
- 0%
-
-
- 3
- 9
- 22
- Mostly sunny.
- 0%
-
-
-
-
- 17
- Possible shower.
- 40%
-
-
- 11
- 2 to 3 mm
- 15
- 23
- Shower or two.
- 70%
-
-
- 11
- 1 to 3 mm
- 13
- 20
- Shower or two.
- 50%
-
-
- 1
- 8
- 20
- Sunny.
- 0%
-
-
- 3
- 9
- 18
- Partly cloudy.
- 0%
-
-
- 3
- 7
- 18
- Mostly sunny.
- 0%
-
-
- 3
- 7
- 20
- Mostly sunny.
- 0%
-
-
- 3
- 9
- 23
- Mostly sunny.
- 0%
-
-
-
-
- 3
- Partly cloudy.
- 20%
-
-
- 11
- 2 to 4 mm
- 14
- 24
- Shower or two.
- 70%
-
-
- 1
- 0 to 1 mm
- 11
- 23
- Sunny.
- 30%
-
-
- 3
- 7
- 21
- Mostly sunny.
- 5%
-
-
- 3
- 8
- 20
- Partly cloudy.
- 0%
-
-
- 3
- 6
- 21
- Mostly sunny.
- 0%
-
-
- 3
- 5
- 21
- Mostly sunny.
- 0%
-
-
- 3
- 7
- 24
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Partly cloudy.
- 10%
-
-
- 16
- 10 to 20 mm
- 13
- 23
- Rain. Possible storm.
- 90%
-
-
- 11
- 4 to 8 mm
- 14
- 22
- Showers easing.
- 80%
-
-
- 3
- 7
- 20
- Mostly sunny.
- 5%
-
-
- 3
- 9
- 18
- Partly cloudy.
- 0%
-
-
- 3
- 6
- 19
- Partly cloudy.
- 0%
-
-
- 3
- 5
- 20
- Mostly sunny.
- 0%
-
-
- 3
- 6
- 22
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Partly cloudy.
- 30%
-
-
- 16
- 8 to 15 mm
- 14
- 24
- Showers. Possible storm.
- 90%
-
-
- 11
- 3 to 6 mm
- 14
- 22
- Shower or two.
- 70%
-
-
- 3
- 8
- 20
- Mostly sunny.
- 0%
-
-
- 3
- 9
- 18
- Partly cloudy.
- 0%
-
-
- 3
- 6
- 19
- Partly cloudy.
- 0%
-
-
- 3
- 6
- 20
- Mostly sunny.
- 0%
-
-
- 3
- 7
- 23
- Mostly sunny.
- 5%
-
-
-
-
- 11
- Shower or two.
- 60%
-
-
- 16
- 4 to 8 mm
- 15
- 26
- Showers. Possible storm.
- 80%
-
-
- 11
- 3 to 6 mm
- 14
- 23
- Shower or two.
- 70%
-
-
- 1
- 9
- 22
- Sunny.
- 0%
-
-
- 3
- 9
- 21
- Partly cloudy.
- 0%
-
-
- 3
- 7
- 21
- Mostly sunny.
- 0%
-
-
- 3
- 7
- 22
- Mostly sunny.
- 0%
-
-
- 3
- 8
- 24
- Mostly sunny.
- 0%
-
-
-
-
-
- 4
- Cloudy.
- 0%
-
-
- 4
- 0 to 0.4 mm
- 17
- 26
- Cloudy.
- 30%
-
-
- 16
- 3 to 5 mm
- 19
- 27
- Rain. Possible storm.
- 90%
-
-
- 12
- 8 to 10 mm
- 18
- 23
- Rain. Possible storm.
- 90%
-
-
- 3
- 10
- 21
- Mostly sunny.
- 0%
-
-
- 3
- 9
- 21
- Mostly sunny.
- 0%
-
-
- 3
- 10
- 23
- Mostly sunny.
- 0%
-
-
- 3
- 10
- 23
- Mostly sunny.
- 0%
-
-
-
-
- 11
- Shower or two.
- 60%
-
-
- 16
- 10 to 15 mm
- 17
- 25
- Rain. Possible storm.
- 90%
-
-
- 16
- 6 to 10 mm
- 18
- 23
- Rain. Possible storm.
- 80%
-
-
- 3
- 0 to 1 mm
- 13
- 21
- Mostly sunny.
- 30%
-
-
- 3
- 10
- 21
- Mostly sunny.
- 0%
-
-
- 3
- 10
- 20
- Mostly sunny.
- 0%
-
-
- 3
- 10
- 22
- Mostly sunny.
- 0%
-
-
- 3
- 11
- 23
- Mostly sunny.
- 0%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 11
- 1 to 4 mm
- 17
- 24
- Shower or two.
- 60%
-
-
- 16
- 8 to 10 mm
- 18
- 25
- Rain. Possible storm.
- 90%
-
-
- 12
- 8 to 15 mm
- 17
- 21
- Morning rain. Possible storm.
- 80%
-
-
- 3
- 10
- 19
- Partly cloudy.
- 0%
-
-
- 3
- 9
- 20
- Mostly sunny.
- 0%
-
-
- 3
- 10
- 21
- Mostly sunny.
- 0%
-
-
- 3
- 11
- 22
- Mostly sunny.
- 0%
-
-
-
-
- 4
- Cloudy.
- 0%
-
-
- 4
- 17
- 28
- Cloudy.
- 20%
-
-
- 11
- 4 to 8 mm
- 18
- 28
- Shower or two.
- 70%
-
-
- 12
- 15 to 20 mm
- 17
- 24
- Rain. Possible storm.
- 90%
-
-
- 3
- 9
- 22
- Mostly sunny.
- 5%
-
-
- 3
- 9
- 22
- Mostly sunny.
- 0%
-
-
- 3
- 9
- 23
- Mostly sunny.
- 0%
-
-
- 3
- 9
- 24
- Mostly sunny.
- 0%
-
-
-
-
- 11
- Shower or two.
- 50%
-
-
- 16
- 15 to 25 mm
- 16
- 25
- Rain. Possible storm.
- 90%
-
-
- 16
- 20 to 30 mm
- 16
- 23
- Rain. Possible storm.
- 90%
-
-
- 1
- 0 to 1 mm
- 11
- 21
- Sunny.
- 30%
-
-
- 3
- 8
- 20
- Partly cloudy.
- 0%
-
-
- 3
- 7
- 20
- Mostly sunny.
- 0%
-
-
- 3
- 7
- 21
- Mostly sunny.
- 0%
-
-
- 3
- 8
- 23
- Mostly sunny.
- 0%
-
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 11
- 2 to 5 mm
- 6
- 11
- Shower or two. Windy.
- 60%
-
-
- 16
- 35 to 60 mm
- 7
- 12
- Rain. Possible storm.
- 95%
-
-
- 16
- 25 to 45 mm
- 7
- 9
- Rain easing. Possible storm.
- 90%
-
-
- 11
- 0 to 1 mm
- 0
- 5
- Shower or two.
- 50%
-
-
- 3
- 0
- 7
- Partly cloudy.
- 20%
-
-
- 3
- -2
- 8
- Partly cloudy.
- 10%
-
-
- 3
- -3
- 9
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 11
- 2 to 4 mm
- 10
- 12
- Shower or two.
- 60%
-
-
- 16
- 20 to 35 mm
- 11
- 13
- Rain. Possible storm.
- 95%
-
-
- 16
- 25 to 45 mm
- 11
- 12
- Morning rain/storm clearing.
- 90%
-
-
- 17
- 0 to 1 mm
- 4
- 6
- Possible shower.
- 40%
-
-
- 3
- 3
- 10
- Partly cloudy.
- 5%
-
-
- 3
- 2
- 9
- Mostly sunny.
- 0%
-
-
- 3
- 2
- 9
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 0 to 0.4 mm
- 7
- 20
- Partly cloudy.
- 30%
-
-
- 16
- 2 to 4 mm
- 8
- 22
- Rain at times. Possible storm.
- 70%
-
-
- 16
- 6 to 10 mm
- 10
- 19
- Rain clearing. Possible storm.
- 90%
-
-
- 3
- 2
- 15
- Partly cloudy.
- 10%
-
-
- 3
- 3
- 14
- Partly cloudy.
- 20%
-
-
- 3
- 0
- 14
- Partly cloudy.
- 5%
-
-
- 3
- -1
- 17
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 11
- 2 to 5 mm
- 10
- 12
- Shower or two.
- 70%
-
-
- 16
- 25 to 45 mm
- 11
- 13
- Rain. Possible storm.
- 95%
-
-
- 16
- 30 to 45 mm
- 11
- 11
- Morning rain/storm clearing.
- 90%
-
-
- 17
- 0 to 2 mm
- 4
- 6
- Possible shower.
- 40%
-
-
- 3
- 3
- 11
- Partly cloudy.
- 5%
-
-
- 3
- 3
- 9
- Mostly sunny.
- 0%
-
-
- 3
- 2
- 9
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Mostly clear.
- 0%
-
-
- 3
- 11
- 21
- Partly cloudy.
- 10%
-
-
- 11
- 0 to 2 mm
- 12
- 23
- Late shower or two.
- 50%
-
-
- 16
- 6 to 10 mm
- 11
- 19
- Rain clearing. Possible storm.
- 90%
-
-
- 3
- 0 to 0.4 mm
- 6
- 14
- Partly cloudy.
- 30%
-
-
- 17
- 0 to 1 mm
- 7
- 13
- Possible shower.
- 40%
-
-
- 3
- 4
- 13
- Partly cloudy.
- 20%
-
-
- 3
- 2
- 16
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 11
- 2 to 6 mm
- 6
- 11
- Shower or two. Windy.
- 60%
-
-
- 16
- 45 to 70 mm
- 7
- 12
- Rain. Possible storm.
- 95%
-
-
- 16
- 30 to 45 mm
- 7
- 9
- Rain easing. Possible storm.
- 95%
-
-
- 15
- 0 to 1 mm
- 0
- 5
- Snow shower or two.
- 50%
-
-
- 3
- 0
- 7
- Partly cloudy.
- 20%
-
-
- 3
- -2
- 8
- Partly cloudy.
- 10%
-
-
- 3
- -3
- 9
- Mostly sunny.
- 5%
-
-
-
-
- 9
- Very windy. Partly cloudy.
- 0%
-
-
- 9
- 3 to 8 mm
- 6
- 9
- Shower or two. Very windy.
- 60%
-
-
- 16
- 45 to 80 mm
- 7
- 10
- Rain. Possible storm.
- 95%
-
-
- 16
- 30 to 45 mm
- 7
- 7
- Rain easing. Possible storm.
- 95%
-
-
- 15
- 0 to 2 mm
- 1
- 3
- Snow shower or two. Windy.
- 50%
-
-
- 3
- 1
- 5
- Partly cloudy.
- 20%
-
-
- 3
- -1
- 6
- Partly cloudy.
- 10%
-
-
- 3
- -2
- 6
- Mostly sunny.
- 5%
-
-
-
-
- 3
- Partly cloudy.
- 0%
-
-
- 11
- 0 to 2 mm
- 10
- 16
- Shower or two.
- 50%
-
-
- 16
- 8 to 15 mm
- 10
- 17
- Rain. Possible storm.
- 90%
-
-
- 16
- 10 to 20 mm
- 10
- 15
- Rain clearing. Possible storm.
- 90%
-
-
- 3
- 0 to 0.4 mm
- 4
- 11
- Partly cloudy.
- 30%
-
-
- 3
- 0 to 0.2 mm
- 4
- 11
- Partly cloudy.
- 30%
-
-
- 3
- 2
- 11
- Partly cloudy.
- 10%
-
-
- 3
- 1
- 13
- Mostly sunny.
- 5%
-
-
-
-
\ No newline at end of file
diff --git a/test/bom_IDQ11295.xml b/test/bom_IDQ11295.xml
deleted file mode 100644
index aad81a69..00000000
--- a/test/bom_IDQ11295.xml
+++ /dev/null
@@ -1,5992 +0,0 @@
-
-
-
-
- IDQ11295
- 2019-04-29T18:40:00Z
- 2019-04-30T04:40:00+10:00
- 2019-04-29T18:40:08Z
- 2019-04-30T18:40:00Z
- 2019-04-30T05:00:00+10:00
- 2019-05-06T23:59:59+10:00
- 2019-04-30T06:10:00Z
- 2019-04-30T16:10:00+10:00
- O
- WSP
- FPR
- F
- NEW
-
-
-
-
-
-
- 17
- 26
- Possible shower.
- 40%
-
-
- 11
- 2 to 5 mm
- 16
- 25
- Showers.
- 80%
-
-
- 11
- 0 to 2 mm
- 16
- 27
- Shower or two clearing.
- 60%
-
-
- 11
- 0 to 2 mm
- 15
- 26
- Shower or two.
- 60%
-
-
- 11
- 0 to 2 mm
- 16
- 27
- Shower or two clearing.
- 50%
-
-
- 3
- 13
- 26
- Mostly sunny.
- 5%
-
-
- 3
- 12
- 25
- Mostly sunny.
- 10%
-
-
-
-
- 17
- 26
- Possible shower.
- 40%
-
-
- 11
- 2 to 5 mm
- 15
- 25
- Showers.
- 80%
-
-
- 11
- 0 to 2 mm
- 15
- 26
- Shower or two clearing.
- 60%
-
-
- 11
- 0 to 1 mm
- 14
- 26
- Shower or two.
- 50%
-
-
- 11
- 0 to 2 mm
- 15
- 27
- Shower or two clearing.
- 50%
-
-
- 1
- 11
- 26
- Sunny.
- 5%
-
-
- 3
- 11
- 25
- Mostly sunny.
- 5%
-
-
-
-
- 11
- 1 to 3 mm
- 26
- Shower or two.
- 50%
-
-
- 11
- 2 to 5 mm
- 20
- 26
- Showers.
- 80%
-
-
- 11
- 0 to 1 mm
- 19
- 27
- Shower or two clearing.
- 60%
-
-
- 11
- 0 to 2 mm
- 19
- 26
- Shower or two.
- 60%
-
-
- 11
- 0 to 2 mm
- 19
- 27
- Shower or two.
- 60%
-
-
- 3
- 15
- 26
- Mostly sunny.
- 10%
-
-
- 3
- 15
- 25
- Partly cloudy.
- 20%
-
-
-
-
- 11
- 25
- Shower or two.
- 60%
-
-
- 11
- 2 to 5 mm
- 19
- 25
- Showers.
- 80%
-
-
- 11
- 0 to 1 mm
- 19
- 25
- Shower or two clearing.
- 60%
-
-
- 11
- 0 to 2 mm
- 18
- 25
- Shower or two.
- 60%
-
-
- 11
- 0 to 2 mm
- 17
- 26
- Shower or two.
- 60%
-
-
- 3
- 15
- 25
- Mostly sunny.
- 10%
-
-
- 3
- 15
- 24
- Partly cloudy.
- 20%
-
-
-
-
- 11
- 25
- Shower or two.
- 70%
-
-
- 11
- 2 to 6 mm
- 19
- 25
- Showers.
- 80%
-
-
- 11
- 0 to 2 mm
- 19
- 26
- Shower or two.
- 60%
-
-
- 11
- 0 to 2 mm
- 18
- 25
- Shower or two.
- 60%
-
-
- 11
- 0 to 3 mm
- 18
- 27
- Shower or two.
- 60%
-
-
- 3
- 0 to 0.2 mm
- 16
- 24
- Mostly sunny.
- 30%
-
-
- 17
- 0 to 1 mm
- 15
- 24
- Possible shower.
- 40%
-
-
-
-
- 11
- 25
- Shower or two.
- 60%
-
-
- 11
- 2 to 6 mm
- 19
- 25
- Showers.
- 80%
-
-
- 11
- 0 to 2 mm
- 18
- 26
- Shower or two clearing.
- 70%
-
-
- 11
- 0 to 2 mm
- 18
- 25
- Shower or two.
- 60%
-
-
- 11
- 0 to 2 mm
- 18
- 27
- Shower or two.
- 60%
-
-
- 3
- 15
- 25
- Mostly sunny.
- 10%
-
-
- 3
- 15
- 25
- Partly cloudy.
- 20%
-
-
-
-
- 11
- 25
- Shower or two.
- 70%
-
-
- 11
- 2 to 6 mm
- 19
- 25
- Showers.
- 90%
-
-
- 11
- 0 to 2 mm
- 19
- 26
- Shower or two.
- 70%
-
-
- 11
- 1 to 3 mm
- 19
- 26
- Shower or two.
- 60%
-
-
- 11
- 1 to 3 mm
- 19
- 27
- Shower or two.
- 70%
-
-
- 3
- 17
- 25
- Mostly sunny.
- 20%
-
-
- 3
- 0 to 0.4 mm
- 16
- 24
- Partly cloudy.
- 30%
-
-
-
-
- 11
- 25
- Shower or two.
- 60%
-
-
- 11
- 2 to 6 mm
- 18
- 25
- Showers.
- 80%
-
-
- 11
- 0 to 2 mm
- 17
- 26
- Shower or two clearing.
- 60%
-
-
- 11
- 0 to 2 mm
- 17
- 26
- Shower or two.
- 60%
-
-
- 11
- 0 to 2 mm
- 17
- 27
- Shower or two.
- 60%
-
-
- 3
- 14
- 25
- Mostly sunny.
- 10%
-
-
- 3
- 13
- 25
- Partly cloudy.
- 20%
-
-
-
-
- 17
- 24
- Possible shower.
- 40%
-
-
- 11
- 2 to 5 mm
- 16
- 24
- Showers.
- 80%
-
-
- 11
- 0 to 1 mm
- 16
- 26
- Shower or two clearing.
- 60%
-
-
- 11
- 0 to 1 mm
- 15
- 26
- Shower or two clearing.
- 50%
-
-
- 11
- 0 to 2 mm
- 16
- 26
- Shower or two clearing.
- 50%
-
-
- 1
- 13
- 25
- Sunny.
- 5%
-
-
- 3
- 11
- 25
- Mostly sunny.
- 10%
-
-
-
-
- 11
- 25
- Shower or two.
- 50%
-
-
- 11
- 2 to 6 mm
- 18
- 25
- Showers.
- 80%
-
-
- 11
- 0 to 2 mm
- 17
- 26
- Shower or two clearing.
- 70%
-
-
- 11
- 0 to 2 mm
- 17
- 25
- Shower or two clearing.
- 60%
-
-
- 11
- 0 to 2 mm
- 17
- 26
- Shower or two.
- 60%
-
-
- 3
- 14
- 25
- Mostly sunny.
- 10%
-
-
- 3
- 14
- 24
- Partly cloudy.
- 20%
-
-
-
-
- 17
- 25
- Possible shower.
- 40%
-
-
- 11
- 1 to 5 mm
- 16
- 25
- Shower or two.
- 70%
-
-
- 11
- 0 to 1 mm
- 16
- 26
- Shower or two clearing.
- 50%
-
-
- 17
- 0 to 1 mm
- 15
- 26
- Possible shower.
- 40%
-
-
- 17
- 0 to 2 mm
- 16
- 27
- Possible shower.
- 40%
-
-
- 1
- 12
- 26
- Sunny.
- 5%
-
-
- 3
- 11
- 26
- Mostly sunny.
- 5%
-
-
-
-
- 11
- 25
- Shower or two.
- 60%
-
-
- 11
- 2 to 5 mm
- 20
- 26
- Showers.
- 80%
-
-
- 11
- 0 to 2 mm
- 20
- 26
- Shower or two.
- 60%
-
-
- 11
- 0 to 3 mm
- 20
- 26
- Shower or two.
- 60%
-
-
- 11
- 0 to 3 mm
- 19
- 27
- Shower or two.
- 60%
-
-
- 3
- 17
- 25
- Mostly sunny.
- 20%
-
-
- 3
- 0 to 0.2 mm
- 17
- 25
- Partly cloudy.
- 30%
-
-
-
-
- 17
- 26
- Possible shower.
- 40%
-
-
- 11
- 2 to 5 mm
- 17
- 26
- Showers.
- 80%
-
-
- 11
- 0 to 1 mm
- 16
- 27
- Shower or two clearing.
- 60%
-
-
- 11
- 0 to 2 mm
- 16
- 27
- Shower or two clearing.
- 60%
-
-
- 11
- 0 to 2 mm
- 16
- 28
- Shower or two clearing.
- 50%
-
-
- 1
- 12
- 27
- Sunny.
- 5%
-
-
- 3
- 12
- 26
- Mostly sunny.
- 10%
-
-
-
-
- 11
- 25
- Shower or two.
- 50%
-
-
- 11
- 2 to 5 mm
- 18
- 25
- Showers.
- 80%
-
-
- 11
- 0 to 2 mm
- 17
- 26
- Shower or two clearing.
- 70%
-
-
- 11
- 0 to 2 mm
- 17
- 25
- Shower or two.
- 60%
-
-
- 11
- 0 to 2 mm
- 17
- 27
- Shower or two.
- 60%
-
-
- 3
- 13
- 25
- Mostly sunny.
- 10%
-
-
- 3
- 13
- 25
- Mostly sunny.
- 10%
-
-
-
-
- 17
- 25
- Possible shower.
- 40%
-
-
- 11
- 1 to 6 mm
- 16
- 25
- Shower or two.
- 70%
-
-
- 11
- 0 to 1 mm
- 16
- 26
- Shower or two clearing.
- 50%
-
-
- 17
- 0 to 1 mm
- 15
- 26
- Possible shower.
- 40%
-
-
- 17
- 0 to 2 mm
- 16
- 27
- Possible shower.
- 40%
-
-
- 1
- 12
- 26
- Sunny.
- 5%
-
-
- 3
- 11
- 25
- Mostly sunny.
- 5%
-
-
-
-
- 11
- 22
- Shower or two.
- 60%
-
-
- 11
- 3 to 8 mm
- 16
- 21
- Showers.
- 90%
-
-
- 11
- 1 to 2 mm
- 16
- 23
- Shower or two.
- 70%
-
-
- 11
- 1 to 3 mm
- 15
- 22
- Shower or two.
- 70%
-
-
- 11
- 0 to 3 mm
- 15
- 24
- Shower or two.
- 60%
-
-
- 3
- 13
- 21
- Mostly sunny.
- 20%
-
-
- 3
- 0 to 0.2 mm
- 11
- 21
- Partly cloudy.
- 30%
-
-
-
-
- 11
- 25
- Shower or two.
- 50%
-
-
- 11
- 2 to 6 mm
- 18
- 25
- Showers.
- 80%
-
-
- 11
- 0 to 1 mm
- 17
- 26
- Shower or two clearing.
- 60%
-
-
- 11
- 0 to 2 mm
- 17
- 26
- Shower or two.
- 60%
-
-
- 11
- 0 to 2 mm
- 17
- 27
- Shower or two.
- 60%
-
-
- 3
- 14
- 25
- Mostly sunny.
- 10%
-
-
- 3
- 13
- 25
- Partly cloudy.
- 20%
-
-
-
-
- 11
- 25
- Shower or two.
- 60%
-
-
- 11
- 2 to 5 mm
- 19
- 25
- Showers.
- 80%
-
-
- 11
- 0 to 1 mm
- 19
- 26
- Shower or two clearing.
- 60%
-
-
- 11
- 0 to 2 mm
- 18
- 25
- Shower or two.
- 60%
-
-
- 11
- 0 to 2 mm
- 18
- 26
- Shower or two.
- 60%
-
-
- 3
- 15
- 25
- Mostly sunny.
- 10%
-
-
- 3
- 15
- 24
- Partly cloudy.
- 20%
-
-
-
-
- 11
- 4 to 8 mm
- 25
- Shower or two.
- 70%
-
-
- 11
- 2 to 8 mm
- 19
- 25
- Showers.
- 80%
-
-
- 11
- 0 to 2 mm
- 19
- 26
- Shower or two.
- 70%
-
-
- 11
- 1 to 3 mm
- 19
- 25
- Shower or two.
- 60%
-
-
- 11
- 0 to 3 mm
- 18
- 27
- Shower or two.
- 60%
-
-
- 3
- 17
- 25
- Mostly sunny.
- 20%
-
-
- 17
- 0 to 1 mm
- 16
- 24
- Possible shower.
- 40%
-
-
-
-
- 11
- 25
- Shower or two.
- 50%
-
-
- 11
- 2 to 5 mm
- 18
- 25
- Showers.
- 80%
-
-
- 11
- 0 to 1 mm
- 17
- 26
- Shower or two clearing.
- 60%
-
-
- 11
- 0 to 2 mm
- 17
- 25
- Shower or two.
- 60%
-
-
- 11
- 0 to 2 mm
- 17
- 27
- Shower or two.
- 60%
-
-
- 3
- 13
- 25
- Mostly sunny.
- 10%
-
-
- 3
- 13
- 24
- Partly cloudy.
- 20%
-
-
-
-
- 11
- 25
- Shower or two.
- 70%
-
-
- 11
- 3 to 8 mm
- 19
- 24
- Showers.
- 90%
-
-
- 11
- 1 to 2 mm
- 19
- 26
- Shower or two.
- 70%
-
-
- 11
- 1 to 3 mm
- 18
- 25
- Shower or two.
- 70%
-
-
- 11
- 0 to 3 mm
- 18
- 27
- Shower or two.
- 60%
-
-
- 3
- 16
- 25
- Mostly sunny.
- 20%
-
-
- 3
- 0 to 0.4 mm
- 14
- 24
- Partly cloudy.
- 30%
-
-
-
-
- 11
- 25
- Shower or two.
- 60%
-
-
- 11
- 2 to 6 mm
- 16
- 25
- Showers.
- 80%
-
-
- 11
- 0 to 2 mm
- 16
- 26
- Shower or two.
- 60%
-
-
- 11
- 0 to 2 mm
- 15
- 26
- Shower or two.
- 60%
-
-
- 11
- 0 to 2 mm
- 15
- 27
- Shower or two.
- 60%
-
-
- 3
- 13
- 25
- Mostly sunny.
- 10%
-
-
- 3
- 12
- 25
- Partly cloudy.
- 20%
-
-
-
-
- 11
- 25
- Shower or two.
- 60%
-
-
- 11
- 2 to 6 mm
- 19
- 25
- Showers.
- 80%
-
-
- 11
- 0 to 2 mm
- 20
- 26
- Shower or two.
- 60%
-
-
- 11
- 1 to 2 mm
- 19
- 25
- Shower or two.
- 70%
-
-
- 11
- 0 to 3 mm
- 18
- 26
- Shower or two.
- 60%
-
-
- 3
- 0 to 0.2 mm
- 16
- 25
- Mostly sunny.
- 30%
-
-
- 17
- 0 to 1 mm
- 16
- 24
- Possible shower.
- 40%
-
-
-
-
- 11
- 25
- Shower or two.
- 50%
-
-
- 11
- 2 to 5 mm
- 17
- 26
- Showers.
- 80%
-
-
- 11
- 0 to 1 mm
- 17
- 27
- Shower or two clearing.
- 60%
-
-
- 11
- 0 to 2 mm
- 17
- 26
- Shower or two.
- 60%
-
-
- 11
- 0 to 2 mm
- 17
- 27
- Shower or two clearing.
- 60%
-
-
- 3
- 13
- 26
- Mostly sunny.
- 10%
-
-
- 3
- 13
- 25
- Mostly sunny.
- 10%
-
-
-
-
- 11
- 25
- Shower or two.
- 60%
-
-
- 11
- 2 to 6 mm
- 20
- 25
- Showers.
- 80%
-
-
- 11
- 0 to 2 mm
- 19
- 26
- Shower or two clearing.
- 60%
-
-
- 11
- 0 to 2 mm
- 19
- 25
- Shower or two.
- 60%
-
-
- 11
- 0 to 2 mm
- 18
- 27
- Shower or two.
- 70%
-
-
- 3
- 15
- 25
- Mostly sunny.
- 20%
-
-
- 3
- 16
- 24
- Partly cloudy.
- 20%
-
-
-
-
- 11
- 25
- Shower or two.
- 70%
-
-
- 11
- 2 to 6 mm
- 17
- 26
- Showers.
- 90%
-
-
- 11
- 0 to 2 mm
- 18
- 26
- Shower or two.
- 60%
-
-
- 11
- 1 to 3 mm
- 17
- 26
- Shower or two.
- 60%
-
-
- 11
- 0 to 3 mm
- 18
- 27
- Shower or two.
- 60%
-
-
- 3
- 15
- 25
- Mostly sunny.
- 20%
-
-
- 3
- 0 to 0.2 mm
- 15
- 24
- Partly cloudy.
- 30%
-
-
-
-
- 11
- 4 to 8 mm
- 25
- Shower or two.
- 60%
-
-
- 11
- 2 to 5 mm
- 18
- 25
- Showers.
- 80%
-
-
- 11
- 0 to 2 mm
- 19
- 26
- Shower or two.
- 60%
-
-
- 11
- 0 to 3 mm
- 18
- 26
- Shower or two.
- 60%
-
-
- 11
- 0 to 3 mm
- 18
- 27
- Shower or two.
- 60%
-
-
- 3
- 15
- 25
- Mostly sunny.
- 20%
-
-
- 3
- 0 to 0.2 mm
- 15
- 25
- Partly cloudy.
- 30%
-
-
-
-
- 11
- 26
- Shower or two.
- 60%
-
-
- 11
- 2 to 6 mm
- 18
- 26
- Showers.
- 90%
-
-
- 11
- 1 to 2 mm
- 17
- 27
- Shower or two clearing.
- 70%
-
-
- 11
- 0 to 2 mm
- 17
- 26
- Shower or two clearing.
- 70%
-
-
- 11
- 1 to 3 mm
- 17
- 28
- Shower or two.
- 70%
-
-
- 3
- 14
- 25
- Mostly sunny.
- 20%
-
-
- 3
- 13
- 25
- Partly cloudy.
- 20%
-
-
-
-
-
- 3
- 24
- Partly cloudy.
- 10%
-
-
- 4
- 0 to 0.4 mm
- 15
- 25
- Cloudy.
- 30%
-
-
- 3
- 15
- 27
- Partly cloudy.
- 5%
-
-
- 3
- 15
- 27
- Partly cloudy.
- 10%
-
-
- 3
- 0 to 1 mm
- 16
- 24
- Partly cloudy.
- 30%
-
-
- 1
- 10
- 23
- Sunny.
- 0%
-
-
- 3
- 8
- 24
- Mostly sunny.
- 0%
-
-
-
-
- 3
- 27
- Partly cloudy.
- 0%
-
-
- 4
- 17
- 27
- Cloudy.
- 20%
-
-
- 3
- 17
- 29
- Partly cloudy.
- 5%
-
-
- 16
- 0 to 1 mm
- 17
- 27
- Possible late storm.
- 30%
-
-
- 17
- 0 to 2 mm
- 17
- 24
- Possible early shower.
- 40%
-
-
- 1
- 10
- 23
- Sunny.
- 0%
-
-
- 3
- 10
- 23
- Mostly sunny.
- 0%
-
-
-
-
- 4
- 20
- Cloudy.
- 30%
-
-
- 11
- 0 to 3 mm
- 15
- 20
- Shower or two.
- 50%
-
-
- 3
- 15
- 21
- Partly cloudy.
- 20%
-
-
- 3
- 15
- 22
- Partly cloudy.
- 20%
-
-
- 17
- 0 to 2 mm
- 16
- 21
- Possible morning shower.
- 40%
-
-
- 1
- 9
- 20
- Sunny.
- 5%
-
-
- 3
- 9
- 20
- Mostly sunny.
- 5%
-
-
-
-
- 4
- 23
- Cloudy.
- 20%
-
-
- 17
- 0 to 1 mm
- 15
- 23
- Possible shower.
- 40%
-
-
- 3
- 15
- 25
- Partly cloudy.
- 20%
-
-
- 3
- 15
- 25
- Partly cloudy.
- 20%
-
-
- 3
- 0 to 1 mm
- 16
- 23
- Partly cloudy.
- 30%
-
-
- 1
- 8
- 23
- Sunny.
- 5%
-
-
- 3
- 9
- 22
- Mostly sunny.
- 5%
-
-
-
-
- 3
- 25
- Partly cloudy.
- 5%
-
-
- 3
- 0 to 0.4 mm
- 15
- 26
- Partly cloudy.
- 30%
-
-
- 3
- 16
- 28
- Partly cloudy.
- 5%
-
-
- 3
- 16
- 27
- Partly cloudy.
- 10%
-
-
- 17
- 0 to 1 mm
- 17
- 24
- Possible shower.
- 40%
-
-
- 1
- 11
- 23
- Sunny.
- 0%
-
-
- 1
- 9
- 23
- Sunny.
- 0%
-
-
-
-
- 3
- 25
- Partly cloudy.
- 0%
-
-
- 3
- 15
- 26
- Partly cloudy.
- 20%
-
-
- 3
- 16
- 28
- Partly cloudy.
- 5%
-
-
- 3
- 17
- 27
- Partly cloudy.
- 10%
-
-
- 17
- 0 to 2 mm
- 17
- 24
- Possible shower.
- 40%
-
-
- 1
- 10
- 22
- Sunny.
- 0%
-
-
- 3
- 10
- 23
- Mostly sunny.
- 5%
-
-
-
-
- 4
- 23
- Cloudy.
- 20%
-
-
- 17
- 0 to 1 mm
- 15
- 24
- Possible shower.
- 40%
-
-
- 3
- 15
- 25
- Partly cloudy.
- 10%
-
-
- 3
- 15
- 25
- Partly cloudy.
- 10%
-
-
- 17
- 0 to 1 mm
- 15
- 24
- Possible shower.
- 40%
-
-
- 1
- 9
- 23
- Sunny.
- 0%
-
-
- 3
- 8
- 23
- Mostly sunny.
- 5%
-
-
-
-
- 4
- 20
- Cloudy.
- 20%
-
-
- 17
- 0 to 2 mm
- 12
- 21
- Possible shower.
- 40%
-
-
- 3
- 13
- 23
- Partly cloudy.
- 20%
-
-
- 4
- 0 to 0.4 mm
- 13
- 23
- Cloudy.
- 30%
-
-
- 17
- 0 to 2 mm
- 13
- 19
- Possible shower.
- 40%
-
-
- 1
- 7
- 20
- Sunny.
- 5%
-
-
- 3
- 6
- 20
- Mostly sunny.
- 5%
-
-
-
-
-
- 17
- 27
- Possible shower.
- 40%
-
-
- 11
- 1 to 3 mm
- 19
- 27
- Shower or two.
- 70%
-
-
- 11
- 0 to 2 mm
- 19
- 28
- Shower or two clearing.
- 60%
-
-
- 17
- 0 to 1 mm
- 18
- 27
- Possible shower.
- 40%
-
-
- 17
- 0 to 1 mm
- 18
- 28
- Possible shower.
- 40%
-
-
- 3
- 17
- 28
- Mostly sunny.
- 10%
-
-
- 3
- 15
- 27
- Partly cloudy.
- 20%
-
-
-
-
- 11
- 25
- Shower or two.
- 50%
-
-
- 11
- 2 to 6 mm
- 17
- 25
- Showers.
- 90%
-
-
- 11
- 1 to 2 mm
- 17
- 26
- Shower or two.
- 70%
-
-
- 11
- 0 to 2 mm
- 16
- 25
- Shower or two.
- 70%
-
-
- 11
- 0 to 2 mm
- 16
- 27
- Shower or two.
- 50%
-
-
- 3
- 14
- 25
- Mostly sunny.
- 20%
-
-
- 3
- 12
- 25
- Partly cloudy.
- 20%
-
-
-
-
- 11
- 26
- Shower or two.
- 50%
-
-
- 11
- 1 to 3 mm
- 19
- 27
- Shower or two.
- 70%
-
-
- 11
- 0 to 1 mm
- 19
- 27
- Shower or two clearing.
- 50%
-
-
- 11
- 0 to 1 mm
- 19
- 26
- Shower or two.
- 50%
-
-
- 17
- 0 to 1 mm
- 18
- 27
- Possible shower.
- 40%
-
-
- 3
- 17
- 26
- Mostly sunny.
- 20%
-
-
- 3
- 0 to 0.4 mm
- 16
- 26
- Partly cloudy.
- 30%
-
-
-
-
- 4
- 22
- Cloudy.
- 30%
-
-
- 11
- 1 to 4 mm
- 14
- 23
- Shower or two.
- 70%
-
-
- 3
- 0 to 0.2 mm
- 14
- 25
- Partly cloudy.
- 30%
-
-
- 3
- 14
- 25
- Partly cloudy.
- 20%
-
-
- 11
- 0 to 1 mm
- 14
- 25
- Shower or two.
- 50%
-
-
- 1
- 11
- 22
- Sunny.
- 5%
-
-
- 3
- 9
- 23
- Mostly sunny.
- 5%
-
-
-
-
- 11
- 26
- Shower or two.
- 50%
-
-
- 11
- 1 to 4 mm
- 18
- 26
- Showers.
- 80%
-
-
- 11
- 0 to 1 mm
- 18
- 27
- Shower or two clearing.
- 60%
-
-
- 11
- 0 to 2 mm
- 17
- 26
- Shower or two.
- 60%
-
-
- 11
- 0 to 1 mm
- 17
- 27
- Shower or two.
- 50%
-
-
- 3
- 16
- 27
- Mostly sunny.
- 20%
-
-
- 3
- 13
- 26
- Partly cloudy.
- 20%
-
-
-
-
- 3
- 26
- Partly cloudy.
- 20%
-
-
- 11
- 0 to 2 mm
- 17
- 26
- Shower or two.
- 60%
-
-
- 3
- 17
- 27
- Partly cloudy.
- 20%
-
-
- 3
- 16
- 27
- Partly cloudy.
- 20%
-
-
- 3
- 0 to 0.4 mm
- 17
- 27
- Partly cloudy.
- 30%
-
-
- 3
- 15
- 26
- Mostly sunny.
- 5%
-
-
- 3
- 12
- 26
- Partly cloudy.
- 5%
-
-
-
-
- 3
- 25
- Partly cloudy.
- 10%
-
-
- 11
- 0 to 2 mm
- 16
- 25
- Shower or two.
- 60%
-
-
- 17
- 0 to 0.4 mm
- 16
- 26
- Possible shower.
- 40%
-
-
- 3
- 0 to 0.2 mm
- 15
- 25
- Partly cloudy.
- 30%
-
-
- 3
- 0 to 0.4 mm
- 16
- 26
- Partly cloudy.
- 30%
-
-
- 1
- 14
- 25
- Sunny.
- 5%
-
-
- 3
- 10
- 25
- Mostly sunny.
- 5%
-
-
-
-
-
- 17
- 27
- Possible shower.
- 40%
-
-
- 11
- 0 to 2 mm
- 21
- 27
- Shower or two.
- 50%
-
-
- 11
- 0 to 2 mm
- 21
- 27
- Morning shower or two.
- 50%
-
-
- 3
- 0 to 0.2 mm
- 21
- 27
- Partly cloudy.
- 30%
-
-
- 3
- 0 to 0.4 mm
- 20
- 28
- Partly cloudy.
- 30%
-
-
- 3
- 19
- 28
- Mostly sunny.
- 5%
-
-
- 3
- 17
- 27
- Partly cloudy.
- 10%
-
-
-
-
- 4
- 27
- Cloudy.
- 30%
-
-
- 3
- 0 to 1 mm
- 20
- 28
- Partly cloudy.
- 30%
-
-
- 11
- 0 to 3 mm
- 21
- 27
- Shower or two.
- 60%
-
-
- 3
- 20
- 28
- Partly cloudy.
- 20%
-
-
- 3
- 0 to 0.2 mm
- 19
- 29
- Partly cloudy.
- 30%
-
-
- 3
- 19
- 28
- Mostly sunny.
- 5%
-
-
- 3
- 15
- 28
- Partly cloudy.
- 10%
-
-
-
-
- 3
- 26
- Partly cloudy.
- 10%
-
-
- 3
- 16
- 27
- Partly cloudy.
- 20%
-
-
- 3
- 17
- 28
- Partly cloudy.
- 20%
-
-
- 3
- 16
- 27
- Partly cloudy.
- 10%
-
-
- 3
- 17
- 27
- Partly cloudy.
- 20%
-
-
- 1
- 15
- 26
- Sunny.
- 5%
-
-
- 3
- 12
- 26
- Mostly sunny.
- 5%
-
-
-
-
- 11
- 26
- Shower or two.
- 50%
-
-
- 17
- 0 to 1 mm
- 21
- 27
- Possible shower.
- 40%
-
-
- 11
- 1 to 4 mm
- 21
- 26
- Shower or two.
- 70%
-
-
- 3
- 0 to 0.4 mm
- 21
- 26
- Partly cloudy.
- 30%
-
-
- 17
- 0 to 1 mm
- 21
- 26
- Possible shower.
- 40%
-
-
- 3
- 19
- 26
- Mostly sunny.
- 20%
-
-
- 3
- 18
- 25
- Partly cloudy.
- 20%
-
-
-
-
-
- 3
- 25
- Partly cloudy.
- 0%
-
-
- 3
- 17
- 28
- Partly cloudy.
- 10%
-
-
- 3
- 19
- 27
- Partly cloudy.
- 20%
-
-
- 3
- 19
- 27
- Partly cloudy.
- 10%
-
-
- 3
- 19
- 26
- Partly cloudy.
- 10%
-
-
- 1
- 16
- 25
- Sunny.
- 5%
-
-
- 1
- 13
- 25
- Sunny.
- 0%
-
-
-
-
- 3
- 24
- Partly cloudy.
- 5%
-
-
- 3
- 17
- 27
- Partly cloudy.
- 10%
-
-
- 3
- 0 to 0.4 mm
- 18
- 26
- Partly cloudy.
- 30%
-
-
- 3
- 17
- 26
- Partly cloudy.
- 10%
-
-
- 3
- 18
- 26
- Partly cloudy.
- 20%
-
-
- 1
- 16
- 25
- Sunny.
- 5%
-
-
- 1
- 13
- 25
- Sunny.
- 5%
-
-
-
-
- 3
- 24
- Partly cloudy.
- 5%
-
-
- 3
- 15
- 27
- Partly cloudy.
- 10%
-
-
- 3
- 16
- 27
- Partly cloudy.
- 20%
-
-
- 3
- 17
- 27
- Partly cloudy.
- 10%
-
-
- 3
- 17
- 27
- Partly cloudy.
- 5%
-
-
- 1
- 16
- 25
- Sunny.
- 5%
-
-
- 1
- 12
- 25
- Sunny.
- 0%
-
-
-
-
- 4
- 25
- Cloudy.
- 10%
-
-
- 3
- 17
- 28
- Partly cloudy.
- 20%
-
-
- 3
- 0 to 0.4 mm
- 17
- 27
- Partly cloudy.
- 30%
-
-
- 3
- 18
- 27
- Partly cloudy.
- 10%
-
-
- 3
- 18
- 27
- Partly cloudy.
- 10%
-
-
- 3
- 17
- 26
- Mostly sunny.
- 5%
-
-
- 1
- 14
- 26
- Sunny.
- 5%
-
-
-
-
- 3
- 24
- Partly cloudy.
- 10%
-
-
- 3
- 17
- 28
- Partly cloudy.
- 20%
-
-
- 3
- 0 to 0.2 mm
- 18
- 27
- Partly cloudy.
- 30%
-
-
- 3
- 19
- 28
- Partly cloudy.
- 10%
-
-
- 3
- 18
- 27
- Partly cloudy.
- 5%
-
-
- 3
- 17
- 27
- Mostly sunny.
- 5%
-
-
- 1
- 15
- 27
- Sunny.
- 5%
-
-
-
-
- 3
- 25
- Partly cloudy.
- 0%
-
-
- 3
- 15
- 27
- Partly cloudy.
- 10%
-
-
- 3
- 17
- 27
- Partly cloudy.
- 20%
-
-
- 3
- 16
- 26
- Partly cloudy.
- 10%
-
-
- 3
- 17
- 25
- Partly cloudy.
- 20%
-
-
- 1
- 13
- 25
- Sunny.
- 5%
-
-
- 1
- 10
- 24
- Sunny.
- 0%
-
-
-
-
- 3
- 24
- Partly cloudy.
- 0%
-
-
- 3
- 15
- 26
- Partly cloudy.
- 10%
-
-
- 3
- 0 to 0.4 mm
- 17
- 25
- Partly cloudy.
- 30%
-
-
- 3
- 16
- 25
- Partly cloudy.
- 10%
-
-
- 3
- 17
- 25
- Partly cloudy.
- 20%
-
-
- 1
- 13
- 24
- Sunny.
- 5%
-
-
- 1
- 11
- 23
- Sunny.
- 0%
-
-
-
-
- 3
- 26
- Partly cloudy.
- 0%
-
-
- 3
- 16
- 28
- Partly cloudy.
- 10%
-
-
- 3
- 17
- 28
- Partly cloudy.
- 10%
-
-
- 3
- 16
- 27
- Partly cloudy.
- 10%
-
-
- 3
- 0 to 0.4 mm
- 17
- 25
- Partly cloudy.
- 30%
-
-
- 1
- 12
- 24
- Sunny.
- 5%
-
-
- 1
- 10
- 24
- Sunny.
- 5%
-
-
-
-
-
- 4
- 27
- Cloudy.
- 20%
-
-
- 11
- 0 to 3 mm
- 21
- 28
- Shower or two.
- 60%
-
-
- 11
- 1 to 3 mm
- 21
- 27
- Shower or two.
- 60%
-
-
- 11
- 0 to 1 mm
- 21
- 28
- Shower or two.
- 50%
-
-
- 17
- 0 to 1 mm
- 21
- 27
- Possible shower.
- 40%
-
-
- 3
- 20
- 27
- Mostly sunny.
- 20%
-
-
- 3
- 18
- 26
- Partly cloudy.
- 20%
-
-
-
-
- 4
- 29
- Cloudy.
- 20%
-
-
- 3
- 0 to 0.4 mm
- 22
- 29
- Partly cloudy.
- 30%
-
-
- 17
- 0 to 1 mm
- 22
- 30
- Possible shower.
- 40%
-
-
- 3
- 0 to 0.4 mm
- 22
- 29
- Partly cloudy.
- 30%
-
-
- 3
- 21
- 29
- Partly cloudy.
- 10%
-
-
- 3
- 21
- 29
- Mostly sunny.
- 10%
-
-
- 3
- 20
- 29
- Mostly sunny.
- 10%
-
-
-
-
- 17
- 26
- Possible shower.
- 40%
-
-
- 11
- 0 to 3 mm
- 20
- 27
- Shower or two.
- 50%
-
-
- 11
- 1 to 5 mm
- 21
- 27
- Shower or two.
- 70%
-
-
- 17
- 0 to 1 mm
- 21
- 27
- Possible early shower.
- 40%
-
-
- 3
- 0 to 0.4 mm
- 20
- 27
- Partly cloudy.
- 30%
-
-
- 3
- 19
- 27
- Mostly sunny.
- 10%
-
-
- 3
- 17
- 27
- Mostly sunny.
- 20%
-
-
-
-
- 4
- 26
- Cloudy.
- 20%
-
-
- 11
- 0 to 2 mm
- 22
- 27
- Shower or two.
- 50%
-
-
- 11
- 0 to 2 mm
- 23
- 27
- Shower or two.
- 60%
-
-
- 11
- 0 to 2 mm
- 22
- 27
- Shower or two.
- 60%
-
-
- 11
- 0 to 1 mm
- 22
- 26
- Shower or two.
- 50%
-
-
- 17
- 0 to 1 mm
- 22
- 26
- Possible shower.
- 40%
-
-
- 3
- 0 to 1 mm
- 21
- 25
- Mostly sunny.
- 30%
-
-
-
-
- 4
- 27
- Cloudy.
- 20%
-
-
- 11
- 0 to 3 mm
- 20
- 28
- Shower or two.
- 50%
-
-
- 11
- 1 to 3 mm
- 21
- 29
- Shower or two.
- 70%
-
-
- 11
- 0 to 2 mm
- 21
- 28
- Shower or two.
- 60%
-
-
- 17
- 0 to 0.4 mm
- 20
- 28
- Possible shower.
- 40%
-
-
- 3
- 20
- 29
- Mostly sunny.
- 20%
-
-
- 3
- 19
- 28
- Mostly sunny.
- 20%
-
-
-
-
-
- 17
- 29
- Possible shower.
- 40%
-
-
- 17
- 0 to 2 mm
- 22
- 29
- Possible shower.
- 40%
-
-
- 17
- 0 to 1 mm
- 21
- 29
- Possible shower.
- 40%
-
-
- 17
- 0 to 1 mm
- 22
- 29
- Possible shower.
- 40%
-
-
- 3
- 20
- 29
- Partly cloudy.
- 10%
-
-
- 3
- 21
- 30
- Mostly sunny.
- 20%
-
-
- 3
- 21
- 29
- Mostly sunny.
- 20%
-
-
-
-
- 3
- 28
- Partly cloudy.
- 30%
-
-
- 3
- 0 to 0.4 mm
- 20
- 29
- Partly cloudy.
- 30%
-
-
- 3
- 0 to 0.4 mm
- 20
- 29
- Partly cloudy.
- 30%
-
-
- 3
- 0 to 1 mm
- 21
- 29
- Partly cloudy.
- 30%
-
-
- 3
- 19
- 29
- Partly cloudy.
- 10%
-
-
- 3
- 19
- 30
- Mostly sunny.
- 10%
-
-
- 3
- 19
- 29
- Mostly sunny.
- 10%
-
-
-
-
- 11
- 27
- Showers.
- 80%
-
-
- 11
- 3 to 10 mm
- 21
- 28
- Showers.
- 90%
-
-
- 11
- 2 to 6 mm
- 21
- 29
- Showers.
- 80%
-
-
- 11
- 2 to 8 mm
- 22
- 29
- Showers.
- 80%
-
-
- 17
- 0 to 1 mm
- 21
- 29
- Possible shower.
- 40%
-
-
- 17
- 0 to 1 mm
- 20
- 30
- Possible shower.
- 40%
-
-
- 11
- 0 to 2 mm
- 20
- 29
- Shower or two.
- 50%
-
-
-
-
-
- 11
- 28
- Shower or two.
- 60%
-
-
- 11
- 2 to 6 mm
- 22
- 30
- Showers.
- 80%
-
-
- 11
- 1 to 4 mm
- 23
- 30
- Showers increasing.
- 80%
-
-
- 11
- 1 to 4 mm
- 22
- 29
- Shower or two.
- 70%
-
-
- 17
- 0 to 2 mm
- 22
- 30
- Possible shower.
- 40%
-
-
- 17
- 0 to 2 mm
- 22
- 29
- Possible shower.
- 40%
-
-
- 17
- 0 to 1 mm
- 22
- 29
- Possible shower.
- 40%
-
-
-
-
- 11
- 24
- Shower or two.
- 60%
-
-
- 11
- 1 to 4 mm
- 17
- 25
- Shower or two.
- 70%
-
-
- 11
- 1 to 3 mm
- 18
- 25
- Shower or two.
- 60%
-
-
- 11
- 0 to 3 mm
- 18
- 24
- Shower or two.
- 60%
-
-
- 17
- 0 to 1 mm
- 17
- 25
- Possible shower.
- 40%
-
-
- 17
- 0 to 1 mm
- 17
- 24
- Possible shower.
- 40%
-
-
- 17
- 0 to 1 mm
- 17
- 25
- Possible shower.
- 40%
-
-
-
-
- 11
- 26
- Showers.
- 90%
-
-
- 11
- 4 to 10 mm
- 22
- 27
- Showers.
- 90%
-
-
- 11
- 2 to 8 mm
- 22
- 28
- Showers.
- 90%
-
-
- 11
- 3 to 8 mm
- 22
- 28
- Showers.
- 80%
-
-
- 11
- 0 to 3 mm
- 22
- 28
- Shower or two.
- 60%
-
-
- 11
- 0 to 3 mm
- 22
- 28
- Shower or two.
- 50%
-
-
- 11
- 1 to 4 mm
- 21
- 27
- Shower or two.
- 60%
-
-
-
-
- 17
- 29
- Possible shower.
- 40%
-
-
- 11
- 2 to 6 mm
- 24
- 29
- Shower or two.
- 70%
-
-
- 11
- 0 to 1 mm
- 24
- 29
- Shower or two.
- 50%
-
-
- 11
- 0 to 3 mm
- 24
- 29
- Shower or two.
- 60%
-
-
- 11
- 0 to 2 mm
- 24
- 29
- Shower or two.
- 50%
-
-
- 17
- 0 to 1 mm
- 23
- 29
- Possible shower.
- 40%
-
-
- 11
- 0 to 2 mm
- 23
- 29
- Shower or two.
- 50%
-
-
-
-
- 11
- 28
- Showers.
- 90%
-
-
- 11
- 5 to 15 mm
- 21
- 28
- Showers.
- 90%
-
-
- 11
- 3 to 10 mm
- 21
- 29
- Showers.
- 90%
-
-
- 11
- 4 to 10 mm
- 21
- 28
- Showers.
- 90%
-
-
- 11
- 2 to 8 mm
- 21
- 28
- Showers easing.
- 80%
-
-
- 11
- 2 to 8 mm
- 21
- 28
- Shower or two.
- 70%
-
-
- 11
- 2 to 8 mm
- 20
- 28
- Showers.
- 80%
-
-
-
-
- 3
- 27
- Partly cloudy.
- 30%
-
-
- 11
- 0 to 2 mm
- 19
- 28
- Shower or two.
- 60%
-
-
- 11
- 0 to 1 mm
- 20
- 28
- Shower or two.
- 50%
-
-
- 17
- 0 to 1 mm
- 20
- 28
- Possible shower.
- 40%
-
-
- 3
- 0 to 0.4 mm
- 19
- 28
- Partly cloudy.
- 30%
-
-
- 3
- 19
- 27
- Partly cloudy.
- 20%
-
-
- 3
- 0 to 0.2 mm
- 18
- 28
- Partly cloudy.
- 30%
-
-
-
-
- 11
- 28
- Shower or two.
- 70%
-
-
- 11
- 3 to 10 mm
- 23
- 28
- Showers.
- 90%
-
-
- 11
- 2 to 6 mm
- 23
- 29
- Showers.
- 80%
-
-
- 11
- 2 to 6 mm
- 22
- 28
- Shower or two.
- 70%
-
-
- 11
- 1 to 4 mm
- 22
- 28
- Shower or two.
- 60%
-
-
- 11
- 0 to 3 mm
- 22
- 28
- Shower or two.
- 50%
-
-
- 11
- 0 to 4 mm
- 22
- 28
- Shower or two.
- 50%
-
-
-
-
-
- 3
- 27
- Partly cloudy.
- 10%
-
-
- 3
- 0 to 0.2 mm
- 18
- 29
- Partly cloudy.
- 30%
-
-
- 3
- 18
- 29
- Partly cloudy.
- 10%
-
-
- 3
- 18
- 29
- Partly cloudy.
- 20%
-
-
- 3
- 18
- 29
- Partly cloudy.
- 5%
-
-
- 3
- 17
- 30
- Mostly sunny.
- 5%
-
-
- 3
- 17
- 29
- Mostly sunny.
- 5%
-
-
-
-
- 3
- 30
- Partly cloudy.
- 0%
-
-
- 3
- 20
- 32
- Partly cloudy.
- 0%
-
-
- 3
- 21
- 33
- Partly cloudy.
- 0%
-
-
- 3
- 20
- 33
- Partly cloudy.
- 0%
-
-
- 3
- 20
- 31
- Partly cloudy.
- 0%
-
-
- 3
- 19
- 32
- Mostly sunny.
- 0%
-
-
- 1
- 19
- 32
- Sunny.
- 0%
-
-
-
-
- 3
- 28
- Partly cloudy.
- 10%
-
-
- 3
- 19
- 31
- Partly cloudy.
- 0%
-
-
- 3
- 19
- 32
- Partly cloudy.
- 0%
-
-
- 3
- 20
- 31
- Partly cloudy.
- 0%
-
-
- 3
- 20
- 29
- Partly cloudy.
- 5%
-
-
- 3
- 18
- 30
- Mostly sunny.
- 0%
-
-
- 1
- 16
- 30
- Sunny.
- 0%
-
-
-
-
- 3
- 29
- Partly cloudy.
- 5%
-
-
- 3
- 18
- 33
- Mostly sunny.
- 0%
-
-
- 3
- 19
- 33
- Mostly sunny.
- 0%
-
-
- 3
- 20
- 32
- Partly cloudy.
- 0%
-
-
- 3
- 20
- 30
- Partly cloudy.
- 5%
-
-
- 1
- 18
- 31
- Sunny.
- 0%
-
-
- 1
- 15
- 30
- Sunny.
- 0%
-
-
-
-
-
- 3
- 32
- Partly cloudy.
- 20%
-
-
- 3
- 24
- 33
- Partly cloudy.
- 20%
-
-
- 3
- 25
- 33
- Partly cloudy.
- 20%
-
-
- 3
- 24
- 33
- Partly cloudy.
- 10%
-
-
- 3
- 24
- 33
- Partly cloudy.
- 10%
-
-
- 3
- 24
- 32
- Partly cloudy.
- 10%
-
-
- 3
- 23
- 33
- Mostly sunny.
- 10%
-
-
-
-
- 3
- 32
- Partly cloudy.
- 20%
-
-
- 3
- 24
- 33
- Partly cloudy.
- 20%
-
-
- 3
- 25
- 34
- Partly cloudy.
- 10%
-
-
- 3
- 24
- 33
- Partly cloudy.
- 10%
-
-
- 3
- 24
- 33
- Partly cloudy.
- 10%
-
-
- 3
- 23
- 33
- Partly cloudy.
- 5%
-
-
- 3
- 23
- 33
- Mostly sunny.
- 10%
-
-
-
-
- 11
- 28
- Shower or two.
- 50%
-
-
- 17
- 0 to 2 mm
- 23
- 29
- Possible shower.
- 40%
-
-
- 3
- 23
- 29
- Partly cloudy.
- 20%
-
-
- 3
- 23
- 29
- Partly cloudy.
- 20%
-
-
- 3
- 0 to 0.2 mm
- 23
- 29
- Partly cloudy.
- 30%
-
-
- 3
- 23
- 29
- Partly cloudy.
- 20%
-
-
- 3
- 22
- 29
- Mostly sunny.
- 20%
-
-
-
-
- 3
- 31
- Partly cloudy.
- 5%
-
-
- 3
- 21
- 32
- Partly cloudy.
- 10%
-
-
- 3
- 22
- 32
- Partly cloudy.
- 5%
-
-
- 3
- 20
- 32
- Partly cloudy.
- 0%
-
-
- 3
- 21
- 32
- Partly cloudy.
- 5%
-
-
- 3
- 20
- 32
- Partly cloudy.
- 0%
-
-
- 3
- 19
- 32
- Mostly sunny.
- 10%
-
-
-
-
- 11
- 29
- Shower or two.
- 70%
-
-
- 11
- 1 to 6 mm
- 25
- 29
- Shower or two.
- 70%
-
-
- 11
- 1 to 8 mm
- 24
- 29
- Shower or two.
- 60%
-
-
- 11
- 0 to 5 mm
- 25
- 30
- Shower or two.
- 60%
-
-
- 11
- 0 to 3 mm
- 25
- 29
- Shower or two.
- 50%
-
-
- 17
- 0 to 1 mm
- 25
- 29
- Possible shower.
- 40%
-
-
- 17
- 0 to 2 mm
- 24
- 29
- Possible shower.
- 40%
-
-
-
-
- 3
- 32
- Partly cloudy.
- 0%
-
-
- 3
- 20
- 32
- Partly cloudy.
- 10%
-
-
- 3
- 20
- 33
- Partly cloudy.
- 5%
-
-
- 3
- 20
- 32
- Partly cloudy.
- 5%
-
-
- 3
- 20
- 32
- Partly cloudy.
- 0%
-
-
- 3
- 19
- 32
- Partly cloudy.
- 5%
-
-
- 3
- 19
- 32
- Mostly sunny.
- 5%
-
-
-
-
- 17
- 32
- Possible shower.
- 40%
-
-
- 17
- 0 to 1 mm
- 24
- 32
- Possible shower.
- 40%
-
-
- 11
- 0 to 4 mm
- 25
- 31
- Shower or two.
- 50%
-
-
- 16
- 1 to 10 mm
- 24
- 32
- Shower or two. Possible storm.
- 60%
-
-
- 11
- 0 to 4 mm
- 24
- 31
- Shower or two.
- 50%
-
-
- 17
- 0 to 5 mm
- 24
- 31
- Possible shower.
- 40%
-
-
- 3
- 0 to 0.2 mm
- 24
- 31
- Mostly sunny.
- 30%
-
-
-
-
-
- 3
- 32
- Partly cloudy.
- 5%
-
-
- 3
- 23
- 35
- Mostly sunny.
- 0%
-
-
- 3
- 25
- 34
- Partly cloudy.
- 5%
-
-
- 3
- 25
- 34
- Partly cloudy.
- 5%
-
-
- 3
- 25
- 34
- Partly cloudy.
- 0%
-
-
- 1
- 24
- 35
- Sunny.
- 0%
-
-
- 1
- 23
- 34
- Sunny.
- 0%
-
-
-
-
- 3
- 31
- Partly cloudy.
- 20%
-
-
- 3
- 20
- 33
- Mostly sunny.
- 5%
-
-
- 3
- 21
- 33
- Partly cloudy.
- 10%
-
-
- 3
- 23
- 33
- Partly cloudy.
- 5%
-
-
- 3
- 23
- 35
- Partly cloudy.
- 0%
-
-
- 1
- 22
- 35
- Sunny.
- 0%
-
-
- 1
- 21
- 34
- Sunny.
- 0%
-
-
-
-
- 3
- 31
- Partly cloudy.
- 0%
-
-
- 3
- 22
- 33
- Mostly sunny.
- 5%
-
-
- 3
- 23
- 33
- Partly cloudy.
- 0%
-
-
- 3
- 23
- 33
- Partly cloudy.
- 0%
-
-
- 3
- 23
- 33
- Partly cloudy.
- 0%
-
-
- 1
- 21
- 33
- Sunny.
- 0%
-
-
- 1
- 21
- 32
- Sunny.
- 0%
-
-
-
-
- 3
- 32
- Partly cloudy.
- 30%
-
-
- 3
- 20
- 35
- Mostly sunny.
- 5%
-
-
- 3
- 21
- 35
- Partly cloudy.
- 10%
-
-
- 3
- 23
- 34
- Partly cloudy.
- 10%
-
-
- 3
- 23
- 35
- Partly cloudy.
- 0%
-
-
- 1
- 21
- 35
- Sunny.
- 0%
-
-
- 1
- 20
- 35
- Sunny.
- 0%
-
-
-
-
- 3
- 34
- Mostly sunny.
- 0%
-
-
- 3
- 23
- 34
- Partly cloudy.
- 10%
-
-
- 3
- 23
- 35
- Mostly sunny.
- 5%
-
-
- 3
- 23
- 35
- Partly cloudy.
- 5%
-
-
- 3
- 23
- 33
- Partly cloudy.
- 5%
-
-
- 3
- 23
- 34
- Mostly sunny.
- 0%
-
-
- 1
- 23
- 34
- Sunny.
- 5%
-
-
-
-
- 3
- 31
- Partly cloudy.
- 20%
-
-
- 3
- 25
- 31
- Mostly sunny.
- 5%
-
-
- 3
- 0 to 1 mm
- 25
- 31
- Partly cloudy.
- 30%
-
-
- 3
- 25
- 31
- Partly cloudy.
- 10%
-
-
- 3
- 25
- 31
- Partly cloudy.
- 5%
-
-
- 3
- 26
- 31
- Mostly sunny.
- 5%
-
-
- 1
- 25
- 31
- Sunny.
- 5%
-
-
-
-
-
- 3
- 30
- Partly cloudy.
- 5%
-
-
- 3
- 18
- 32
- Mostly sunny.
- 5%
-
-
- 3
- 20
- 32
- Partly cloudy.
- 20%
-
-
- 3
- 21
- 30
- Partly cloudy.
- 10%
-
-
- 3
- 18
- 29
- Mostly sunny.
- 0%
-
-
- 1
- 15
- 29
- Sunny.
- 0%
-
-
- 1
- 13
- 28
- Sunny.
- 0%
-
-
-
-
- 3
- 33
- Mostly sunny.
- 5%
-
-
- 3
- 20
- 32
- Mostly sunny.
- 10%
-
-
- 3
- 20
- 33
- Partly cloudy.
- 10%
-
-
- 3
- 21
- 31
- Partly cloudy.
- 10%
-
-
- 3
- 19
- 31
- Mostly sunny.
- 0%
-
-
- 1
- 16
- 30
- Sunny.
- 0%
-
-
- 1
- 14
- 30
- Sunny.
- 0%
-
-
-
-
- 3
- 29
- Partly cloudy.
- 5%
-
-
- 3
- 17
- 33
- Mostly sunny.
- 0%
-
-
- 3
- 19
- 33
- Mostly sunny.
- 0%
-
-
- 3
- 21
- 31
- Partly cloudy.
- 5%
-
-
- 3
- 19
- 31
- Mostly sunny.
- 0%
-
-
- 1
- 16
- 31
- Sunny.
- 0%
-
-
- 1
- 13
- 29
- Sunny.
- 0%
-
-
-
-
- 3
- 32
- Mostly sunny.
- 5%
-
-
- 3
- 20
- 30
- Partly cloudy.
- 10%
-
-
- 3
- 20
- 31
- Partly cloudy.
- 10%
-
-
- 3
- 18
- 28
- Partly cloudy.
- 10%
-
-
- 3
- 16
- 28
- Mostly sunny.
- 0%
-
-
- 1
- 11
- 27
- Sunny.
- 0%
-
-
- 1
- 10
- 26
- Sunny.
- 0%
-
-
-
-
- 3
- 29
- Partly cloudy.
- 10%
-
-
- 3
- 19
- 33
- Mostly sunny.
- 0%
-
-
- 3
- 23
- 32
- Partly cloudy.
- 5%
-
-
- 3
- 23
- 31
- Partly cloudy.
- 5%
-
-
- 3
- 20
- 30
- Mostly sunny.
- 0%
-
-
- 1
- 17
- 29
- Sunny.
- 0%
-
-
- 1
- 15
- 29
- Sunny.
- 0%
-
-
-
-
-
- 3
- 27
- Partly cloudy.
- 0%
-
-
- 3
- 17
- 30
- Mostly sunny.
- 0%
-
-
- 3
- 18
- 30
- Mostly sunny.
- 0%
-
-
- 3
- 19
- 29
- Partly cloudy.
- 10%
-
-
- 3
- 17
- 27
- Partly cloudy.
- 10%
-
-
- 1
- 12
- 26
- Sunny.
- 0%
-
-
- 1
- 10
- 25
- Sunny.
- 0%
-
-
-
-
- 3
- 25
- Partly cloudy.
- 0%
-
-
- 3
- 18
- 28
- Partly cloudy.
- 5%
-
-
- 3
- 19
- 29
- Partly cloudy.
- 5%
-
-
- 3
- 20
- 28
- Partly cloudy.
- 10%
-
-
- 3
- 19
- 26
- Partly cloudy.
- 10%
-
-
- 1
- 15
- 26
- Sunny.
- 0%
-
-
- 1
- 12
- 25
- Sunny.
- 0%
-
-
-
-
- 3
- 24
- Partly cloudy.
- 0%
-
-
- 3
- 17
- 27
- Partly cloudy.
- 0%
-
-
- 3
- 18
- 28
- Partly cloudy.
- 0%
-
-
- 3
- 19
- 27
- Partly cloudy.
- 10%
-
-
- 3
- 17
- 24
- Partly cloudy.
- 20%
-
-
- 1
- 12
- 23
- Sunny.
- 0%
-
-
- 1
- 10
- 23
- Sunny.
- 0%
-
-
-
-
- 3
- 26
- Partly cloudy.
- 0%
-
-
- 3
- 18
- 29
- Partly cloudy.
- 0%
-
-
- 3
- 19
- 30
- Partly cloudy.
- 5%
-
-
- 3
- 21
- 28
- Partly cloudy.
- 20%
-
-
- 3
- 17
- 25
- Partly cloudy.
- 20%
-
-
- 1
- 12
- 24
- Sunny.
- 0%
-
-
- 1
- 11
- 24
- Sunny.
- 0%
-
-
-
-
- 3
- 23
- Partly cloudy.
- 0%
-
-
- 3
- 15
- 27
- Partly cloudy.
- 0%
-
-
- 3
- 15
- 28
- Partly cloudy.
- 5%
-
-
- 3
- 16
- 27
- Partly cloudy.
- 20%
-
-
- 3
- 15
- 23
- Partly cloudy.
- 20%
-
-
- 1
- 9
- 22
- Sunny.
- 0%
-
-
- 1
- 8
- 22
- Sunny.
- 0%
-
-
-
-
- 3
- 27
- Partly cloudy.
- 0%
-
-
- 3
- 17
- 31
- Mostly sunny.
- 0%
-
-
- 3
- 18
- 32
- Mostly sunny.
- 0%
-
-
- 3
- 19
- 30
- Partly cloudy.
- 5%
-
-
- 3
- 17
- 28
- Mostly sunny.
- 5%
-
-
- 1
- 14
- 28
- Sunny.
- 0%
-
-
- 1
- 11
- 27
- Sunny.
- 0%
-
-
-
-
-
- 3
- 25
- Partly cloudy.
- 0%
-
-
- 3
- 16
- 27
- Partly cloudy.
- 10%
-
-
- 3
- 17
- 29
- Partly cloudy.
- 5%
-
-
- 16
- 0 to 3 mm
- 19
- 25
- Showers. Possible afternoon storm.
- 50%
-
-
- 3
- 15
- 21
- Partly cloudy.
- 20%
-
-
- 1
- 9
- 21
- Sunny.
- 0%
-
-
- 1
- 9
- 21
- Sunny.
- 0%
-
-
-
-
- 3
- 26
- Partly cloudy.
- 0%
-
-
- 3
- 15
- 27
- Partly cloudy.
- 5%
-
-
- 3
- 16
- 27
- Partly cloudy.
- 10%
-
-
- 3
- 0 to 0.4 mm
- 16
- 27
- Partly cloudy.
- 30%
-
-
- 3
- 0 to 1 mm
- 15
- 22
- Partly cloudy.
- 30%
-
-
- 1
- 8
- 23
- Sunny.
- 0%
-
-
- 1
- 8
- 23
- Sunny.
- 5%
-
-
-
-
- 3
- 26
- Partly cloudy.
- 0%
-
-
- 3
- 17
- 27
- Partly cloudy.
- 0%
-
-
- 3
- 18
- 28
- Partly cloudy.
- 10%
-
-
- 16
- 0 to 4 mm
- 19
- 26
- Rain at times. Possible storm.
- 50%
-
-
- 3
- 0 to 0.4 mm
- 14
- 21
- Cloud clearing.
- 30%
-
-
- 1
- 10
- 21
- Sunny.
- 0%
-
-
- 3
- 9
- 22
- Mostly sunny.
- 5%
-
-
-
-
- 3
- 24
- Partly cloudy.
- 0%
-
-
- 3
- 15
- 27
- Partly cloudy.
- 5%
-
-
- 3
- 16
- 28
- Partly cloudy.
- 5%
-
-
- 3
- 0 to 1 mm
- 17
- 26
- Partly cloudy.
- 30%
-
-
- 3
- 0 to 1 mm
- 15
- 21
- Partly cloudy.
- 30%
-
-
- 1
- 9
- 21
- Sunny.
- 0%
-
-
- 1
- 8
- 21
- Sunny.
- 0%
-
-
-
-
- 3
- 26
- Partly cloudy.
- 0%
-
-
- 3
- 17
- 28
- Partly cloudy.
- 5%
-
-
- 3
- 18
- 29
- Partly cloudy.
- 10%
-
-
- 16
- 1 to 8 mm
- 19
- 25
- Rain at times. Possible storm.
- 60%
-
-
- 3
- 12
- 21
- Mostly sunny.
- 20%
-
-
- 1
- 9
- 21
- Sunny.
- 0%
-
-
- 1
- 9
- 22
- Sunny.
- 0%
-
-
-
-
- 3
- 25
- Partly cloudy.
- 5%
-
-
- 3
- 17
- 28
- Partly cloudy.
- 10%
-
-
- 16
- 0 to 4 mm
- 19
- 29
- Rain at times. Possible storm.
- 50%
-
-
- 16
- 1 to 8 mm
- 18
- 24
- Rain at times. Possible storm.
- 60%
-
-
- 1
- 10
- 20
- Sunny.
- 10%
-
-
- 1
- 10
- 21
- Sunny.
- 0%
-
-
- 1
- 9
- 22
- Sunny.
- 0%
-
-
-
-
- 3
- 27
- Partly cloudy.
- 0%
-
-
- 3
- 17
- 28
- Partly cloudy.
- 0%
-
-
- 3
- 18
- 29
- Partly cloudy.
- 20%
-
-
- 16
- 1 to 10 mm
- 19
- 26
- Rain at times. Possible storm.
- 60%
-
-
- 3
- 12
- 22
- Mostly sunny.
- 20%
-
-
- 1
- 9
- 22
- Sunny.
- 0%
-
-
- 1
- 9
- 23
- Sunny.
- 0%
-
-
-
-
- 3
- 25
- Partly cloudy.
- 0%
-
-
- 3
- 13
- 27
- Partly cloudy.
- 5%
-
-
- 3
- 15
- 26
- Partly cloudy.
- 20%
-
-
- 3
- 15
- 27
- Partly cloudy.
- 20%
-
-
- 3
- 0 to 1 mm
- 15
- 23
- Partly cloudy.
- 30%
-
-
- 1
- 8
- 22
- Sunny.
- 0%
-
-
- 1
- 8
- 22
- Sunny.
- 0%
-
-
-
-
- 3
- 26
- Partly cloudy.
- 0%
-
-
- 3
- 16
- 27
- Partly cloudy.
- 5%
-
-
- 3
- 17
- 28
- Partly cloudy.
- 10%
-
-
- 16
- 0 to 0.2 mm
- 17
- 27
- Possible late storm.
- 30%
-
-
- 3
- 0 to 1 mm
- 16
- 22
- Partly cloudy.
- 30%
-
-
- 1
- 9
- 23
- Sunny.
- 0%
-
-
- 3
- 9
- 22
- Mostly sunny.
- 5%
-
-
-
-
-
- 8
- 31
- Possible late rain periods.
- 40%
-
-
- 8
- 0 to 1 mm
- 17
- 30
- Possible early rain.
- 40%
-
-
- 3
- 16
- 25
- Partly cloudy.
- 20%
-
-
- 3
- 14
- 23
- Partly cloudy.
- 5%
-
-
- 1
- 10
- 23
- Sunny.
- 0%
-
-
- 1
- 10
- 23
- Sunny.
- 0%
-
-
- 1
- 10
- 24
- Sunny.
- 0%
-
-
-
-
- 3
- 31
- Mostly sunny.
- 10%
-
-
- 16
- 0 to 0.4 mm
- 20
- 30
- Possible afternoon storm.
- 30%
-
-
- 3
- 0 to 0.4 mm
- 19
- 26
- Partly cloudy.
- 30%
-
-
- 3
- 17
- 24
- Partly cloudy.
- 10%
-
-
- 1
- 13
- 24
- Sunny.
- 5%
-
-
- 1
- 12
- 23
- Sunny.
- 0%
-
-
- 1
- 11
- 23
- Sunny.
- 0%
-
-
-
-
- 3
- 31
- Partly cloudy.
- 0%
-
-
- 3
- 21
- 30
- Partly cloudy.
- 10%
-
-
- 3
- 21
- 31
- Partly cloudy.
- 20%
-
-
- 3
- 19
- 28
- Partly cloudy.
- 10%
-
-
- 3
- 17
- 26
- Mostly sunny.
- 5%
-
-
- 1
- 13
- 25
- Sunny.
- 0%
-
-
- 1
- 12
- 25
- Sunny.
- 0%
-
-
-
-
- 4
- 25
- Cloudy.
- 0%
-
-
- 16
- 18
- 29
- Possible afternoon storm.
- 10%
-
-
- 16
- 0 to 6 mm
- 20
- 29
- Rain at times. Possible storm.
- 50%
-
-
- 11
- 0 to 4 mm
- 19
- 24
- Shower or two.
- 50%
-
-
- 1
- 13
- 21
- Sunny.
- 10%
-
-
- 1
- 10
- 21
- Sunny.
- 0%
-
-
- 1
- 10
- 22
- Sunny.
- 0%
-
-
-
-
- 4
- 25
- Cloudy.
- 5%
-
-
- 16
- 0 to 1 mm
- 20
- 29
- Possible shower or storm.
- 40%
-
-
- 16
- 2 to 10 mm
- 20
- 27
- Shower or two. Possible storm.
- 70%
-
-
- 17
- 0 to 3 mm
- 17
- 22
- Possible morning shower.
- 40%
-
-
- 1
- 11
- 21
- Sunny.
- 0%
-
-
- 1
- 12
- 21
- Sunny.
- 0%
-
-
- 1
- 11
- 22
- Sunny.
- 0%
-
-
-
-
- 4
- 26
- Cloudy.
- 5%
-
-
- 16
- 19
- 29
- Possible morning storm.
- 20%
-
-
- 16
- 0 to 4 mm
- 21
- 27
- Possible shower or storm.
- 40%
-
-
- 3
- 0 to 0.4 mm
- 18
- 24
- Partly cloudy.
- 30%
-
-
- 1
- 14
- 23
- Sunny.
- 5%
-
-
- 1
- 11
- 22
- Sunny.
- 0%
-
-
- 1
- 11
- 23
- Sunny.
- 0%
-
-
-
-
\ No newline at end of file
diff --git a/test/test_weather.py b/test/test_weather.py
deleted file mode 100644
index fdf98e11..00000000
--- a/test/test_weather.py
+++ /dev/null
@@ -1,109 +0,0 @@
-from test.conftest import MockUQCSBot, TEST_CHANNEL_ID
-from unittest.mock import patch
-import xml.etree.ElementTree as ET
-import datetime
-
-
-def mocked_xml_get(state):
- """
- This method will be used to replace the requests response
- Returns locally stored XML Queensland forecasts from 2019.
- """
- source = {"NSW": "IDN11060", "ACT": "IDN11060", "NT": "IDD10207", "QLD": "IDQ11295",
- "SA": "IDS10044", "TAS": "IDT16710", "VIC": "IDV10753", "WA": "IDW14199"}
- try:
- data = open("test/bom_{}.xml".format(source[state]))
- root = ET.fromstring(data.read())
- except Exception:
- return None
- return root
-
-
-def mocked_response_header(node: ET.Element, location: str):
- """
- This method will be used to replace the header response
- Returns the header for 30th Aprl, 2019.
- """
- # write day name, "today" or "tomorrow"
- forcast_date = datetime.datetime.strptime(
- "".join(node.get('start-time-local')
- .rsplit(":", 1)), "%Y-%m-%dT%H:%M:%S%z"
- ).date()
- today_date = datetime.date(2019, 4, 30)
- date_delta = (forcast_date - today_date).days
- if date_delta == 0:
- date_name = "Today"
- elif date_delta == 1:
- date_name = "Tomorrow"
- elif date_delta == -1:
- # can happen during the witching hours
- date_name = "Yesterday"
- else:
- date_name = forcast_date.strftime("%A")
- return "*{}'s Weather Forcast For {}*".format(date_name, location)
-
-
-@patch("uqcsbot.scripts.weather.get_xml", new=mocked_xml_get)
-@patch("uqcsbot.scripts.weather.response_header", new=mocked_response_header)
-def test_brisbane(uqcsbot: MockUQCSBot):
- """
- Tests all varients !weather that give today's Brisbane weather
- """
- uqcsbot.post_message(TEST_CHANNEL_ID, '!weather')
- uqcsbot.post_message(TEST_CHANNEL_ID, '!weather Brisbane')
- uqcsbot.post_message(TEST_CHANNEL_ID, '!weather QLD Brisbane')
- uqcsbot.post_message(TEST_CHANNEL_ID, '!weather 0')
- uqcsbot.post_message(TEST_CHANNEL_ID, '!weather Brisbane 0')
- uqcsbot.post_message(TEST_CHANNEL_ID, '!weather QLD Brisbane 0')
-
- messages = uqcsbot.test_messages.get(TEST_CHANNEL_ID, [])
- for i in range(len(messages)-1, -1, -1):
- if messages[i]['text'].startswith("!weather"):
- messages.pop(i)
-
- assert len(messages) == 6
- for m in messages[1:]:
- assert m['text'] == messages[0]['text']
-
- assert messages[0]['text'].split("\n")[0] == "*Today's Weather Forcast For Brisbane*"
-
-
-@patch("uqcsbot.scripts.weather.get_xml", new=mocked_xml_get)
-@patch("uqcsbot.scripts.weather.response_header", new=mocked_response_header)
-def test_tomorrow(uqcsbot: MockUQCSBot):
- """
- Test !weather for tomorrow's Esk weather
- """
- uqcsbot.post_message(TEST_CHANNEL_ID, '!weather Esk 1')
- messages = uqcsbot.test_messages.get(TEST_CHANNEL_ID, [])
- assert messages[-1]['text'].split("\n")[0] == "*Tomorrow's Weather Forcast For Esk*"
-
-
-@patch("uqcsbot.scripts.weather.get_xml", new=mocked_xml_get)
-@patch("uqcsbot.scripts.weather.response_header", new=mocked_response_header)
-def test_location(uqcsbot: MockUQCSBot):
- """
- Test !weather for an multi word interstate location
- """
- uqcsbot.post_message(TEST_CHANNEL_ID, '!weather NSW Coffs Harbour')
- messages = uqcsbot.test_messages.get(TEST_CHANNEL_ID, [])
- assert messages[-1]['text'].split("\n")[0] == "*Today's Weather Forcast For Coffs Harbour*"
-
-
-@patch("uqcsbot.scripts.weather.get_xml", new=mocked_xml_get)
-@patch("uqcsbot.scripts.weather.response_header", new=mocked_response_header)
-def test_error(uqcsbot: MockUQCSBot):
- """
- Test !weather for error messages
- """
- uqcsbot.post_message(TEST_CHANNEL_ID, '!weather nowhere')
- messages = uqcsbot.test_messages.get(TEST_CHANNEL_ID, [])
- assert messages[-1]['text'] == "Location Not Found"
-
- uqcsbot.post_message(TEST_CHANNEL_ID, '!weather -1')
- messages = uqcsbot.test_messages.get(TEST_CHANNEL_ID, [])
- assert messages[-1]['text'] == "No Forecast Available For That Day"
-
- uqcsbot.post_message(TEST_CHANNEL_ID, '!weather TAS Hobart')
- messages = uqcsbot.test_messages.get(TEST_CHANNEL_ID, [])
- assert messages[-1]['text'] == "Could Not Retrieve BOM Data"
diff --git a/unimplemented_commands/weather.js b/unimplemented_commands/weather.js
new file mode 100644
index 00000000..c61050fa
--- /dev/null
+++ b/unimplemented_commands/weather.js
@@ -0,0 +1,76 @@
+// Description:
+// Gets the weather info or radar for st lucia by default or a specified location
+//
+// Commands:
+// `!weather [LOCATION]` - Gets the weather for a location (default: brisbane)
+
+module.exports = function (robot) {
+ robot.respond(/!?weather ?(.+)?/i, function (res) {
+ var location = res.match[1] || "Brisbane";
+ robot.getWeather(location, res)
+ });
+
+ robot.getWeather = function(location, res) {
+ var query = 'select * from weather.forecast where woeid in (select woeid from geo.places(1) where text="' + location + '") and u="c"';
+ var url = "https://query.yahooapis.com/v1/public/yql?q=" + encodeURIComponent(query) + "&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys";
+
+ robot.http(url).get()
+ (function(err, resp, body) {
+ var json = JSON.parse(body);
+ var data = json.query.results.channel;
+ var today = data.item.forecast[0];
+ if (err == null) {
+ var temp = Math.round(data.item.condition.temp * 100) / 100;
+ var humidity = data.atmosphere.humidity;
+ var min = Math.round(today.low * 100) / 100;
+ var max = Math.round(today.high * 100) / 100;
+ var weather = data.item.condition;
+ res.send("> " + robot.getWeatherEmoji(parseInt(weather.code)) + " *" + data.location.city + ", " +
+ data.location.country + "* is *" + temp + "°C* (min: *" + min+ "°C*, max: *" + max +
+ "°C*) with humidity at *" + humidity + "%* and condition *" + weather.text + "*");
+ } else {
+ res.send(">Can't find " + location);
+ }
+ });
+ }
+
+ robot.getWeatherEmoji = function(code) {
+ var result = "";
+
+ if ([0, 2].indexOf(code) != -1) {
+ result += ":tornado:";
+ }
+ if ([1, 3, 4, 37, 38, 39, 45, 47].indexOf(code) != -1) {
+ result += ":thunder_cloud_and_rain:";
+ }
+ if ([5, 6, 7, 8, 10, 13, 14, 15, 16, 18, 25, 41, 42, 46].indexOf(code) != -1) {
+ result += ":snowflake:";
+ }
+ if ([5, 10, 9, 11, 12, 35, 40].indexOf(code) != -1) {
+ result += ":droplet:";
+ }
+ if ([17, 35].indexOf(code) != -1) {
+ result += ":snow_cloud:";
+ }
+ if ([19, 20, 21, 22].indexOf(code) != -1) {
+ result += ":fog:";
+ }
+ if ([23, 24].indexOf(code) != -1) {
+ result += ":dash:";
+ }
+ if ([26, 27, 28].indexOf(code) != -1) {
+ result += ":cloud:";
+ }
+ if ([29, 30, 44].indexOf(code) != -1) {
+ result += ":partly_sunny:";
+ }
+ if ([31, 33].indexOf(code) != -1) {
+ result += ":full_moon_with_face:";
+ }
+ if ([32, 34].indexOf(code) != -1) {
+ result += ":sunny:";
+ }
+
+ return result;
+ }
+}
diff --git a/uqcsbot/scripts/weather.py b/uqcsbot/scripts/weather.py
deleted file mode 100644
index 39c3da0e..00000000
--- a/uqcsbot/scripts/weather.py
+++ /dev/null
@@ -1,215 +0,0 @@
-from uqcsbot import bot, Command
-from urllib.request import urlopen
-import xml.etree.ElementTree as ET
-from datetime import datetime as DT
-from typing import Union, Tuple
-
-
-def get_xml(state: str) -> Union[None, ET.Element]:
- """
- Get BOM data as an XML for a given state
- """
- source = {"NSW": "IDN11060", "ACT": "IDN11060", "NT": "IDD10207", "QLD": "IDQ11295",
- "SA": "IDS10044", "TAS": "IDT16710", "VIC": "IDV10753", "WA": "IDW14199"}
- try:
- data = urlopen(f"ftp://ftp.bom.gov.au/anon/gen/fwo/{source[state]}.xml")
- root = ET.fromstring(data.read())
- except Exception:
- return None
- return root
-
-
-def process_arguments(arguments: str) -> Tuple[str, str, int]:
- """
- Process the arguments given to !weather, dividing them into state, location and future
- Uses default of QLD, Brisbane and 0 if not given
- """
- args = arguments.split(" ") if arguments else []
- if args and args[-1].lstrip('-+').isnumeric():
- future = int(args.pop())
- else:
- future = 0
-
- # get location
- if args:
- if args[0].upper() in ["NSW", "ACT", "NT", "QLD", "SA", "TAS", "VIC", "WA"]:
- state = args.pop(0).upper()
- else:
- state = "QLD"
- location = " ".join(args)
- else:
- state = "QLD"
- location = "Brisbane"
-
- return state, location, future
-
-
-def find_location(root: ET.Element, location: str, future: int) \
- -> Tuple[Union[None, ET.Element], Union[None, str]]:
- """
- Rreturns the XML for a given the location and how far into the future
- """
- node = root.find(f".//area[@description='{location}']")
- if node is None:
- return None, "Location Not Found"
- if node.get("type") != "location":
- return None, "Location Given Is Region"
- node = node.find(f".//forecast-period[@index='{future}']")
- if node is None:
- return None, "No Forecast Available For That Day"
- return node, None
-
-
-def response_header(node: ET.Element, location: str) -> str:
- """
- Returns the response header, in the form "{Location}'s Weather Forcast For {Day}"
- """
- forcast_date = DT.strptime("".join(node.get('start-time-local')
- .rsplit(":", 1)), "%Y-%m-%dT%H:%M:%S%z").date()
- today_date = DT.now().date()
- date_delta = (forcast_date - today_date).days
- if date_delta == 0:
- date_name = "Today"
- elif date_delta == 1:
- date_name = "Tomorrow"
- elif date_delta == -1:
- # can happen during the witching hours
- date_name = "Yesterday"
- else:
- date_name = forcast_date.strftime("%A")
- return f"*{date_name}'s Weather Forcast For {location}*"
-
-
-def response_overall(node: ET.Element) -> str:
- """
- Returns the overall forcast
- """
- icon_code = node.find(".//element[@type='forecast_icon_code']")
- if icon_code is not None:
- icon = ["", "sunny", "clear", "partly-cloudy", "cloudy", "", "haze", "", "light-rain",
- "wind", "fog", "showers", "rain", "dust", "frost", "snow", "storm",
- "light-showers", "heavy-showers", "tropicalcyclone"][int(icon_code.text)]
- icon = f":bom_{icon}:" if icon else ""
- descrip = node.find(".//text[@type='precis']")
- if descrip is not None:
- return f"{icon} {descrip.text} {icon}"
- return ""
-
-
-def response_temperature(node: ET.Element) -> str:
- """
- Returns the temperature forecast
- """
- temp_min = node.find(".//element[@type='air_temperature_minimum']")
- temp_max = node.find(".//element[@type='air_temperature_maximum']")
- if temp_min is not None and temp_max is not None:
- return f"Temperature: {temp_min.text}ºC - {temp_max.text}ºC"
- elif temp_min is not None:
- return f"Minimum Temperature: {temp_min.text}ºC"
- elif temp_max is not None:
- return f"Maximum Temperature: {temp_max.text}ºC"
- return ""
-
-
-def response_precipitation(node: ET.Element) -> str:
- """
- Returns the precipitaion forecast
- """
- rain_range = node.find(".//element[@type='precipitation_range']")
- precip_prob = node.find(".//text[@type='probability_of_precipitation']")
- if rain_range is not None and precip_prob is not None:
- return f"{precip_prob.text} Chance of Precipitation; {rain_range.text}"
- elif precip_prob is not None:
- return f"{precip_prob.text} Chance of Precipitation"
- return ""
-
-
-def response_brisbane_detailed() -> Tuple[str, str, str]:
- """
- Returns a detailed forecast for Brisbane
- """
- try:
- data = urlopen("ftp://ftp.bom.gov.au/anon/gen/fwo/IDQ10605.xml")
- root = ET.fromstring(data.read())
- except Exception:
- return "", "", ""
- node = root.find(".//area[@description='Brisbane']")
- if node is None:
- return "", "", ""
- node = node.find(".//forecast-period[@index='0']")
- if node is None:
- return "", "", ""
-
- forecast_node = node.find(".//text[@type='forecast']")
- forecast = "" if forecast_node is None else forecast_node.text
-
- fire_danger_node = node.find(".//text[@type='fire_danger']")
- if fire_danger_node is None or fire_danger_node.text == "Low-Moderate":
- fire_danger = ""
- else:
- fire_danger = f"There Is A {fire_danger_node.text} Fire Danger Today"
-
- uv_alert_node = node.find(".//text[@type='uv_alert']")
- uv_alert = "" if uv_alert_node is None else uv_alert_node.text
-
- return (forecast, fire_danger, uv_alert)
-
-
-@bot.on_command('weather')
-def handle_weather(command: Command) -> None:
- """
- `!weather [[state] location] [day]` - Returns the weather forcaset for a location
- `day` is how many days into the future the forecast is for (0 is today and default)
- `location` defaults to Brisbane, and `state` defualts to QLD
- """
-
- (state, location, future) = process_arguments(command.arg)
-
- root = get_xml(state)
- if root is None:
- bot.post_message(command.channel_id, "Could Not Retrieve BOM Data")
- return
-
- node, find_response = find_location(root, location, future)
- if node is None:
- bot.post_message(command.channel_id, find_response)
- return
-
- # get responses
- response = []
- response.append(response_header(node, location))
- response.append(response_overall(node))
- response.append(response_temperature(node))
- response.append(response_precipitation(node))
- # post
- bot.post_message(command.channel_id, "\n".join([r for r in response if r]))
-
-
-@bot.on_schedule('cron', hour=6, minute=0, timezone='Australia/Brisbane')
-def daily_weather() -> None:
- """
- Posts today's Brisbane weather at 6:00am every day
- """
-
- (state, location, future) = ("QLD", "Brisbane", 0)
-
- root = get_xml(state)
- if root is None:
- return
-
- node, find_response = find_location(root, location, future)
- if node is None:
- return
-
- # get responses
- response = []
- brisbane_detailed, brisbane_fire, brisbane_uv = response_brisbane_detailed()
- response.append(response_header(node, location))
- response.append(response_overall(node))
- response.append(brisbane_detailed)
- response.append(response_temperature(node))
- response.append(brisbane_fire)
- response.append(brisbane_uv)
- # post
- general = bot.channels.get("general")
- bot.post_message(general.id, "\n".join([r for r in response if r]))