For future reference, if the graphic linked in the previous post is no 
longer available, just save the svg code (everything but the '#import math' 
line) to a file, rose.svg. Open it in a text editor, then replace the two 
lines of text declaration and the two "if" blocks, all following the final 
comment, with this code:

  <text x="90" y="83" font-size="12" text-anchor="middle" 
fill="red">10</text>
  <text x="90" y="97" font-size="12" text-anchor="middle" 
fill="dodgerblue">5</text>
  <polygon points="90 29, 100 65, 80 65" fill="red" transform="rotate(315 
90 85)" />
  <polygon points="90 34.4, 95 65, 85 65" fill="dodgerblue" 
transform="rotate(200 90 85)" />




On Thursday, April 5, 2018 at 5:25:01 PM UTC-4, RobbH wrote:
>
> It's available (temporarily) here:
>
> http://rh3.operamail.com/windrose_testing.svg
>
> On Thursday, April 5, 2018 at 3:45:58 PM UTC-4, Alec Bennett wrote:
>>
>> Possible to see the generated output of that somewhere?
>>
>> On Thu, Apr 5, 2018 at 12:36 PM, RobbH <holm...@gmail.com> wrote:
>>
>>> I finally came to the realization that everything I wanted to do could 
>>> be done with the Cheetah engine, and even learned a tiny bit of Python in 
>>> the process. The following code, added to index,html.tmpl (or some other 
>>> template) generates a crude compass rose with up to two directional vanes, 
>>> one (in red) for gust direction and one (in blue) for wind direction. The 
>>> length of the vanes is proportional to the corresponding speed value, on a 
>>> logarithmic scale.
>>>
>>> #import math
>>>        <svg version="1.1" baseProfile="full" width="200" height="200" 
>>> xmlns="http://www.w3.org/2000/svg";>
>>>        <!-- draw outer ring, then 10-degree tickmarks, 2 gray inner 
>>> circles and 3 scale labels (1, 10, 100)  -->
>>>         <circle cx="90" cy="85" r="75" stroke="black" stroke-width="5" 
>>> stroke-dasharray="1,12.08" fill="transparent" />
>>>         <circle cx="90" cy="85" r="80" stroke="lightgray" 
>>> stroke-width="10" fill="transparent" />
>>>         <circle cx="90" cy="85" r="38" stroke="lightgray" 
>>> fill="transparent" />
>>>         <circle cx="90" cy="85" r="56" stroke="lightgray" 
>>> fill="transparent" />
>>>         <text x="120" y="26" font-size="8" text-anchor="middle" 
>>> fill="gray">100</text>
>>>         <text x="112" y="42" font-size="8" text-anchor="middle" 
>>> fill="gray">10</text>
>>>         <text x="103" y="58" font-size="8" text-anchor="middle" 
>>> fill="gray">1</text>
>>>        <!-- draw compass rose background (2 polygons) then 4 directional 
>>> letters and innermost circle  -->
>>>         <polygon points="90 35, 100 75, 140 85, 100 95, 90 135, 80 95, 
>>> 40 85, 80 75" fill="lightgray" transform="rotate(45 90 85)" />
>>>         <polygon points="90 25, 100 75, 150 85, 100 95, 90 145, 80 95, 
>>> 30 85, 80 75" fill="lightgray" />
>>>         <text x="90" y="22" font-size="16" text-anchor="middle" 
>>> fill="gray">N</text>
>>>         <text x="90" y="159" font-size="16" text-anchor="middle" 
>>> fill="gray">S</text>
>>>         <text x="22" y="91" font-size="16" text-anchor="middle" 
>>> fill="gray">W</text>
>>>         <text x="158" y="91" font-size="16" text-anchor="middle" 
>>> fill="gray">E</text>
>>>         <circle cx="90" cy="85" r="20" stroke="black" fill="white" />
>>>        <!-- put current values for gust and wind speed in inner circle, 
>>> then calculate and draw vanes if direction given and speed > 0   -->
>>>         <text x="90" y="83" font-size="12" text-anchor="middle" 
>>> fill="orangered">$current.windGust.formatted</text>
>>>         <text x="90" y="97" font-size="12" text-anchor="middle" 
>>> fill="dodgerblue">$current.windSpeed.formatted</text>
>>>        #if $current.windGustDir.formatted != "   N/A" and 
>>> float($current.windGust.formatted) > 0
>>>        #set $wg = 65 - 18 * (1 + 
>>> math.log(float($current.windGust.formatted), 10))
>>>         <polygon points="90 $wg, 100 65, 80 65" fill="orangered" 
>>> transform="rotate($current.windGustDir.formatted 90 85)" />
>>>        #end if
>>>         #if $current.windDir.formatted != "   N/A" and 
>>> float($current.windSpeed.formatted) > 0
>>>        #set $ws = 65 - 18 * (1 + 
>>> math.log(float($current.windSpeed.formatted), 10))
>>>         <polygon points="90 $ws, 95 65, 85 65" fill="dodgerblue" 
>>> transform="rotate($current.windDir.formatted 90 85)" />
>>>        #end if
>>>        </svg>
>>>
>>>
>>> This is set up to work with speeds measured in miles per hour. Some 
>>> modification would be needed to make it work with other units. I hope 
>>> someone will find it useful. Improvements welcome.
>>>
>>>
>>> On Monday, April 2, 2018 at 8:21:51 PM UTC-4, RobbH wrote:
>>>>
>>>> Very nice! That's not exactly what I'm attempting right now, but I'll 
>>>> keep in mind for the future.
>>>>
>>>> I hope you'll add it to the weewx wiki, so it'll be easy to find in the 
>>>> future.
>>>>
>>>> I didn't find the realtime gauge data extension in the wiki, either, 
>>>> but found it here:
>>>>
>>>> https://github.com/gjr80/weewx-realtime_gauge-data
>>>>
>>>>
>>>>
>>>> On Sunday, April 1, 2018 at 10:32:53 PM UTC-4, Alec Bennett wrote:
>>>>>
>>>>> > On the other hand, it may be possible to do all I need with 
>>>>> javascript, and I'll probably try that first.
>>>>>
>>>>> If you want to use javascript, you might be interested in this project 
>>>>> of mine:
>>>>>
>>>>> github.com/wrybread/Weather-Underground-Style-Real-Time-Gauge
>>>>>
>>>>> Personally I think javascript is a good method for current wind 
>>>>> conditions, since it makes it easy to update a graphic continually. This 
>>>>> live demo should update every 2 seconds or so (every time the wind 
>>>>> indicator turns green is an update):
>>>>>
>>>>> sinkingsensation.com/wu_gauge/
>>>>>
>>>>> I should really update that though, since it's very small on my 
>>>>> screen. A CSS issue. Or here (css optimized for mobile):
>>>>>
>>>>> sinkingsensation.com/wind
>>>>>
>>>>> Note that this requires enabling the RTC ("real time gauge") extension 
>>>>> in weewx. And fyi the effect is achieved by rotating the circle to the 
>>>>> current wind direction. 
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>  
>>>>>
>>>>>> A crude version, without making the wind directional pointer 
>>>>>> proportional to wind speed, can be done with svg graphics and no outside 
>>>>>> help. I've posted that to the old thread that I linked in the first post.
>>>>>>
>>>>>>
>>>>>> On Friday, March 30, 2018 at 8:27:41 PM UTC-4, RobbH wrote:
>>>>>>>
>>>>>>> Maybe, at long last, I'm going to have to buckle down and learn 
>>>>>>> enough of Python to do this!
>>>>>>>
>>>>>>>
>>>>>>> On Friday, March 30, 2018 at 6:51:49 PM UTC-4, vince wrote:
>>>>>>>>
>>>>>>>> On Friday, March 30, 2018 at 1:54:30 PM UTC-7, RobbH wrote:
>>>>>>>>>
>>>>>>>>> Still pursuing this, and I have learned how to generate the sort 
>>>>>>>>> of image I want, but not within Weewx. Is it possible call an 
>>>>>>>>> external 
>>>>>>>>> program (shell script) during each report cycle?
>>>>>>>>>
>>>>>>>>>
>>>>>>>> It is possible to do darn near anything if you write an extension 
>>>>>>>> to do so.....assuming the account weewx runs as has privileges to do 
>>>>>>>> so.
>>>>>>>>  
>>>>>>>>
>>>>>>> -- 
>>> You received this message because you are subscribed to a topic in the 
>>> Google Groups "weewx-user" group.
>>> To unsubscribe from this topic, visit 
>>> https://groups.google.com/d/topic/weewx-user/FAaVIAv-Hfs/unsubscribe.
>>> To unsubscribe from this group and all its topics, send an email to 
>>> weewx-user+...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>

-- 
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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to