It is currently March 29th, 2024, 12:17 pm

Weather graph?

General topics related to Rainmeter.
User avatar
Niemil
Posts: 218
Joined: August 5th, 2014, 5:04 pm
Location: Luleå, Sweden

Weather graph?

Post by Niemil »

I would love an weather graph as a rainmeter, it would be very useful.
Is there any rainmeter plugin already out now that does this? I been trying search but can't find!

A graph like this: http://www.yr.no/sted/Sverige/Norrbotten/Lule%C3%A5/time_for_time.html
The meteogram as it says, the lines that shows how weather changes over the next 24 hours.
Is it possible someone can make this plugin or can recommand me a very similar one?
User avatar
balala
Rainmeter Sage
Posts: 16110
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: Weather graph?

Post by balala »

I know this is a very late reply, but I just finished to work with this code. I also know this is not exactly what you asked, but I think this can be used. The skin shows the current temperature and the maximum and minimum tmeperature for today and the next 4 days, all on a graph. I'm sure the skin can be improved, but this could be a good start (I hope). Please give it a try and let me know what's your opinion. Don't forget to enter you location weather code and the desired unit (c or f), otherways the skin won't work.

Code: Select all

[Rainmeter]
Update=1000
BackgroundMode=2
SolidColor=80,80,80,220
AccurateText=1
DynamicWindowSize=1

[Variables]
Location=
Unit=
FontName=Segoe UI
OffsetX=10
OffsetY=10

###

[MeasureWeatherRSS]
Measure=Plugin
Plugin=Plugins\WebParser.dll
UpdateRate=3600
Url=http://weather.yahooapis.com/forecastrss?p=#Location#&u=#Unit#
RegExp="(?siU)<b>Current Conditions:</b><br />(.*), (.*) C<BR />.*<BR /><b>Forecast:</b><BR />.*(.*) - (.*). High: (.*) Low: (.*)<br />.*(.*) - (.*). High: (.*) Low: (.*)<br />.*(.*) - (.*). High: (.*) Low: (.*)<br />.*(.*) - (.*). High: (.*) Low: (.*)<br />.*(.*) - (.*). High: (.*) Low: (.*)<br />"
StringIndex=1

[MeasureCurrentTemp]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureWeatherRSS]
StringIndex=2

[MeasureTodayMaxTemp]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureWeatherRSS]
StringIndex=5

[MeasureTodayMinTemp]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureWeatherRSS]
StringIndex=6

[Measure1DayMaxTemp]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureWeatherRSS]
StringIndex=9

[Measure1DayMinTemp]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureWeatherRSS]
StringIndex=10

[Measure2DayMaxTemp]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureWeatherRSS]
StringIndex=13

[Measure2DayMinTemp]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureWeatherRSS]
StringIndex=14

[Measure3DayMaxTemp]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureWeatherRSS]
StringIndex=17

[Measure3DayMinTemp]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureWeatherRSS]
StringIndex=18

[Measure4DayMaxTemp]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureWeatherRSS]
StringIndex=21

[Measure4DayMinTemp]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureWeatherRSS]
StringIndex=22

[MeasureMaxTemp]
Measure=Calc
Formula=(( MeasureTodayMaxTemp > Measure1DayMaxTemp ) ? (( MeasureTodayMaxTemp > Measure2DayMaxTemp ) ? (( MeasureTodayMaxTemp > Measure3DayMaxTemp ) ? (( MeasureTodayMaxTemp > Measure4DayMaxTemp ) ? MeasureTodayMaxTemp : Measure4DayMaxTemp ) : Measure3DayMaxTemp ) : Measure2DayMaxTemp ) : Measure1DayMaxTemp )

[MeasureMinTemp]
Measure=Calc
Formula=(( MeasureTodayMinTemp < Measure1DayMinTemp ) ? (( MeasureTodayMinTemp < Measure2DayMinTemp ) ? (( MeasureTodayMinTemp < Measure3DayMinTemp ) ? (( MeasureTodayMinTemp < Measure4DayMinTemp ) ? MeasureTodayMinTemp : Measure4DayMinTemp ) : Measure3DayMinTemp ) : Measure2DayMinTemp ) : Measure1DayMinTemp )

[MeasureTempDifference]
Measure=Calc
Formula=( MeasureMaxTemp - MeasureMinTemp )

[MeasureTempDifference2]
Measure=Calc
Formula=(( Abs ( MeasureMaxTemp ) > Abs ( MeasureMinTemp )) ? ( Abs ( MeasureMaxTemp )) : ( Abs ( MeasureMinTemp )))

[MeasureMeterTodayMinTempOnGraph]
Measure=Calc
Formula=[MeterTodayMinTempOnGraph:Y]
DynamicVariables=1

[MeasureMeterTodayMaxTempOnGraph]
Measure=Calc
Formula=[MeterTodayMaxTempOnGraph:Y]
DynamicVariables=1

###

