103 lines
3.9 KiB
XML
103 lines
3.9 KiB
XML
|
<?xml version="1.0"?>
|
||
|
<svg width="80" height="80"
|
||
|
viewBox="0 0 80 80"
|
||
|
overflow="visible"
|
||
|
contentScriptType="text/python"
|
||
|
xmlns="http://www.w3.org/2000/svg"
|
||
|
xmlns:xlink="http://www.w3.org/1999/xlink" style="stroke: rgb(255,255,255);">
|
||
|
<defs>
|
||
|
<script type="text/python" plotDelegate="plotDelegate">
|
||
|
from qcplot import QCReport
|
||
|
|
||
|
class LdadQcPlotDelegate(PlotDelegate):
|
||
|
def __init__(self):
|
||
|
PlotDelegate.__init__(self)
|
||
|
self.report = QCReport(['seaLevelPressure','temperature','dewpoint',
|
||
|
'windDir','windSpeed','precipAccum'],
|
||
|
['slp','T','Td','DD','FF','pcp'],
|
||
|
None, None)
|
||
|
|
||
|
def getSampleText(self, rec):
|
||
|
sid = rec.getString("providerId") + rec.getString("dataProvider")
|
||
|
if self.report.isFailed():
|
||
|
return sid + "\n" + self.report.getTableText()
|
||
|
else:
|
||
|
return sid
|
||
|
|
||
|
def isValid(self, rec):
|
||
|
self.report.setPointDataView(rec)
|
||
|
return self.report.isFailed()
|
||
|
|
||
|
plotDelegate = LdadQcPlotDelegate()
|
||
|
|
||
|
</script>
|
||
|
<style type="text/css">
|
||
|
<![CDATA[
|
||
|
@font-face { font-family: "WindSymbolFont";
|
||
|
src: url(WindSymbols.svg#WindSymbols); }
|
||
|
@font-face { font-family: "StandardFont";
|
||
|
src: url(Standard.svg#Standard); }
|
||
|
@font-face { font-family: "WxSymbolFont";
|
||
|
src: url(WxSymbols.svg#WxSymbols); }
|
||
|
@font-face { font-family: "SpecialSymbolFont";
|
||
|
src: url(SpecialSymbols.svg#SpecialSymbols); }
|
||
|
text.barb
|
||
|
{
|
||
|
fill: none;
|
||
|
font-size: 1em;
|
||
|
stroke-width: 1px;
|
||
|
font-size: 1em;
|
||
|
font-family: WindSymbolFont;
|
||
|
}
|
||
|
text.arrow
|
||
|
{
|
||
|
fill: none;
|
||
|
font-size: 1em;
|
||
|
stroke-width: 1px;
|
||
|
font-size: 1em;
|
||
|
font-family: WindSymbolFont;
|
||
|
}
|
||
|
text.text
|
||
|
{
|
||
|
fill: none;
|
||
|
font-size: 1em;
|
||
|
stroke-width: 1px;
|
||
|
font-family: StandardFont;
|
||
|
font-size: 1em;
|
||
|
}
|
||
|
text.weather
|
||
|
{
|
||
|
fill: none;
|
||
|
font-size: 1em;
|
||
|
stroke-width: 1px;
|
||
|
font-family: WxSymbolFont;
|
||
|
|
||
|
}
|
||
|
text.special
|
||
|
{
|
||
|
fill: none;
|
||
|
font-size: 1em;
|
||
|
stroke-width: 1px;
|
||
|
font-size: 1em;
|
||
|
font-family: SpecialSymbolFont;
|
||
|
}
|
||
|
]]>
|
||
|
</style>
|
||
|
|
||
|
<symbol overflow="visible" id="plotData" class="info" onload="howdy()">
|
||
|
<text id="extraParams" plotMode="null" class="text"
|
||
|
plotParam="providerId,dataProvider,seaLevelPressureQCA,seaLevelPressureQCR,seaLevelPressureDD,temperatureQCA,temperatureQCR,temperatureDD,dewpointQCA,dewpointQCR,dewpointDD,windDirQCA,windDirQCR,windDirDD,windSpeedQCA,windSpeedQCR,windSpeedDD,precipAccumQCA,precipAccumQCR,precipAccumDD" x="0" y="0" visibility="hidden">0</text>
|
||
|
|
||
|
<g id="windVaneText" plotMode="barb" plotParam="windSpeed,windDir,windGust" plotUnit="kts" x="0" y="0" transform="rotate(0,0,0)">
|
||
|
<text id="windVaneText" class="arrow" x="0" y="0">0</text>
|
||
|
<text id="windArrowText" class="barb" x="0" y="0">arrow</text>
|
||
|
<text id="windGustText" class="text" x="0" y="32" style="text-anchor: middle">0</text>
|
||
|
</g>
|
||
|
<text id="tempText" plotMode="text" plotParam="temperature" plotUnit="°F" plotFormat="%3.0f" style="text-anchor: end;" x="-10px" y="-10px">75</text>
|
||
|
<text id="dewText" plotMode="text" plotParam="DpT" plotUnit="°F" plotFormat="%3.0f" style="text-anchor: end;" x="-10px" y="10px">59</text>
|
||
|
<text id="pressure" plotMode="text" plotParam="seaLevelPressure" plotUnit="dPa" plotFormat="%5.0f" plotTrim="2" style="text-anchor: start;" x="10px" y="-10px">018</text>
|
||
|
</symbol>
|
||
|
</defs>
|
||
|
<use id="wind" x="40" y="40" width="80" height="80" visibility="visible" xlink:href="#plotData"/>
|
||
|
</svg>
|