Reference: report options¶
This section contains the options available in the skin configuration
file, skin.conf
. The same options apply to the language files
found in the subdirectory lang
, such as lang/en.conf
for
English.
We recommend to put
- options that control the behavior of the skin into
skin.conf
; and - language dependent labels and texts into the language files.
It is worth noting that, like the main configuration file
weewx.conf
, UTF-8 is used throughout.
[Extras]¶
This section is available to add any static tags you might want to use in your templates.
As an example, the skin.conf
file for the Seasons skin
includes three options:
Skin option | Template tag |
---|---|
radar_img |
$Extras.radar_img |
radar_url |
$Extras.radar_url |
googleAnalyticsId |
$Extras.googleAnalyticsId |
If you take a look at the template radar.inc
you will see
examples of testing for these tags.
radar_img¶
Set to an URL to show a local radar image for your region.
radar_url¶
If the radar image is clicked, the browser will go to this URL. This is usually used to show a more detailed, close-up, radar picture.
For me in Oregon, setting the two options to:
[Extras]
radar_img = http://radar.weather.gov/ridge/lite/N0R/RTX_loop.gif
radar_url = http://radar.weather.gov/ridge/radar.php?product=NCR&rid=RTX&loop=yes
results in a nice image of a radar centered on Portland, Oregon. When you click on it, it gives you a detailed, animated view. If you live in the USA, take a look at the NOAA radar website to find a nice one that will work for you. In other countries, you will have to consult your local weather service.
googleAnalyticsId¶
If you have a Google Analytics ID, you can set it here. The Google Analytics Javascript code will then be included, enabling analytics of your website usage. If commented out, the code will not be included.
Extending [Extras]
¶
Other tags can be added in a similar manner, including sub-sections. For example, say you have added a video camera, and you would like to add a still image with a hyperlink to a page with the video. You want all of these options to be neatly contained in a sub-section.
[Extras]
[[video]]
still = video_capture.jpg
hyperlink = http://www.eatatjoes.com/video.html
Then in your template you could refer to these as:
<a href="$Extras.video.hyperlink">
<img src="$Extras.video.still" alt="Video capture"/>
</a>
[Labels]¶
This section defines various labels.
hemispheres¶
Comma separated list for the labels to be used for the four hemispheres.
The default is N, S, E, W
.
latlon_formats¶
Comma separated list for the formatting to be used when converting latitude and longitude to strings. There should be three elements:
- The format to be used for whole degrees of latitude
- The format to be used for whole degrees of longitude
- The format to be used for minutes.
This allows you to decide whether you want leading zeroes. The
default includes leading zeroes and is "%02d", "%03d", "%05.2f"
.
[[Generic]]¶
This sub-section specifies default labels to be used for each observation type. For example, options
inTemp = Temperature inside the house
outTemp = Outside Temperature
UV = UV Index
would cause the given labels to be used for plots of inTemp
and
outTemp
. If no option is given, then the observation type
itself will be used (e.g., outTemp
).
[Almanac]¶
This section controls what text to use for the almanac. It consists of only one entry
moon_phases¶
This option is a comma separated list of labels to be used for the eight
phases of the moon. Default is New, Waxing crescent, First quarter,
Waxing gibbous, Full, Waning gibbous, Last quarter, Waning
crescent
.
[Units]¶
This section controls how units are managed and displayed.
[[Groups]]¶
This sub-section lists all the Unit Groups and specifies which measurement unit is to be used for each one of them.
As there are many different observational measurement types (such as
outTemp
, barometer
, etc.) used in WeeWX (more than 50
at last count), it would be tedious, not to say possibly inconsistent,
to specify a different measurement system for each one of them. At the
other extreme, requiring all of them to be "U.S. Customary" or
"Metric" seems overly restrictive. WeeWX has taken a middle route and
divided all the different observation types into 12 different unit
groups. A unit group is something like group_temperature
. It
represents the measurement system to be used by all observation types
that are measured in temperature, such as inside temperature (type
inTemp
), outside temperature (outTemp
), dewpoint
(dewpoint
), wind chill (windchill
), and so on. If you
decide that you want unit group group_temperature
to be
measured in degree_C
then you are saying all members of its
group will be reported in degrees Celsius.
Note that the measurement unit is always specified in the singular. That
is, specify degree_C
or foot
, not degrees_C
or feet
. See the Appendix: Units for more
information, including a concise summary of the groups, their members,
and which options can be used for each group.
group_altitude¶
Which measurement unit to be used for altitude. Possible options are
foot
or meter
.
group_direction¶
Which measurement unit to be used for direction. The only option is
degree_compass
.
group_distance¶
Which measurement unit to be used for distance (such as for wind run).
Possible options are mile
or km
.
group_moisture¶
The measurement unit to be used for soil moisture. The only option is
centibar
.
group_percent¶
The measurement unit to be used for percentages. The only option is
percent
.
group_pressure¶
The measurement unit to be used for pressure. Possible options are one
of inHg
(inches of mercury), mbar
, hPa
, or
kPa
.
group_pressurerate¶
The measurement unit to be used for rate of change in pressure. Possible
options are one of inHg_per_hour
(inches of mercury per hour),
mbar_per_hour
, hPa_per_hour
, or kPa_per_hour
.
group_radiation¶
The measurement unit to be used for radiation. The only option is
watt_per_meter_squared
.
group_rain¶
The measurement unit to be used for precipitation. Options are
inch
, cm
, or mm
.
group_rainrate¶
The measurement unit to be used for rate of precipitation. Possible
options are one of inch_per_hour
, cm_per_hour
, or
mm_per_hour
.
group_speed¶
The measurement unit to be used for wind speeds. Possible options are
one of mile_per_hour
, km_per_hour
, knot
,
meter_per_second
, or beaufort
.
group_speed2¶
This group is similar to group_speed
, but is used for
calculated wind speeds which typically have a slightly higher
resolution. Possible options are one mile_per_hour2
,
km_per_hour2
, knot2
, or meter_per_second2
.
group_temperature¶
The measurement unit to be used for temperatures. Options are
degree_C
, degree_E
,
degree_F
, or degree_K
.
group_volt¶
The measurement unit to be used for voltages. The only option is
volt
.
[[StringFormats]]
¶
This sub-section is used to specify what string format is to be used for each unit when a quantity needs to be converted to a string. Typically, this happens with y-axis labeling on plots and for statistics in HTML file generation. For example, the options
degree_C = %.1f
inch = %.2f
would specify that the given string formats are to be used when
formatting any temperature measured in degrees Celsius or any
precipitation amount measured in inches, respectively. The formatting
codes are those used by
Python,
and are very similar to C's sprintf()
codes.
You can also specify what string to use for an invalid or unavailable
measurement (value None
). For example,
NONE = " N/A "
[[Labels]]
¶
This sub-section specifies what label is to be used for each measurement unit type. For example, the options
degree_F = °F
inch = ' in'
would cause all temperatures to have unit labels °F
and all
precipitation to have labels in
. If any special symbols are to
be used (such as the degree sign) they should be encoded in UTF-8. This
is generally what most text editors use if you cut-and-paste from a
character map.
If the label includes two values, then the first is assumed to be the singular form, the second the plural form. For example,
foot = " foot", " feet"
...
day = " day", " days"
hour = " hour", " hours"
minute = " minute", " minutes"
second = " second", " seconds"
[[TimeFormats]]
¶
This sub-section specifies what time format to use for different time contexts. For example, you might want to use a different format when displaying the time in a day, versus the time in a month. It uses strftime() formats. The default looks like this:
[[TimeFormats]]
hour = %H:%M
day = %X
week = %X (%A)
month = %x %X
year = %x %X
rainyear = %x %X
current = %x %X
ephem_day = %X
ephem_year = %x %X
The specifiers %x
, %X
, and %A
code locale
dependent date, time, and weekday names, respectively. Hence, if you set
an appropriate environment variable LANG
, then the date and
times should follow local conventions (see section Environment variable
LANG for details on how to do this).
However, the results may not look particularly nice, and you may want to
change them. For example, I use this in the U.S.:
[[TimeFormats]]
#
# More attractive formats that work in most Western countries.
#
day = %H:%M
week = %H:%M on %A
month = %d-%b-%Y %H:%M
year = %d-%b-%Y %H:%M
rainyear = %d-%b-%Y %H:%M
current = %d-%b-%Y %H:%M
ephem_day = %H:%M
ephem_year = %d-%b-%Y %H:%M
The last two formats, ephem_day
and ephem_year
allow
the formatting to be set for almanac times The first,
ephem_day
, is used for almanac times within the day, such as
sunrise or sunset. The second, ephem_year
, is used for almanac
times within the year, such as the next equinox or full moon.
[[Ordinates]]
¶
directions¶
Set to the abbreviations to be used for ordinal directions. By default,
this is N, NNE, NE, ENE, E, ESE, SE, SSE, S, SSW, SW, WSW, W, WNW, NW,
NNW, N
.
[[DegreeDays]]
¶
heating_base¶
cooling_base¶
growing_base¶
Set to the base temperature for calculating heating, cooling, and growing degree-days, along with the unit to be used. Examples:
heating_base = 65.0, degree_F
cooling_base = 20.0, degree_C
growing_base = 50.0, degree_F
[[Trend]]
¶
time_delta¶
Set to the time difference over which you want trends to be calculated. Alternatively, a duration notation can be used. The default is 3 hours.
time_grace¶
When searching for a previous record to be used in calculating a trend,
a record within this amount of time_delta
will be accepted.
Default is 300 seconds.
[Texts]
¶
The section [Texts]
holds static texts that are used in the
templates. Generally there are multiple language files, one for each
supported language, named by the language codes defined in
ISO 639-1.
The entries give the translation of the texts to the target language.
For example,
[Texts]
"Current Conditions" = "Aktuelle Werte"
would cause "Aktuelle Werte" to be used whereever $gettext("Current
Conditions"
appeared. See the section on
$gettext
.
Note
Strings that include commas must be included in single or double quotes. Otherwise they will be misinterpreted as a list.
[CheetahGenerator]¶
This section contains the options for the Cheetah generator. It applies
to skin.conf
only.
search_list¶
This is the list of search list objects that will be scanned by the
template engine, looking for tags. See the section Defining new
tags and the Cheetah
documentation for details on search
lists. If no search_list
is specified, a default list
will be used.
search_list_extensions¶
This defines one or more search list objects that will be appended to
the search_list
. For example, if you are using the
"seven day" and "forecast" search list extensions, the option would
look like
search_list_extensions = user.seven_day.SevenDay, user.forecast.ForecastVariables
encoding¶
As Cheetah goes through the template, it substitutes strings for all tag values. This option controls which encoding to use for the new strings. The encoding can be chosen on a per-file basis. All the encodings listed in the Python documentation Standard Encodings are available, as well as these WeeWX-specific encodings:
Encoding | Comments |
html_entities | Non 7-bit characters will be represented as HTML entities (e.g., the degree sign will be represented as "°") |
strict_ascii | Non 7-bit characters will be ignored. |
normalized_ascii | Replace accented characters with non-accented analogs (e.g., 'ö' will be replaced with 'o'). |
The encoding html_entities
is the default. Other common choices
are utf8
, cp1252
(a.k.a. Windows-1252), and
latin1
.
template¶
The name of a template file. A template filename must end with
.tmpl
. Filenames are case-sensitive. If the template filename
has the letters YYYY
, MM
, WW
or DD
in its name, these will be substituted for the year, month, week and day
of month, respectively. So, a template with the name
summary-YYYY-MM.html.tmpl
would have name
summary-2010-03.html
for the month of March, 2010.
generate_once¶
When set to True
, the template is processed only on the first
invocation of the report engine service. This feature is useful for
files that do not change when data values change, such as HTML files
that define a layout. The default is False
.
stale_age¶
File staleness age, in seconds. If the file is older than this age it
will be generated from the template. If no stale_age
is
specified, then the file will be generated every time the generator
runs.
Note
Precise control over when a report is run is
available through use of the report_timing
option in
weewx.conf
. The report_timing
option uses a CRON-like
setting to control precisely when a report is run. See the guide Scheduling
report generation for details.
[[SummaryByDay]]
The SummaryByDay
section defines some special behavior. Each
template in this section will be used multiple times, each time with a
different per-day timespan. Be sure to include YYYY
,
MM
, and DD
in the filename of any template in this
section.
[[SummaryByMonth]]
The SummaryByMonth
section defines some special behavior. Each
template in this section will be used multiple times, each time with a
different per-month timespan. Be sure to include YYYY
and
MM
in the filename of any template in this section.
[[SummaryByYear]]
The SummaryByYear
section defines some special behavior. Each
template in this section will be used multiple times, each time with a
different per-year timespan. Be sure to include YYYY
in the
filename of any template in this section.
[ImageGenerator]
¶
This section describes the various options available to the image generator.
![]() |
---|
Part names in a WeeWX image |
Overall options¶
These are options that affect the overall image.
anti_alias¶
Setting to 2 or more might give a sharper image, with fewer jagged
edges. Experimentation is in order. Default is 1
.
![]() |
---|
A GIF showing the same image with anti_alias=1 , 2 , and 4 . |
chart_background_color¶
The background color of the chart itself. Optional. Default is
#d8d8d8
.
chart_gridline_color¶
The color of the chart grid lines. Optional. Default is #a0a0a0
![]() |
---|
Example of day/night bands in a one week image |
daynight_day_color¶
The color to be used for the daylight band. Optional. Default is
#ffffff
.
daynight_edge_color¶
The color to be used in the transition zone between night and day.
Optional. Default is #efefef
, a mid-gray.
daynight_night_color¶
The color to be used for the nighttime band. Optional. Default is
#f0f0f0
, a dark gray.
image_background_color¶
The background color of the whole image. Optional. Default is
#f5f5f5
("SmokeGray")
image_width¶
image_height¶
The width and height of the image in pixels. Optional. Default is 300 x 180 pixels.
show_daynight¶
Set to true
to show day/night bands in an image. Otherwise, set
to false. This only looks good with day or week plots. Optional. Default
is false
.
skip_if_empty¶
If set to true
, then skip the generation of the image if all
data in it are null. If set to a time period, such as month
or
year
, then skip the generation of the image if all data in that
period are null. Default is false
.
stale_age¶
Image file staleness age, in seconds. If the image file is older than
this age it will be generated. If no stale_age
is specified,
then the image file will be generated every time the generator runs.
unit¶
Normally, the unit used in a plot is set by whatever unit group the types are in. However, this option allows overriding the unit used in a specific plot.
Various label options¶
These are options for the various labels used in the image.
axis_label_font_color¶
The color of the x- and y-axis label font. Optional. Default is
black
.
axis_label_font_path¶
The path to the font to be use for the x- and y-axis labels. Optional. If not given, or if WeeWX cannot find the font, then the default PIL font will be used.
axis_label_font_size¶
The size of the x- and y-axis labels in pixels. Optional. The default is
10
.
bottom_label_font_color¶
The color of the bottom label font. Optional. Default is black
.
bottom_label_font_path¶
The path to the font to be use for the bottom label. Optional. If not given, or if WeeWX cannot find the font, then the default PIL font will be used.
bottom_label_font_size¶
The size of the bottom label in pixels. Optional. The default is
10
.
bottom_label_format¶
The format to be used for the bottom label. It should be a strftime
format.
Optional. Default is '%m/%d/%y %H:%M'
.
bottom_label_offset¶
The margin of the bottom label from the bottom of the plot. Default is 3.
top_label_font_path¶
The path to the font to be use for the top label. Optional. If not given, or if WeeWX cannot find the font, then the default PIL font will be used.
top_label_font_size¶
The size of the top label in pixels. Optional. The default is
10
.
unit_label_font_color¶
The color of the unit label font. Optional. Default is black
.
unit_label_font_path¶
The path to the font to be use for the unit label. Optional. If not given, or if WeeWX cannot find the font, then the default PIL font will be used.
unit_label_font_size¶
The size of the unit label in pixels. Optional. The default is
10
.
x_interval¶
The time interval in seconds between x-axis tick marks. Optional. If not given, a suitable default will be chosen.
x_label_format¶
The format to be used for the time labels on the x-axis. It should be a strftime format. Optional. If not given, a sensible format will be chosen automatically.
x_label_spacing¶
Specifies the ordinal increment between labels on the x-axis: For
example, 3 means a label every 3rd tick mark. Optional. The default is
2
.
y_label_side¶
Specifies if the y-axis labels should be on the left, right, or both
sides of the graph. Valid values are left
, right
or both
. Optional.
Default is left
.
y_label_spacing¶
Specifies the ordinal increment between labels on the y-axis: For
example, 3 means a label every 3rd tick mark. Optional. The default is
2
.
y_nticks¶
The nominal number of ticks along the y-axis. The default is
10
.
Plot scaling options¶
time_length¶
The nominal length of the time period to be covered in seconds. Alternatively, a
duration notation can be used. The
exact length of the x-axis is chosen by the plotting engine to cover
this period. Optional. Default is 86400
(one day).
yscale¶
A 3-way tuple (ylow
, yhigh
, min_interval
),
where ylow
and yhigh
are the minimum and maximum
y-axis values, respectively, and min_interval
is the minimum
tick interval. If set to None
, the corresponding value will be
automatically chosen. Optional. Default is None, None, None
.
(Choose the y-axis minimum, maximum, and minimum increment
automatically.)
Compass rose options¶
![]() |
---|
Example of a vector plot with a compass rose in the lower-left |
rose_label¶
The label to be used in the compass rose to indicate due North.
Optional. Default is N
.
rose_label_font_path¶
The path to the font to be use for the rose label (the letter "N," indicating North). Optional. If not given, or if WeeWX cannot find the font, then the default PIL font will be used.
rose_label_font_size¶
The size of the compass rose label in pixels. Optional. The default is
10
.
rose_label_font_color¶
The color of the compass rose label. Optional. Default is the same color as the rose itself.
vector_rotate¶
Causes the vectors to be rotated by this many degrees. Positive is
clockwise. If westerly winds dominate at your location (as they do at
mine), then you may want to specify +90
for this option. This
will cause the average vector to point straight up, rather than lie flat
against the x-axis. Optional. The default is 0
.
Shared plot line options¶
These are options shared by all the plot lines.
chart_line_colors¶
Each chart line is drawn in a different color. This option is a list of
those colors. If the number of lines exceeds the length of the list,
then the colors wrap around to the beginning of the list. Optional. In
the case of bar charts, this is the color of the outline of the bar.
Default is #0000ff, #00ff00, #ff0000
.
Individual line color can be overridden by using option color
.
chart_fill_colors¶
A list of the color to be used as the fill of the bar charts. Optional.
The default is to use the same color as the outline color (option
chart_line_colors
).
chart_line_width¶
Each chart line can be drawn using a different line width. This option
is a list of these widths. If the number of lines exceeds the length of
the list, then the widths wrap around to the beginning of the list.
Optional. Default is 1, 1, 1
.
Individual line widths can be overridden by using option width
.
Individual line options¶
These are options that are set for individual lines.
aggregate_interval¶
The time period over which the data should be aggregated, in seconds.
Alternatively, a duration notation can be used.
Required if aggregate_type
has been set.
aggregate_type¶
The default is to plot every data point, but this is probably not a good
idea for any plot longer than a day. By setting this option, you can
aggregate data by a set time interval. Available aggregation types
include avg
, count
, cumulative
, diff
, last
, max
, min
, sum
,
and tderiv
.
color¶
This option is to override the color for an individual line. Optional.
Default is to use the color in chart_line_colors
.
data_type¶
The SQL data type to be used for this plot line. For more information, see the section Including a type more than once in a plot. Optional. The default is to use the section name.
fill_color¶
This option is to override the fill color for a bar chart. Optional.
Default is to use the color in chart_fill_colors
.
label¶
The label to be used for this plot line in the top label. Optional. The default is to use the SQL variable name.
line_gap_fraction¶
If there is a gap between data points bigger than this fractional amount of the x-axis, then a gap will be drawn, rather than a connecting line. See Section Line gaps. Optional. The default is to always draw the line.
line_type¶
The type of line to be used. Choices are solid
or
none
. Optional. Default is solid
.
marker_size¶
The size of the marker. Optional. Default is 8
.
marker_type¶
The type of marker to be used to mark each data point. Choices are
cross
, x
, circle
, box
, or none
. Optional. Default is none
.
plot_type¶
The type of plot for this line. Choices are line
, bar
,
or vector
. Optional. Default is line
.
width¶
This option is to override the line width for an individual line.
Optional. Default is to use the width in chart_line_width
.
[CopyGenerator]¶
This section is used by generator
weewx.reportengine.CopyGenerator
and controls which files are
to be copied over from the skin directory to the destination directory.
Think of it as "file generation," except that rather than going
through the template engine, the files are simply copied over. It is
useful for making sure CSS and Javascript files are in place.
copy_once¶
This option controls which files get copied over on the first invocation of the report engine service. Typically, this is things such as style sheets or background GIFs. Wildcards can be used.
copy_always¶
This is a list of files that should be copied on every invocation. Wildcards can be used.
Here is the [CopyGenerator]
section from the Standard skin.conf
[CopyGenerator]
# This section is used by the generator CopyGenerator
# List of files to be copied only the first time the generator runs
copy_once = backgrounds/*, weewx.css, mobile.css, favicon.ico
# List of files to be copied each time the generator runs
# copy_always =
The Standard skin includes some background images, CSS files, and icons that need to be copied once. There are no files that need to be copied every time the generator runs.
[Generators]
¶
This section defines the list of generators that should be run.
generator_list¶
This option controls which generators get run for this skin. It is a comma separated list. The generators will be run in this order.
Here is the [Generators]
section from the Standard skin.conf
[Generators]
generator_list = weewx.cheetahgenerator.CheetahGenerator, weewx.imagegenerator.ImageGenerator, weewx.reportengine.CopyGenerator
The Standard skin uses three generators: CheetahGenerator
, ImageGenerator
,
and CopyGenerator
.