[MeterCurrentTempOnGraph]
Meter=Image
SolidColor=255,255,255
X=(45+#OffsetX#)
Y=((100-(100/[MeasureTempDifference2])*[MeasureCurrentTemp])+#OffsetY#-1)
W=3
H=3
DynamicVariables=1

[MeterTodayMinTempOnGraph]
Meter=Image
SolidColor=255,0,0
X=(90+#OffsetX#)
Y=((100-(100/[MeasureTempDifference2])*[MeasureTodayMinTemp])+#OffsetY#-1)
W=3
H=3
DynamicVariables=1

[MeterTodayMaxTempOnGraph]
Meter=Image
SolidColor=0,255,0
X=(90+#OffsetX#)
Y=((100-(100/[MeasureTempDifference2])*[MeasureTodayMaxTemp])+#OffsetY#-1)
W=3
H=3
DynamicVariables=1

[Meter1DayMinTempOnGraph]
Meter=Image
SolidColor=255,0,0
X=(135+#OffsetX#)
Y=((100-(100/[MeasureTempDifference2])*[Measure1DayMinTemp])+#OffsetY#-1)
W=3
H=3
DynamicVariables=1

[Meter1DayMaxTempOnGraph]
Meter=Image
SolidColor=0,255,0
X=(135+#OffsetX#)
Y=((100-(100/[MeasureTempDifference2])*[Measure1DayMaxTemp])+#OffsetY#-1)
W=3
H=3
DynamicVariables=1

[Meter2DayMinTempOnGraph]
Meter=Image
SolidColor=255,0,0
X=(180+#OffsetX#)
Y=((100-(100/[MeasureTempDifference2])*[Measure2DayMinTemp])+#OffsetY#-1)
W=3
H=3
DynamicVariables=1

[Meter2DayMaxTempOnGraph]
Meter=Image
SolidColor=0,255,0
X=(180+#OffsetX#)
Y=((100-(100/[MeasureTempDifference2])*[Measure2DayMaxTemp])+#OffsetY#-1)
W=3
H=3
DynamicVariables=1

[Meter3DayMinTempOnGraph]
Meter=Image
SolidColor=255,0,0
X=(225+#OffsetX#)
Y=((100-(100/[MeasureTempDifference2])*[Measure3DayMinTemp])+#OffsetY#-1)
W=3
H=3
DynamicVariables=1

[Meter3DayMaxTempOnGraph]
Meter=Image
SolidColor=0,255,0
X=(225+#OffsetX#)
Y=((100-(100/[MeasureTempDifference2])*[Measure3DayMaxTemp])+#OffsetY#-1)
W=3
H=3
DynamicVariables=1

[Meter4DayMinTempOnGraph]
Meter=Image
SolidColor=255,0,0
X=(270+#OffsetX#)
Y=((100-(100/[MeasureTempDifference2])*[Measure4DayMinTemp])+#OffsetY#-1)
W=3
H=3
DynamicVariables=1

[Meter4DayMaxTempOnGraph]
Meter=Image
SolidColor=0,255,0
X=(270+#OffsetX#)
Y=((100-(100/[MeasureTempDifference2])*[Measure4DayMaxTemp])+#OffsetY#-1)
W=3
H=3
DynamicVariables=1

[MeterHorizontalAxis]
Meter=Image
SolidColor=255,255,255
X=(0+#OffsetX#)
Y=(100+#OffsetY#)
W=300
H=1

[MeterVerticalAxis]
Meter=Image
SolidColor=255,255,255
X=(0+#OffsetX#)
Y=(0+#OffsetY#)
W=1
H=200

[MeterHorizontalAxis]
Meter=Image
SolidColor=120,120,120
X=(0+#OffsetX#)
Y=(100+#OffsetY#)
W=300
H=1

[MeterTitle1]
Meter=STRING
MeasureName=MeasureCurrentTemp
X=(0+#OffsetX#)r
Y=(10+#OffsetY#)R
FontColor=255,255,255
FontSize=10
StringAlign=LEFT
FontFace=#FontName#
Antialias=1
Text=Current: %1°#Unit#

[MeterTitle2]
Meter=STRING
X=0r
Y=2R
FontColor=255,255,255
FontSize=10
StringAlign=LEFT
FontFace=#FontName#
Antialias=1
Text=Today:#CRLF#Tomorrow:#CRLF#After 2 days:#CRLF#After 3 days:#CRLF#After 4 days:

[MeterTitle3]
MeasureName=MeasureTodayMaxTemp
MeasureName2=Measure1DayMaxTemp
MeasureName3=Measure2DayMaxTemp
MeasureName4=Measure3DayMaxTemp
MeasureName5=Measure4DayMaxTemp
Meter=STRING
X=130r
Y=0r
FontColor=0,255,0
FontSize=10
StringAlign=RIGHT
FontFace=#FontName#
Antialias=1
Text=%1°#Unit##CRLF#%2°#Unit##CRLF#%3°#Unit##CRLF#%4°#Unit##CRLF#%5°#Unit#

[MeterTitle4]
MeasureName=MeasureTodayMinTemp
MeasureName2=Measure1DayMinTemp
MeasureName3=Measure2DayMinTemp
MeasureName4=Measure3DayMinTemp
MeasureName5=Measure4DayMinTemp
Meter=STRING
X=60r
Y=0r
FontColor=255,0,0
FontSize=10
StringAlign=RIGHT
FontFace=#FontName#
Antialias=1
Text=%1°#Unit##CRLF#%2°#Unit##CRLF#%3°#Unit##CRLF#%4°#Unit##CRLF#%5°#Unit#

[MeterLabelCurrent]
Meter=STRING
X=(40+#OffsetX#)
Y=(210+#OffsetY#)
FontColor=255,255,255
FontSize=8
StringAlign=CENTERCENTER
FontFace=#FontName#
Antialias=1
Text=Cur
Angle=-1.5707963267948966192313216916398

[MeterLabelToday]
Meter=STRING
X=(85+#OffsetX#)
Y=(210+#OffsetY#)
FontColor=255,255,255
FontSize=8
StringAlign=CENTERCENTER
FontFace=#FontName#
Antialias=1
Text=Today
Angle=-1.5707963267948966192313216916398

[MeterLabelTomorrow]
Meter=STRING
X=(130+#OffsetX#)
Y=(210+#OffsetY#)
FontColor=255,255,255
FontSize=8
StringAlign=CENTERCENTER
FontFace=#FontName#
Antialias=1
Text=Tom
Angle=-1.5707963267948966192313216916398

[MeterLabelAfter2Days]
Meter=STRING
X=(175+#OffsetX#)
Y=(210+#OffsetY#)
FontColor=255,255,255
FontSize=8
StringAlign=CENTERCENTER
FontFace=#FontName#
Antialias=1
Text=2 days
Angle=-1.5707963267948966192313216916398

[MeterLabelAfter3Days]
Meter=STRING
X=(220+#OffsetX#)
Y=(210+#OffsetY#)
FontColor=255,255,255
FontSize=8
StringAlign=CENTERCENTER
FontFace=#FontName#
Antialias=1
Text=3 days
Angle=-1.5707963267948966192313216916398

[MeterLabelAfter4Days]
Meter=STRING
X=(265+#OffsetX#)
Y=(210+#OffsetY#)
FontColor=255,255,255
FontSize=8
StringAlign=CENTERCENTER
FontFace=#FontName#
Antialias=1
Text=4 days
Angle=-1.5707963267948966192313216916398
You do not have the required permissions to view the files attached to this post.
User avatar
moshi
Posts: 1740
Joined: November 13th, 2012, 9:53 pm

Re: Weather graph?

Post by moshi »

screenshot-Rainmeter-16.11.2014 , 11_33_38-001.png
http://customize.org/rainmeter/skins/65672459

using Google Charts API.
You do not have the required permissions to view the files attached to this post.
User avatar
moshi
Posts: 1740
Joined: November 13th, 2012, 9:53 pm

Re: Weather graph?

Post by moshi »

in general a new chart meter type could be nice for this though. other kinds of charts can already be done with bar or roundline meters.

like:

Code: Select all

[Chart]
Meter=Chart
Values=x1,y1,x2,y2, ...
MinValueX=xmin
MinValueY=ymin
MaxValueX=xmax
MaxValueY=ymax
other keys would be like in a line meter.
User avatar
balala
Rainmeter Sage
Posts: 16110
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: Weather graph?

Post by balala »

moshi wrote:
screenshot-Rainmeter-16.11.2014 , 11_33_38-001.png
http://customize.org/rainmeter/skins/65672459

using Google Charts API.
This chart is great indeed, but is downloaded from the internet. In the other way, the chart meter you talked about, don't exists (yet? - I hope), so I wanted to creat one, using existing meters (especially Image meters, working with TransformationMatrix). This is what I worked with last few days. So here's my solution to this problem:

Image

And the code:

Code: Select all

[Metadata]
Author=balala
Name=WeatherGraph
Information=
Version=1
License=Creative Commons BY-NC-SA 3.0

[Rainmeter]
Update=1000
BackgroundMode=2
SolidColor=80,80,80,220
AccurateText=1
DynamicWindowSize=1

[Variables]
Location=
Unit=
FontName=Segoe UI
OffsetX=10
OffsetY=10

###

[MeasureWeatherRSS]
Measure=Plugin
Plugin=Plugins\WebParser.dll
UpdateRate=3600
Url=http://weather.yahooapis.com/forecastrss?p=#Location#&u=#Unit#
RegExp="(?siU)<b>Current Conditions:</b><br />(.*), (.*) #Unit#<BR />.*<BR /><b>Forecast:</b><BR />.*(.*) - (.*). High: (.*) Low: (.*)<br />.*(.*) - (.*). High: (.*) Low: (.*)<br />.*(.*) - (.*). High: (.*) Low: (.*)<br />.*(.*) - (.*). High: (.*) Low: (.*)<br />.*(.*) - (.*). High: (.*) Low: (.*)<br />"
StringIndex=1

[MeasureCurrentTemp]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureWeatherRSS]
StringIndex=2

[MeasureFirstDay]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureWeatherRSS]
StringIndex=3

[MeasureTodayMaxTemp]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureWeatherRSS]
StringIndex=5

[MeasureTodayMinTemp]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureWeatherRSS]
StringIndex=6

[MeasureSecondDay]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureWeatherRSS]
StringIndex=7

[Measure1DayMaxTemp]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureWeatherRSS]
StringIndex=9

[Measure1DayMinTemp]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureWeatherRSS]
StringIndex=10

[MeasureThirdDay]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureWeatherRSS]
StringIndex=11

[Measure2DayMaxTemp]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureWeatherRSS]
StringIndex=13

[Measure2DayMinTemp]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureWeatherRSS]
StringIndex=14

[MeasureFourthDay]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureWeatherRSS]
StringIndex=15

[Measure3DayMaxTemp]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureWeatherRSS]
StringIndex=17

[Measure3DayMinTemp]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureWeatherRSS]
StringIndex=18

[MeasureFifthDay]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureWeatherRSS]
StringIndex=19

[Measure4DayMaxTemp]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureWeatherRSS]
StringIndex=21

[Measure4DayMinTemp]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[MeasureWeatherRSS]
StringIndex=22

[MeasureUpperCaseTempUnit]
Measure=String
String=#Unit#
RegExpSubstitute=1
Substitute="c":"C","f":"F"

[MeasureMaxTemp]
Measure=Calc
Formula=Max(MeasureCurrentTemp, Max(MeasureTodayMaxTemp, Max(Measure1DayMaxTemp, Max(Measure2DayMaxTemp, Max(Measure3DayMaxTemp, Measure4DayMaxTemp)))))
DynamicVariables=1

[MeasureMinTemp]
Measure=Calc
Formula=Min(MeasureCurrentTemp, Min(MeasureTodayMinTemp, Min(Measure1DayMinTemp, Min(Measure2DayMinTemp, Min(Measure3DayMinTemp, Measure4DayMinTemp)))))
DynamicVariables=1

[MeasureTempDifference]
Measure=Calc
Formula=( MeasureMaxTemp - MeasureMinTemp )

[MeasureTempDifference2]
Measure=Calc
Formula=(( Abs ( MeasureMaxTemp ) > Abs ( MeasureMinTemp )) ? ( Abs ( MeasureMaxTemp )) : ( Abs ( MeasureMinTemp )))

[MeasureDegreeUnit]
Measure=Calc
Formula=(( MeasureTodayMaxTemp <> 0 ) ? (( Abs ( [MeterTodayMaxTempOnGraph:Y] - [MeterHorizontalAxis:Y] + 1 )) / ( Abs ( MeasureTodayMaxTemp ))) : (( Abs ( [MeterTodayMinTempOnGraph:Y] - [MeterHorizontalAxis:Y] + 1 )) / ( Abs ( MeasureTodayMinTemp ))))
DynamicVariables=1

[MeasureAngleSinMinTempLine1]
Measure=Calc
Formula=(([MeterTodayMinTempOnGraph:Y]-[Meter1DayMinTempOnGraph:Y])/(Sqrt((([Meter1DayMinTempOnGraph:Y]-[MeterTodayMinTempOnGraph:Y])*([Meter1DayMinTempOnGraph:Y]-[MeterTodayMinTempOnGraph:Y]))+(([Meter1DayMinTempOnGraph:X]-[MeterTodayMinTempOnGraph:X])*([Meter1DayMinTempOnGraph:X]-[MeterTodayMinTempOnGraph:X])))))
DynamicVariables=1

[MeasureAngleCosMinTempLine1]
Measure=Calc
Formula=(([Meter1DayMinTempOnGraph:X]-[MeterTodayMinTempOnGraph:X])/(Sqrt((([Meter1DayMinTempOnGraph:Y]-[MeterTodayMinTempOnGraph:Y])*([Meter1DayMinTempOnGraph:Y]-[MeterTodayMinTempOnGraph:Y]))+(([Meter1DayMinTempOnGraph:X]-[MeterTodayMinTempOnGraph:X])*([Meter1DayMinTempOnGraph:X]-[MeterTodayMinTempOnGraph:X])))))
DynamicVariables=1

[MeasureAngleSinMaxTempLine1]
Measure=Calc
Formula=(([MeterTodayMaxTempOnGraph:Y]-[Meter1DayMaxTempOnGraph:Y])/(Sqrt((([Meter1DayMaxTempOnGraph:Y]-[MeterTodayMaxTempOnGraph:Y])*([Meter1DayMaxTempOnGraph:Y]-[MeterTodayMaxTempOnGraph:Y]))+(([Meter1DayMaxTempOnGraph:X]-[MeterTodayMaxTempOnGraph:X])*([Meter1DayMaxTempOnGraph:X]-[MeterTodayMaxTempOnGraph:X])))))
DynamicVariables=1

[MeasureAngleCosMaxTempLine1]
Measure=Calc
Formula=(([Meter1DayMaxTempOnGraph:X]-[MeterTodayMaxTempOnGraph:X])/(Sqrt((([Meter1DayMaxTempOnGraph:Y]-[MeterTodayMaxTempOnGraph:Y])*([Meter1DayMaxTempOnGraph:Y]-[MeterTodayMaxTempOnGraph:Y]))+(([Meter1DayMaxTempOnGraph:X]-[MeterTodayMaxTempOnGraph:X])*([Meter1DayMaxTempOnGraph:X]-[MeterTodayMaxTempOnGraph:X])))))
DynamicVariables=1

[MeasureAngleSinMinTempLine2]
Measure=Calc
Formula=(([Meter1DayMinTempOnGraph:Y]-[Meter2DayMinTempOnGraph:Y])/(Sqrt((([Meter2DayMinTempOnGraph:Y]-[Meter1DayMinTempOnGraph:Y])*([Meter2DayMinTempOnGraph:Y]-[Meter1DayMinTempOnGraph:Y]))+(([Meter2DayMinTempOnGraph:X]-[Meter1DayMinTempOnGraph:X])*([Meter2DayMinTempOnGraph:X]-[Meter1DayMinTempOnGraph:X])))))
DynamicVariables=1

[MeasureAngleCosMinTempLine2]
Measure=Calc
Formula=(([Meter2DayMinTempOnGraph:X]-[Meter1DayMinTempOnGraph:X])/(Sqrt((([Meter2DayMinTempOnGraph:Y]-[Meter1DayMinTempOnGraph:Y])*([Meter2DayMinTempOnGraph:Y]-[Meter1DayMinTempOnGraph:Y]))+(([Meter2DayMinTempOnGraph:X]-[Meter1DayMinTempOnGraph:X])*([Meter2DayMinTempOnGraph:X]-[Meter1DayMinTempOnGraph:X])))))
DynamicVariables=1

[MeasureAngleSinMaxTempLine2]
Measure=Calc
Formula=(([Meter1DayMaxTempOnGraph:Y]-[Meter2DayMaxTempOnGraph:Y])/(Sqrt((([Meter2DayMaxTempOnGraph:Y]-[Meter1DayMaxTempOnGraph:Y])*([Meter2DayMaxTempOnGraph:Y]-[Meter1DayMaxTempOnGraph:Y]))+(([Meter2DayMaxTempOnGraph:X]-[Meter1DayMaxTempOnGraph:X])*([Meter2DayMaxTempOnGraph:X]-[Meter1DayMaxTempOnGraph:X])))))
DynamicVariables=1

[MeasureAngleCosMaxTempLine2]
Measure=Calc
Formula=(([Meter2DayMaxTempOnGraph:X]-[Meter1DayMaxTempOnGraph:X])/(Sqrt((([Meter2DayMaxTempOnGraph:Y]-[Meter1DayMaxTempOnGraph:Y])*([Meter2DayMaxTempOnGraph:Y]-[Meter1DayMaxTempOnGraph:Y]))+(([Meter2DayMaxTempOnGraph:X]-[Meter1DayMaxTempOnGraph:X])*([Meter2DayMaxTempOnGraph:X]-[Meter1DayMaxTempOnGraph:X])))))
DynamicVariables=1

[MeasureAngleSinMinTempLine3]
Measure=Calc
Formula=(([Meter2DayMinTempOnGraph:Y]-[Meter3DayMinTempOnGraph:Y])/(Sqrt((([Meter3DayMinTempOnGraph:Y]-[Meter2DayMinTempOnGraph:Y])*([Meter3DayMinTempOnGraph:Y]-[Meter2DayMinTempOnGraph:Y]))+(([Meter3DayMinTempOnGraph:X]-[Meter2DayMinTempOnGraph:X])*([Meter3DayMinTempOnGraph:X]-[Meter2DayMinTempOnGraph:X])))))
DynamicVariables=1

[MeasureAngleCosMinTempLine3]
Measure=Calc
Formula=(([Meter3DayMinTempOnGraph:X]-[Meter2DayMinTempOnGraph:X])/(Sqrt((([Meter3DayMinTempOnGraph:Y]-[Meter2DayMinTempOnGraph:Y])*([Meter3DayMinTempOnGraph:Y]-[Meter2DayMinTempOnGraph:Y]))+(([Meter3DayMinTempOnGraph:X]-[Meter2DayMinTempOnGraph:X])*([Meter3DayMinTempOnGraph:X]-[Meter2DayMinTempOnGraph:X])))))
DynamicVariables=1

[MeasureAngleSinMaxTempLine3]
Measure=Calc
Formula=(([Meter2DayMaxTempOnGraph:Y]-[Meter3DayMaxTempOnGraph:Y])/(Sqrt((([Meter3DayMaxTempOnGraph:Y]-[Meter2DayMaxTempOnGraph:Y])*([Meter3DayMaxTempOnGraph:Y]-[Meter2DayMaxTempOnGraph:Y]))+(([Meter3DayMaxTempOnGraph:X]-[Meter2DayMaxTempOnGraph:X])*([Meter3DayMaxTempOnGraph:X]-[Meter2DayMaxTempOnGraph:X])))))
DynamicVariables=1

[MeasureAngleCosMaxTempLine3]
Measure=Calc
Formula=(([Meter3DayMaxTempOnGraph:X]-[Meter2DayMaxTempOnGraph:X])/(Sqrt((([Meter3DayMaxTempOnGraph:Y]-[Meter2DayMaxTempOnGraph:Y])*([Meter3DayMaxTempOnGraph:Y]-[Meter2DayMaxTempOnGraph:Y]))+(([Meter3DayMaxTempOnGraph:X]-[Meter2DayMaxTempOnGraph:X])*([Meter3DayMaxTempOnGraph:X]-[Meter2DayMaxTempOnGraph:X])))))
DynamicVariables=1

[MeasureAngleSinMinTempLine4]
Measure=Calc
Formula=(([Meter3DayMinTempOnGraph:Y]-[Meter4DayMinTempOnGraph:Y])/(Sqrt((([Meter4DayMinTempOnGraph:Y]-[Meter3DayMinTempOnGraph:Y])*([Meter4DayMinTempOnGraph:Y]-[Meter3DayMinTempOnGraph:Y]))+(([Meter4DayMinTempOnGraph:X]-[Meter3DayMinTempOnGraph:X])*([Meter4DayMinTempOnGraph:X]-[Meter3DayMinTempOnGraph:X])))))
DynamicVariables=1

[MeasureAngleCosMinTempLine4]
Measure=Calc
Formula=(([Meter4DayMinTempOnGraph:X]-[Meter3DayMinTempOnGraph:X])/(Sqrt((([Meter4DayMinTempOnGraph:Y]-[Meter3DayMinTempOnGraph:Y])*([Meter4DayMinTempOnGraph:Y]-[Meter3DayMinTempOnGraph:Y]))+(([Meter4DayMinTempOnGraph:X]-[Meter3DayMinTempOnGraph:X])*([Meter4DayMinTempOnGraph:X]-[Meter3DayMinTempOnGraph:X])))))
DynamicVariables=1

[MeasureAngleSinMaxTempLine4]
Measure=Calc
Formula=(([Meter3DayMaxTempOnGraph:Y]-[Meter4DayMaxTempOnGraph:Y])/(Sqrt((([Meter4DayMaxTempOnGraph:Y]-[Meter3DayMaxTempOnGraph:Y])*([Meter4DayMaxTempOnGraph:Y]-[Meter3DayMaxTempOnGraph:Y]))+(([Meter4DayMaxTempOnGraph:X]-[Meter3DayMaxTempOnGraph:X])*([Meter4DayMaxTempOnGraph:X]-[Meter3DayMaxTempOnGraph:X])))))
DynamicVariables=1

[MeasureAngleCosMaxTempLine4]
Measure=Calc
Formula=(([Meter4DayMaxTempOnGraph:X]-[Meter3DayMaxTempOnGraph:X])/(Sqrt((([Meter4DayMaxTempOnGraph:Y]-[Meter3DayMaxTempOnGraph:Y])*([Meter4DayMaxTempOnGraph:Y]-[Meter3DayMaxTempOnGraph:Y]))+(([Meter4DayMaxTempOnGraph:X]-[Meter3DayMaxTempOnGraph:X])*([Meter4DayMaxTempOnGraph:X]-[Meter3DayMaxTempOnGraph:X])))))
DynamicVariables=1

###

[MeterHorizontalAxis]
Meter=Image
SolidColor=255,255,255
X=(25+#OffsetX#)
Y=(200+#OffsetY#)
W=280
H=1

[MeterVerticalAxis]
Meter=Image
SolidColor=255,255,255
X=(25+#OffsetX#)
Y=(0+#OffsetY#)
W=1
H=200

[MeterCurrentTempLineOnGraph]
Meter=Image
SolidColor=120,120,120
X=(25+#OffsetX#)
Y=(200*(1-(([MeasureCurrentTemp]-[MeasureMinTemp])/([MeasureMaxTemp]-[MeasureMinTemp])))+#OffsetY#-1)
W=280
H=1
DynamicVariables=1
Hidden=(([MeasureCurrentTemp]=[MeasureMinTemp])||([MeasureCurrentTemp]=[MeasureTodayMaxTemp])||([MeasureCurrentTemp]=[MeasureTodayMinTemp]))

[MeterLabelCurrentTemp]
Meter=STRING
MeasureName=MeasureCurrentTemp
MeasureName2=MeasureUpperCaseTempUnit
X=([MeterHorizontalAxis:X]-5)
Y=0r
FontColor=255,255,255
FontSize=8
StringAlign=RIGHTCENTER
FontFace=#FontName#
Antialias=1
Text=%1°%2
DynamicVariables=1
Hidden=(([MeasureCurrentTemp]=[MeasureMinTemp])||([MeasureCurrentTemp]=[MeasureTodayMaxTemp])||([MeasureCurrentTemp]=[MeasureTodayMinTemp]))

[MeterHorizontalTodayMinTempLine]
Meter=Image
SolidColor=120,120,120
X=(25+#OffsetX#)
Y=(200*(1-(([MeasureTodayMinTemp]-[MeasureMinTemp])/([MeasureMaxTemp]-[MeasureMinTemp])))+#OffsetY#)
W=280
H=1
DynamicVariables=1

[MeterLabelTodayMinTemp]
Meter=STRING
MeasureName=MeasureTodayMinTemp
MeasureName2=MeasureUpperCaseTempUnit
X=-5r
Y=0r
FontColor=255,255,255
FontSize=8
StringAlign=RIGHTCENTER
FontFace=#FontName#
Antialias=1
Text=%1°%2
DynamicVariables=1

[MeterHorizontalTodayMaxTempLine]
Meter=Image
SolidColor=120,120,120
X=(25+#OffsetX#)
Y=(200*(1-(([MeasureTodayMaxTemp]-[MeasureMinTemp])/([MeasureMaxTemp]-[MeasureMinTemp])))+#OffsetY#)
W=280
H=1
DynamicVariables=1

[MeterLabelTodayMaxTemp]
Meter=STRING
MeasureName=MeasureTodayMaxTemp
MeasureName2=MeasureUpperCaseTempUnit
X=-5r
Y=0r
FontColor=255,255,255
FontSize=8
StringAlign=RIGHTCENTER
FontFace=#FontName#
Antialias=1
Text=%1°%2
DynamicVariables=1

[MeterLabelHorizontalAxis]
Meter=STRING
MeasureName=MeasureMinTemp
MeasureName2=MeasureUpperCaseTempUnit
X=(20+#OffsetX#)
Y=[MeterHorizontalAxis:Y]
FontColor=255,255,255
FontSize=8
StringAlign=RIGHTCENTER
FontFace=#FontName#
Antialias=1
Text=%1°%2
DynamicVariables=1

[MeterCurrentTempOnGraph]
Meter=Image
SolidColor=255,255,0
X=(45+#OffsetX#-2)
Y=(200*(1-(([MeasureCurrentTemp]-[MeasureMinTemp])/([MeasureMaxTemp]-[MeasureMinTemp])))+#OffsetY#-2)
W=3
H=3
DynamicVariables=1

[MeterTodayMinTempOnGraph]
Meter=Image
SolidColor=255,0,0
X=(90+#OffsetX#)
Y=(200*(1-(([MeasureTodayMinTemp]-[MeasureMinTemp])/([MeasureMaxTemp]-[MeasureMinTemp])))+#OffsetY#-1)
W=3
H=3
DynamicVariables=1

[MeterTodayMaxTempOnGraph]
Meter=Image
SolidColor=0,255,0
X=(90+#OffsetX#)
Y=(200*(1-(([MeasureTodayMaxTemp]-[MeasureMinTemp])/([MeasureMaxTemp]-[MeasureMinTemp])))+#OffsetY#-1)
W=3
H=3
DynamicVariables=1

[MeterLineMinTemp1]
Meter=Image
SolidColor=255,0,0
X=[MeterTodayMinTempOnGraph:X]
Y=[MeterTodayMinTempOnGraph:Y]
W=(Sqrt(([Meter1DayMinTempOnGraph:X]-[MeterTodayMinTempOnGraph:X])*([Meter1DayMinTempOnGraph:X]-[MeterTodayMinTempOnGraph:X])+([Meter1DayMinTempOnGraph:Y]-[MeterTodayMinTempOnGraph:Y])*([Meter1DayMinTempOnGraph:Y]-[MeterTodayMinTempOnGraph:Y])))
H=1
TransformationMatrix=[MeasureAngleCosMinTempLine1];(-[MeasureAngleSinMinTempLine1]);[MeasureAngleSinMinTempLine1];[MeasureAngleCosMinTempLine1];([MeterTodayMinTempOnGraph:X]-([MeterTodayMinTempOnGraph:X]*[MeasureAngleCosMinTempLine1]+[MeterTodayMinTempOnGraph:Y]*[MeasureAngleSinMinTempLine1])+1);([MeterTodayMinTempOnGraph:Y]-([MeterTodayMinTempOnGraph:Y]*[MeasureAngleCosMinTempLine1]-[MeterTodayMinTempOnGraph:X]*[MeasureAngleSinMinTempLine1])+1)
DynamicVariables=1

[MeterLineMaxTemp1]
Meter=Image
SolidColor=0,255,0
X=[MeterTodayMaxTempOnGraph:X]
Y=[MeterTodayMaxTempOnGraph:Y]
W=(Sqrt(([Meter1DayMaxTempOnGraph:X]-[MeterTodayMaxTempOnGraph:X])*([Meter1DayMaxTempOnGraph:X]-[MeterTodayMaxTempOnGraph:X])+([Meter1DayMaxTempOnGraph:Y]-[MeterTodayMaxTempOnGraph:Y])*([Meter1DayMaxTempOnGraph:Y]-[MeterTodayMaxTempOnGraph:Y])))
H=1
TransformationMatrix=[MeasureAngleCosMaxTempLine1];(-[MeasureAngleSinMaxTempLine1]);[MeasureAngleSinMaxTempLine1];[MeasureAngleCosMaxTempLine1];([MeterTodayMaxTempOnGraph:X]-([MeterTodayMaxTempOnGraph:X]*[MeasureAngleCosMaxTempLine1]+[MeterTodayMaxTempOnGraph:Y]*[MeasureAngleSinMaxTempLine1])+1);([MeterTodayMaxTempOnGraph:Y]-([MeterTodayMaxTempOnGraph:Y]*[MeasureAngleCosMaxTempLine1]-[MeterTodayMaxTempOnGraph:X]*[MeasureAngleSinMaxTempLine1])+1)
DynamicVariables=1

[Meter1DayMinTempOnGraph]
Meter=Image
SolidColor=255,0,0
X=(135+#OffsetX#)
Y=(200*(1-(([Measure1DayMinTemp]-[MeasureMinTemp])/([MeasureMaxTemp]-[MeasureMinTemp])))+#OffsetY#-1)
W=3
H=3
DynamicVariables=1

[Meter1DayMaxTempOnGraph]
Meter=Image
SolidColor=0,255,0
X=(135+#OffsetX#)
Y=(200*(1-(([Measure1DayMaxTemp]-[MeasureMinTemp])/([MeasureMaxTemp]-[MeasureMinTemp])))+#OffsetY#-1)
W=3
H=3
DynamicVariables=1

[MeterLineMinTemp2]
Meter=Image
SolidColor=255,0,0
X=[Meter1DayMinTempOnGraph:X]
Y=[Meter1DayMinTempOnGraph:Y]
W=(Sqrt(([Meter2DayMinTempOnGraph:X]-[Meter1DayMinTempOnGraph:X])*([Meter2DayMinTempOnGraph:X]-[Meter1DayMinTempOnGraph:X])+([Meter2DayMinTempOnGraph:Y]-[Meter1DayMinTempOnGraph:Y])*([Meter2DayMinTempOnGraph:Y]-[Meter1DayMinTempOnGraph:Y])))
H=1
TransformationMatrix=[MeasureAngleCosMinTempLine2];(-[MeasureAngleSinMinTempLine2]);[MeasureAngleSinMinTempLine2];[MeasureAngleCosMinTempLine2];([Meter1DayMinTempOnGraph:X]-([Meter1DayMinTempOnGraph:X]*[MeasureAngleCosMinTempLine2]+[Meter1DayMinTempOnGraph:Y]*[MeasureAngleSinMinTempLine2])+1);([Meter1DayMinTempOnGraph:Y]-([Meter1DayMinTempOnGraph:Y]*[MeasureAngleCosMinTempLine2]-[Meter1DayMinTempOnGraph:X]*[MeasureAngleSinMinTempLine2])+1)
DynamicVariables=1

[MeterLineMaxTemp2]
Meter=Image
SolidColor=0,255,0
X=[Meter1DayMaxTempOnGraph:X]
Y=[Meter1DayMaxTempOnGraph:Y]
W=(Sqrt(([Meter2DayMaxTempOnGraph:X]-[Meter1DayMaxTempOnGraph:X])*([Meter2DayMaxTempOnGraph:X]-[Meter1DayMaxTempOnGraph:X])+([Meter2DayMaxTempOnGraph:Y]-[Meter1DayMaxTempOnGraph:Y])*([Meter2DayMaxTempOnGraph:Y]-[Meter1DayMaxTempOnGraph:Y])))
H=1
TransformationMatrix=[MeasureAngleCosMaxTempLine2];(-[MeasureAngleSinMaxTempLine2]);[MeasureAngleSinMaxTempLine2];[MeasureAngleCosMaxTempLine2];([Meter1DayMaxTempOnGraph:X]-([Meter1DayMaxTempOnGraph:X]*[MeasureAngleCosMaxTempLine2]+[Meter1DayMaxTempOnGraph:Y]*[MeasureAngleSinMaxTempLine2])+1);([Meter1DayMaxTempOnGraph:Y]-([Meter1DayMaxTempOnGraph:Y]*[MeasureAngleCosMaxTempLine2]-[Meter1DayMaxTempOnGraph:X]*[MeasureAngleSinMaxTempLine2])+1)
DynamicVariables=1

[Meter2DayMinTempOnGraph]
Meter=Image
SolidColor=255,0,0
X=(180+#OffsetX#)
Y=(200*(1-(([Measure2DayMinTemp]-[MeasureMinTemp])/([MeasureMaxTemp]-[MeasureMinTemp])))+#OffsetY#-1)
W=3
H=3
DynamicVariables=1

[Meter2DayMaxTempOnGraph]
Meter=Image
SolidColor=0,255,0
X=(180+#OffsetX#)
Y=(200*(1-(([Measure2DayMaxTemp]-[MeasureMinTemp])/([MeasureMaxTemp]-[MeasureMinTemp])))+#OffsetY#-1)
W=3
H=3
DynamicVariables=1

[MeterLineMinTemp3]
Meter=Image
SolidColor=255,0,0
X=[Meter2DayMinTempOnGraph:X]
Y=[Meter2DayMinTempOnGraph:Y]
W=(Sqrt(([Meter3DayMinTempOnGraph:X]-[Meter2DayMinTempOnGraph:X])*([Meter3DayMinTempOnGraph:X]-[Meter2DayMinTempOnGraph:X])+([Meter3DayMinTempOnGraph:Y]-[Meter2DayMinTempOnGraph:Y])*([Meter3DayMinTempOnGraph:Y]-[Meter2DayMinTempOnGraph:Y])))
H=1
TransformationMatrix=[MeasureAngleCosMinTempLine3];(-[MeasureAngleSinMinTempLine3]);[MeasureAngleSinMinTempLine3];[MeasureAngleCosMinTempLine3];([Meter2DayMinTempOnGraph:X]-([Meter2DayMinTempOnGraph:X]*[MeasureAngleCosMinTempLine3]+[Meter2DayMinTempOnGraph:Y]*[MeasureAngleSinMinTempLine3])+1);([Meter2DayMinTempOnGraph:Y]-([Meter2DayMinTempOnGraph:Y]*[MeasureAngleCosMinTempLine3]-[Meter2DayMinTempOnGraph:X]*[MeasureAngleSinMinTempLine3])+1)
DynamicVariables=1

[MeterLineMaxTemp3]
Meter=Image
SolidColor=0,255,0
X=[Meter2DayMaxTempOnGraph:X]
Y=[Meter2DayMaxTempOnGraph:Y]
W=(Sqrt(([Meter3DayMaxTempOnGraph:X]-[Meter2DayMaxTempOnGraph:X])*([Meter3DayMaxTempOnGraph:X]-[Meter2DayMaxTempOnGraph:X])+([Meter3DayMaxTempOnGraph:Y]-[Meter2DayMaxTempOnGraph:Y])*([Meter3DayMaxTempOnGraph:Y]-[Meter2DayMaxTempOnGraph:Y])))
H=1
TransformationMatrix=[MeasureAngleCosMaxTempLine3];(-[MeasureAngleSinMaxTempLine3]);[MeasureAngleSinMaxTempLine3];[MeasureAngleCosMaxTempLine3];([Meter2DayMaxTempOnGraph:X]-([Meter2DayMaxTempOnGraph:X]*[MeasureAngleCosMaxTempLine3]+[Meter2DayMaxTempOnGraph:Y]*[MeasureAngleSinMaxTempLine3])+1);([Meter2DayMaxTempOnGraph:Y]-([Meter2DayMaxTempOnGraph:Y]*[MeasureAngleCosMaxTempLine3]-[Meter2DayMaxTempOnGraph:X]*[MeasureAngleSinMaxTempLine3])+1)
DynamicVariables=1

[Meter3DayMinTempOnGraph]
Meter=Image
SolidColor=255,0,0
X=(225+#OffsetX#)
Y=(200*(1-(([Measure3DayMinTemp]-[MeasureMinTemp])/([MeasureMaxTemp]-[MeasureMinTemp])))+#OffsetY#-1)
W=3
H=3
DynamicVariables=1

[Meter3DayMaxTempOnGraph]
Meter=Image
SolidColor=0,255,0
X=(225+#OffsetX#)
Y=(200*(1-(([Measure3DayMaxTemp]-[MeasureMinTemp])/([MeasureMaxTemp]-[MeasureMinTemp])))+#OffsetY#-1)
W=3
H=3
DynamicVariables=1

[MeterLineMinTemp4]
Meter=Image
SolidColor=255,0,0
X=[Meter3DayMinTempOnGraph:X]
Y=[Meter3DayMinTempOnGraph:Y]
W=(Sqrt(([Meter4DayMinTempOnGraph:X]-[Meter3DayMinTempOnGraph:X])*([Meter4DayMinTempOnGraph:X]-[Meter3DayMinTempOnGraph:X])+([Meter4DayMinTempOnGraph:Y]-[Meter3DayMinTempOnGraph:Y])*([Meter4DayMinTempOnGraph:Y]-[Meter3DayMinTempOnGraph:Y])))
H=1
TransformationMatrix=[MeasureAngleCosMinTempLine4];(-[MeasureAngleSinMinTempLine4]);[MeasureAngleSinMinTempLine4];[MeasureAngleCosMinTempLine4];([Meter3DayMinTempOnGraph:X]-([Meter3DayMinTempOnGraph:X]*[MeasureAngleCosMinTempLine4]+[Meter3DayMinTempOnGraph:Y]*[MeasureAngleSinMinTempLine4])+1);([Meter3DayMinTempOnGraph:Y]-([Meter3DayMinTempOnGraph:Y]*[MeasureAngleCosMinTempLine4]-[Meter3DayMinTempOnGraph:X]*[MeasureAngleSinMinTempLine4])+1)
DynamicVariables=1

[MeterLineMaxTemp4]
Meter=Image
SolidColor=0,255,0
X=[Meter3DayMaxTempOnGraph:X]
Y=[Meter3DayMaxTempOnGraph:Y]
W=(Sqrt(([Meter4DayMaxTempOnGraph:X]-[Meter3DayMaxTempOnGraph:X])*([Meter4DayMaxTempOnGraph:X]-[Meter3DayMaxTempOnGraph:X])+([Meter4DayMaxTempOnGraph:Y]-[Meter3DayMaxTempOnGraph:Y])*([Meter4DayMaxTempOnGraph:Y]-[Meter3DayMaxTempOnGraph:Y])))
H=1
TransformationMatrix=[MeasureAngleCosMaxTempLine4];(-[MeasureAngleSinMaxTempLine4]);[MeasureAngleSinMaxTempLine4];[MeasureAngleCosMaxTempLine4];([Meter3DayMaxTempOnGraph:X]-([Meter3DayMaxTempOnGraph:X]*[MeasureAngleCosMaxTempLine4]+[Meter3DayMaxTempOnGraph:Y]*[MeasureAngleSinMaxTempLine4])+1);([Meter3DayMaxTempOnGraph:Y]-([Meter3DayMaxTempOnGraph:Y]*[MeasureAngleCosMaxTempLine4]-[Meter3DayMaxTempOnGraph:X]*[MeasureAngleSinMaxTempLine4])+1)
DynamicVariables=1

[Meter4DayMinTempOnGraph]
Meter=Image
SolidColor=255,0,0
X=(270+#OffsetX#)
Y=(200*(1-(([Measure4DayMinTemp]-[MeasureMinTemp])/([MeasureMaxTemp]-[MeasureMinTemp])))+#OffsetY#-1)
W=3
H=3
DynamicVariables=1

[Meter4DayMaxTempOnGraph]
Meter=Image
SolidColor=0,255,0
X=(270+#OffsetX#)
Y=(200*(1-(([Measure4DayMaxTemp]-[MeasureMinTemp])/([MeasureMaxTemp]-[MeasureMinTemp])))+#OffsetY#-1)
W=3
H=3
DynamicVariables=1

[MeterTitleBackground]
Meter=Image
SolidColor=120,120,120
X=((#CURRENTCONFIGWIDTH#-[MeterTitleBackground:W])/2)
Y=(25+[MeterHorizontalAxis:Y])
W=200
H=120
DynamicVariables=1

[MeterTitle1]
Meter=STRING
MeasureName=MeasureCurrentTemp
MeasureName2=MeasureUpperCaseTempUnit
X=5r
Y=5r
FontColor=255,255,0
FontSize=10
StringAlign=LEFT
FontFace=#FontName#
Antialias=1
Text=Current: %1°%2
LeftMouseUpAction=["http://weather.yahooapis.com/forecastrss?p=#Location#&u=#Unit#"]

[MeterTitle2]
Meter=STRING
X=0r
Y=2R
FontColor=255,255,255
FontSize=10
StringAlign=LEFT
FontFace=#FontName#
Antialias=1
Text=Today:#CRLF#Tomorrow:#CRLF#After 2 days:#CRLF#After 3 days:#CRLF#After 4 days:

[MeterTitle3]
MeasureName=MeasureTodayMaxTemp
MeasureName2=Measure1DayMaxTemp
MeasureName3=Measure2DayMaxTemp
MeasureName4=Measure3DayMaxTemp
MeasureName5=Measure4DayMaxTemp
MeasureName6=MeasureUpperCaseTempUnit
Meter=STRING
X=130r
Y=0r
FontColor=0,255,0
FontSize=10
StringAlign=RIGHT
FontFace=#FontName#
Antialias=1
Text=%1°%6#CRLF#%2°%6#CRLF#%3°%6#CRLF#%4°%6#CRLF#%5°%6

[MeterTitle4]
MeasureName=MeasureTodayMinTemp
MeasureName2=Measure1DayMinTemp
MeasureName3=Measure2DayMinTemp
MeasureName4=Measure3DayMinTemp
MeasureName5=Measure4DayMinTemp
MeasureName6=MeasureUpperCaseTempUnit
Meter=STRING
X=60r
Y=0r
FontColor=255,0,0
FontSize=10
StringAlign=RIGHT
FontFace=#FontName#
Antialias=1
Text=%1°%6#CRLF#%2°%6#CRLF#%3°%6#CRLF#%4°%6#CRLF#%5°%6

[MeterLabelCurrent]
Meter=STRING
X=(45+#OffsetX#)
Y=(204+#OffsetY#)
FontColor=255,255,255
FontSize=8
StringAlign=CENTER
FontFace=#FontName#
Antialias=1
Text=Current

[MeterLabelToday]
Meter=STRING
X=(90+#OffsetX#)
Y=(204+#OffsetY#)
FontColor=255,255,255
FontSize=8
StringAlign=CENTER
FontFace=#FontName#
Antialias=1
Text=Today

[MeterLabelTomorrow]
Meter=STRING
MeasureName=MeasureSecondDay
X=(135+#OffsetX#)
Y=(190+#OffsetY#)
FontColor=255,255,255
FontSize=8
StringAlign=CENTER
FontFace=#FontName#
Antialias=1

[MeterLabelAfter2Days]
Meter=STRING
MeasureName=MeasureThirdDay
X=(180+#OffsetX#)
Y=(190+#OffsetY#)
FontColor=255,255,255
FontSize=8
StringAlign=CENTER
FontFace=#FontName#
Antialias=1

[MeterLabelAfter3Days]
Meter=STRING
MeasureName=MeasureFourthDay
X=(225+#OffsetX#)
Y=(190+#OffsetY#)
FontColor=255,255,255
FontSize=8
StringAlign=CENTER
FontFace=#FontName#
Antialias=1

[MeterLabelAfter4Days]
Meter=STRING
MeasureName=MeasureFifthDay
X=(270+#OffsetX#)
Y=(190+#OffsetY#)
FontColor=255,255,255
FontSize=8
StringAlign=CENTER
FontFace=#FontName#
Antialias=1
Don't forget to add the location and desired unit (c or f).
I'm sure the code can be improved and I'll work with it next days, but I'm curious what you are thinking about it. Maybe I'll post it to the Share your creations section, too. Until then, please feel free to add your comments.
User avatar
moshi
Posts: 1740
Joined: November 13th, 2012, 9:53 pm

Re: Weather graph?

Post by moshi »

not really a problem that the graph is downloaded from the internet as you have to be connected to get the weather data anyways. i am happy Professor Google provides that graph, as your solution requires some pretty impressive math skills.
congats. :)
User avatar
iNjUST
Posts: 117
Joined: June 20th, 2012, 12:44 am

Re: Weather graph?

Post by iNjUST »

balala wrote:This is what I worked with last few days. So here's my solution to this problem:

Image

I'm sure the code can be improved and I'll work with it next days, but I'm curious what you are thinking about it. Maybe I'll post it to the Share your creations section, too. Until then, please feel free to add your comments.
That's some great work! You may benefit from taking a look at an example line graph design that I made a while ago. It may allow you to streamline your code quite a bit. It requires no Images and no annoying TransformationMatrix, and can be easily expanded and modularized with minimal code change due to extensive use of MeterStyles.
User avatar
jsmorley
Developer
Posts: 22628
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: Weather graph?

Post by jsmorley »

The Google Charts stuff is pretty slick. Only two cautions I would offer:

1) I would not recommend this method with things that change really often. A chart of your CPU usage for instance would need to hit the internet and download an image once a second, and that is an almost certain "hang" of WebParser, not to mention a lot of network traffic, a spanking from the Google site administrator, and general high resource usage.

2) This "image" variant of the API is deprecated, and while it still works, there is always the risk that it goes the way of Google Reader and Google Calendar.

https://developers.google.com/chart/image/
User avatar
balala
Rainmeter Sage
Posts: 16110
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: Weather graph?

Post by balala »

moshi wrote:not really a problem that the graph is downloaded from the internet as you have to be connected to get the weather data anyways. i am happy Professor Google provides that graph, as your solution requires some pretty impressive math skills.
congats. :)
Yes, you're right, that downloading the chart is not a problem. But when I've started to work on the original question, I found this solution and working with it I found the solution interesting and finaly posted here. I'm sorry if you understood that I found your solution less valuable or anything else, I'm not! Your solution is pretty, too, but my skin is another solution to the same question (I hope!). And about math skills, yes indeed, but if the skin is ready it can work for someone who don't want to change it, without any math knowlege.
User avatar
balala
Rainmeter Sage
Posts: 16110
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: Weather graph?

Post by balala »

iNjUST wrote: That's some great work! You may benefit from taking a look at an example line graph design that I made a while ago. It may allow you to streamline your code quite a bit. It requires no Images and no annoying TransformationMatrix, and can be easily expanded and modularized with minimal code change due to extensive use of MeterStyles.
Your graph is good looking, too. But because last days I worked with my solution, I'll have to figure out how your skin is working. Maybe next days I'll try to streamline my code, as you suggested. Thanks!