Here is the spec on AFMs from the NWS:
https://www.weather.gov/media/notification/dir/AFM_Format.pdf


On Wed, Oct 7, 2020 at 5:57 PM John Kline <j...@johnkline.com> wrote:

> Absent a spec on area forecast matrices, and absent any problem reports on
> point forecast matrices, there isn’t much to go on here.
>
> On Oct 7, 2020, at 2:35 PM, Michael Bruski <michael.bru...@gmail.com>
> wrote:
>
> 
> Hi John,
>
> I've looked at several forecast matrices from my local and surrounding NWS
> forecast offices and haven't seen anything format wise that would lead me
> to think they would cause a problem for the forecast extension.  I have
> selected several different AFMs and see they parse fine.  But I ran into
> this issue with my local AFM and spent several hours trying to track down
> the cause.   The issue is not with the matrix itself but with text
> preceeding the DTG.   To test further, I put a cheap hack into the parse
> loop so that date2ts() isn't called if the first word in 'line' is
> 'Including'.  This actually works (in this specific instance) and a valid
> forecast is produced.  What other lines of text might NWS put in the header
> preceeding the DTG, I just don't know.    The URLs mentioned in forecast.py
> are dead links so I couldn't find any specifics on decoding the reports.
>
> I'm not terribly comfortable programming in python so I'm not sure the
> best approach to work this issue but sending bad data to time.mktime() via
> date2ts() is probably bad unless there is a way to trap the error.  Not
> meant to criticize...  just my thoughts on how to make it better.
>
> Mike/AJ9X
>
> On Wednesday, October 7, 2020 at 4:24:56 PM UTC-4 jo...@johnkline.com
> wrote:
>
>> Perhaps Area Forecast Matrix responses can’t be treated just like Point
>> Forecast Matrix responses.  AFMs are only supported to the extent that they
>> provide an identically formatted response as the PFM response.
>>
>> What do you know about AFMs and the differences between them and PFMs?
>>
>> On Oct 7, 2020, at 12:18 PM, Michael Bruski <michael...@gmail.com> wrote:
>>
>> 
>>
>>
>> Hi all,
>>
>> First of all, I am running WeeWX 4.1.1 with forecast extension 3.4.0b10.
>>
>> I had recently managed to use a Area Forecast Matrix for one location and
>> that is working fine.   Recently I tried to setup a second location to use
>> the AFM (different LID and FOID) and it fails to get a forecast even though
>> I see it in the web browser using the URL that forecast.py uses.  After
>> careful application of some trace print statements, I see the forecast is
>> succesfully download from the FOID and that the forecast for the specified
>> LID is also located and extracted but nothing gets parsed.  Below is a copy
>> of my trace output from the log:
>>
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS:
>> forecast downloaded successfully from '
>> http://forecast.weather.gov/product.php?site=NWS&product=AFM&format=txt&issuedby=LWX
>> '
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS:
>> 'MDZ005-072100-'
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS:
>> 'Carroll-'
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS:
>> 'Including the cities of Eldersburg and Westminster'
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS:
>> '137 PM EDT Wed Oct 7 2020'
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS: ''
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS:
>> 'Date             Wed 10/07/20            Thu 10/08/20            Fri
>> 10/09/20'
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS:
>> 'EDT 3hrly     05 08 11 14 17 20 23 02 05 08 11 14 17 20 23 02 05 08 11 14
>> 17 20'
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS:
>> 'UTC 3hrly     09 12 15 18 21 00 03 06 09 12 15 18 21 00 03 06 09 12 15 18
>> 21 00'
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS: ''
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS:
>> 'Max/Min                75 77 80    47 48 52    65 67 70    42 44 48    68
>> 70 73'
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS:
>> 'Temp                   76 76 68 61 56 51 50 60 65 64 55 50 47 45 45 61 68
>> 67 59'
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS:
>> 'Dewpt                  52 52 53 50 48 46 45 45 43 42 43 42 41 40 41 45 45
>> 46 47'
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS:
>> 'RH                     43 43 59 67 74 83 83 58 45 45 64 74 79 82 86 56 43
>> 47 64'
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS:
>> 'Wind dir                W  W NW NW NW NW NW NW NW NW NW NW  W  W  W SW SW
>> SW  S'
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS:
>> 'Wind spd               19 17 10  6  5  5  6 11 12 10  5  3  1  2  1  4  6
>> 8  4'
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS:
>> 'Wind gust              33 31'
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS:
>> 'Clouds                 CL CL SC FW FW CL CL FW CL CL CL CL FW FW FW FW FW
>> FW SC'
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS:
>> 'PoP 12hr                     20          20           0
>> 0           0'
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS:
>> 'QPF 12hr                      0           0           0
>> 0           0'
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS:
>> 'Rain shwrs                 S  S'
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS: ''
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS: ''
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS:
>> 'Date          Sat 10/10/20  Sun 10/11/20  Mon 10/12/20  Tue 10/13/20'
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS:
>> 'EDT 6hrly     02 08 14 20   02 08 14 20   02 08 14 20   02 08 14 20'
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS:
>> 'UTC 6hrly     06 12 18 00   06 12 18 00   06 12 18 00   06 12 18 00'
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS: ''
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS:
>> 'Min/Max          54    75      56    69      53    66      54    68'
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS:
>> 'Temp          55 56 73 66   61 58 66 60   56 55 63 59   56 56 65 61'
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS:
>> 'Dewpt         50 54 59 60   59 56 55 54   54 53 56 56   56 56 58 57'
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS:
>> 'PWind dir         S    SW      SW    SE       E     E       E    SE'
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS:
>> 'Wind char        LT    GN      LT    LT      GN    GN      LT    LT'
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS:
>> 'Avg clouds    SC B1 B1 B1   B1 B1 B1 B1   B2 B2 B2 B2   B2 B2 B2 B1'
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS:
>> 'PoP 12hr          5    20      30    30      40    40      30    30'
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS:
>> 'Rain shwrs              S    C  C  C  C    C  C  C  C    C  C  C  C'
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS: ''
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS:
>> '$$'
>> Oct  7 14:36:45 server weewx[3014] INFO user.forecast: NWSThread: NWS:
>> successfully extracted forecast for 'MDZ005'
>>
>> Examining NWSParseForecast, nothing is parsed until the Date/Time Group
>> (a line with 7 tokens) is located.  In the above AFM another line preceeds
>> the DTG which also happens to have 7 tokens.  I think this line is being
>> passed to date2ts() which in turn fails and causes the parser to stop
>> looking for further input.  I didn't see a way to raise the issue on GitHub
>> so I thought I would bring this up here.
>>
>> Mike/AJ9X
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "weewx-user" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to weewx-user+...@googlegroups.com.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/weewx-user/05fa293c-659c-4619-9b06-9ed97a30efa4o%40googlegroups.com
>> <https://groups.google.com/d/msgid/weewx-user/05fa293c-659c-4619-9b06-9ed97a30efa4o%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> --
> You received this message because you are subscribed to the Google Groups
> "weewx-user" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to weewx-user+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/weewx-user/3936dc80-0d29-414f-a5b9-5f286bd659b1n%40googlegroups.com
> <https://groups.google.com/d/msgid/weewx-user/3936dc80-0d29-414f-a5b9-5f286bd659b1n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> --
> You received this message because you are subscribed to the Google Groups
> "weewx-user" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to weewx-user+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/weewx-user/85F7E477-9A8C-4AF3-8713-4A121E5AE3A3%40johnkline.com
> <https://groups.google.com/d/msgid/weewx-user/85F7E477-9A8C-4AF3-8713-4A121E5AE3A3%40johnkline.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to weewx-user+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/weewx-user/CAC5oUmM%2BgpEeMtL45fVL-wz6W56xOUyVHzmnSMe4FUhcqMkvVw%40mail.gmail.com.

Reply via email to