votable2cmd.xsl 3.55 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:output method="text" encoding="UTF-8" />
	<!-- match whole document and apply selected templates -->
	<xsl:template match="/">
		<!-- header processing (see below) -->
		<xsl:apply-templates select="descendant::VOTABLE | descendant::RESOURCE | descendant::TABLE"/>
		<!-- gnuplot command processing -->
		<xsl:text>set title &apos;</xsl:text>
			<xsl:value-of select="VOTABLE/DESCRIPTION" />
				<xsl:text>&apos;&#x0a;</xsl:text>
		<xsl:text>set grid&#x0a;</xsl:text>
		<xsl:text>&#x0a;</xsl:text>
		<xsl:text>set xlabel &apos;</xsl:text>
			<xsl:value-of select="VOTABLE/RESOURCE/TABLE/FIELD[1]/@name" />
		 		<xsl:text> [</xsl:text>
					<xsl:value-of select="VOTABLE/RESOURCE/TABLE/FIELD[1]/@unit" />
						<xsl:text>]&apos;&#x0a;</xsl:text>
		<xsl:text>set ylabel &apos;</xsl:text>
			<xsl:value-of select="VOTABLE/RESOURCE/TABLE/FIELD[2]/@name" />
		 		<xsl:text> [</xsl:text>
					<xsl:value-of select="VOTABLE/RESOURCE/TABLE/FIELD[2]/@unit" />
						<xsl:text>]&apos;&#x0a;</xsl:text>
		<!-- TODO: add if-condition for 2nd channel -->
		<xsl:text>set y2label &apos;</xsl:text>
			<xsl:value-of select="VOTABLE/RESOURCE/TABLE/FIELD[3]/@name" />
		 		<xsl:text> [</xsl:text>
					<xsl:value-of select="VOTABLE/RESOURCE/TABLE/FIELD[3]/@unit" />
						<xsl:text>]&apos;&#x0a;</xsl:text>
		<!-- TODO: use parameters scaling/ticks -->
		<xsl:text>&#x0a;</xsl:text>
		<xsl:text>set yrange [0:1]&#x0a;</xsl:text>
		<xsl:text>set ytics 0, 0.1&#x0a;</xsl:text>
		<!-- TODO: add if-condition for 2nd channel -->
		<xsl:text>set y2range [0:400]&#x0a;</xsl:text>
		<xsl:text>set y2tics 0, 40&#x0a;</xsl:text>
		<xsl:text>set ytics nomirror&#x0a;</xsl:text>
		<xsl:text>&#x0a;</xsl:text>
		<!-- TODO: use parameters for line styles -->
		<xsl:text>set style line 1 lt 1&#x0a;</xsl:text>
		<!-- TODO: add if-condition for 2nd channel -->
		<xsl:text>set style line 2 lt 3&#x0a;</xsl:text>
		<xsl:text>&#x0a;</xsl:text>
		<!-- TODO: filename and format should be defined via parameters -->
		<xsl:text>set output &apos;gnuplot.png&apos;&#x0a;</xsl:text>
		<xsl:text>set terminal png enhanced size 800,600&#x0a;</xsl:text>
		<xsl:text>&#x0a;</xsl:text>
		<!-- TODO: use parameters for data source filename and "with lines" -->
		<xsl:text>plot	&apos;gnuplot.dat&apos; using 1:2 axis x1y1 ls 1 title &apos;</xsl:text>
			<xsl:value-of select="VOTABLE/RESOURCE/TABLE/FIELD[2]/@name" />
				<xsl:text>&apos; with lines, \&#x0a;</xsl:text>
		<!-- TODO: add if-condition for 2nd channel -->
		<xsl:text>	&apos;gnuplot.dat&apos; using 1:3 axis x1y2 ls 2 title &apos;</xsl:text>
			<xsl:value-of select="VOTABLE/RESOURCE/TABLE/FIELD[3]/@name" />
				<xsl:text>&apos; with lines&#x0a;</xsl:text>
	</xsl:template>
	<!-- header processing -->
	<xsl:template match="VOTABLE">
		<xsl:text># Fidelity Output Transformation (DataStorage Plugin)&#x0a;</xsl:text>
		<xsl:text># Input: VOTable </xsl:text>
			<xsl:value-of select="@version" />
				<xsl:text> - Output: gnuplot&#x0a;</xsl:text>
		<xsl:text>#&#x0a;</xsl:text>
		<xsl:text># Description: </xsl:text>
			<xsl:value-of select="child::DESCRIPTION" />
				<xsl:text>&#x0a;</xsl:text>
	</xsl:template>
	<xsl:template match="RESOURCE">
		<xsl:text># Resource: </xsl:text>
			<xsl:value-of select="child::DESCRIPTION" />
				<xsl:text>&#x0a;</xsl:text>
	</xsl:template>
	<xsl:template match="TABLE">
		<xsl:text># Table: </xsl:text>
			<xsl:value-of select="child::DESCRIPTION" />
				<xsl:text>&#x0a;</xsl:text>
		<xsl:text>#&#x0a;</xsl:text>
	</xsl:template>
</xsl:stylesheet>