Local CWF Formatter Changes - PowerPoint PPT Presentation

1 / 20
About This Presentation
Title:

Local CWF Formatter Changes

Description:

Wave height ranges do not match what you have in the grids ... among forecasters: some insist on blocky edits for WaveHeights, others stick ... – PowerPoint PPT presentation

Number of Views:51
Avg rating:3.0/5.0
Slides: 21
Provided by: GDP5
Category:

less

Transcript and Presenter's Notes

Title: Local CWF Formatter Changes


1
Local CWF Formatter Changes
  • Matt Moreland
  • NWSFO HGX
  • April 2004

2
Common Forecaster Concerns
  • Wave height ranges do not match what you have in
    the grids
  • Wave heights are worded consistently too high
  • Wind speeds come out too high ? with 11 grids of
    16 knots and 1 grid of 20 knots, formatter would
    output winds AROUND 20 KNOTS
  • Chop phrasing for inland waters areas does not
    match the associated wind speeds

3
Factors Affecting Marine Fcst (1)
  • Marine forecaster edits all the winds (inland and
    offshore) ? inland winds usually less than 15 mph
    in our CWA
  • Model surface winds (SmartInit) not ideal yet ?
    GFS usually too high and Eta can be too low in
    post-frontal situations
  • Wave heights GWW model doesnt work that well
    for us ? usually edited by hand

4
Factors Affecting Marine Fcst (2)
  • Water temps can see a 25 degree or higher range
    in SSTs in mid-winter
  • Land breeze/seabreeze interactions
  • Run GFE in 2.5 km resolution to better contour
    the coastal effects
  • Lots of verification in CWA 2 official buoys,
    PORTS data, TABS data (Texas Automated Buoy
    System)

5
Factors Affecting Marine Fcst (3)
  • Editing methods vary among forecasters some
    insist on blocky edits for WaveHeights, others
    stick with preferred contouring
  • SmartTools used to create WaveHeight grids based
    on surface winds ? a good first guess
  • HGX issues a Tide Forecast (TIDHGX) ? uses TCOONs
    data and other sites for tide level verification

6
Our Current CWF (1)
  • Use WaveHeight grids solely to produce Seas (no
    explicit gridded display of swell)
  • Have two edit areas (two bays) used in _BayAreas
    and _ChopAreas
  • No edit areas included in BayAreasWaves,
    BayChopAreas, IntracoastalChopAreas, or
    LakeChopAreas

7
Our Current CWF (2)
  • May include single wind values with wind speeds
    up to 20 knots, and 5 knot wind ranges with
    speeds up to 25 knots
  • Derive marine headlines from the Headline grids
  • Changes detailed here have greatly improved wind
    speed, wave height, and inland waters chop
    wordings

8
Two Possible Wave Height Fixes(suggested by
Edward Tirado)
  • Change WaveHeight sampling method
    frommoderatedMax to moderatedMinMax
  • ? use a 6 hour sampling period
  • -- OR
  • Add WaveHeight to moderated_dict method to weed
    out the highest values

9
moderated_dict Method
def moderated_dict (self, parmHisto, timeRange,
componentName) dictWind (0,
20) dictWaveHeight (0, 20) return
dict This method will weed out highest 20 of
Wind and WaveHeight values when data sampling
takes place.
10
Sampling with moderatedMinMax
  • Found this change to be the most effective (even
    better than using moderated_dict)
  • Works best when you add significantly more detail
    to the table in the wave_range method

11
wave_range Method
12
Changes to wave_words
  • In the wave_words method, use different values
    for determining the average (avg)
  • min, max self.getValue(wave, MinMax)
  • avg self.getValue(wave, Average) new line
    added
  • avg (min avg) / 2 changed from (min
    max) / 2
  • Basically an average of the minimum and average
    WaveHeight values, rather than the average of the
    minimum and maximum values
  • Results in a slightly lower value being passed to
    the table in the wave_range method ? the
    formatter then outputs lower wave height values

13
Wind Speed Fixes (1)
  • Sample wind speed twice in the vector_mag_hook
    method
  • maxWind, dir tree.stats.get(Wind, timeRange,
    mergeMethodMax)
  • avgWind, dir tree.stats.get(Wind,
    timeRange, mergeMethodAvg)
  • maxWind (maxWind avgWind) / 2
  • Results in a slightly lower maxWind value used to
    develop phrasing in vector_mag_hook
  • This is a band-aid approach ? however after
    testing several different sampling combinations,
    this one worked very well

14
Wind Speed Fixes (2)
  • Changed value in marineRounding method from 5
    to 1 ? resulted in much more accurate wind
    speeds
  • def marineRounding(self, value, mode,
    increment, mixFlag)
  • mode Nearest
  • .
  • return self.round(value, mode, 1)
  • Issue at low wind speeds this change will
    sometimes result in an off phrase (like 6 TO 11
    KNOTS or 7 TO 12 KNOTS) ? must correct these
    phrases in the _postProcessProduct method

15
Wind Speed Fixes (3)
  • Include wind speed in moderated_dict method to
    eliminate the highest values
  • def moderated_dict(self, parmHisto, timeRange,
    componentName)
  • dictWind (0, 20)
  • return dict

16
Inland Waters Phrase Changes
  • Added in chop_phrase method
  • Use BASE version of chop_setUp instead of the
    Southern Region CWF_Local one ? this version was
    not working for us
  • Amend chop_words method to get the phrasing we
    want

17
chop_setUp method
Set inlandWaters self._chopAreas(tree, node)
18
chop_words method (1)
  • Sample wind speeds twice in this method (similar
    to what we did in vector_mag_hook method for
    wind)
  • Takes an average of the maximum wind and average
    wind, rather than just using the max wind to
    determine your chop phrase
  • def chop_words(self, tree, node)
  • statDict node.getStatDict()
  • stats self.getStats(statDict, Wind)
  • ..
  • timeRange node.parent.getTimeRange()
  • maxWind, dir tree.stats.get(Wind,
    timeRange,
  • mergeMethod Max)
  • avgWind, dir tree.stats.get(Wind,
    timeRange,
  • mergeMethod Avg)
  • maxWind (maxWind avgWind) / 2

19
chop_words method (2)
20
chop_words method (3)
Write a Comment
User Comments (0)
About PowerShow.com