############################################################################### # $Id: skin.conf 2749 2014-11-29 18:15:24Z tkeffer $ # # Copyright (c) 2010 Tom Keffer # # SOFA SKIN (c) 2015 Sven Reifschneider # # SOFA SKIN CONFIGURATION FILE # ############################################################################### [Extras] # Template Extras # Website URL #web_url = # radar #radar = '' # Lightning map and hyperlink #lightning_map = http://images.lightningmaps.org/blitzortung/america/index.php?map=usa&period=0.25 #lightning_url = http://www.lightningmaps.org/realtime # You. Only shows up in footer you = "" emailname = "" email = "" # Camera link # camera and cameratitle are arrays of the camera links and camera names. #cameratitle = "" #camera = # Google Analytics ID #googleAnalyticsId = #CWOP #cwop = #cwop_url = #weatherflow #wf = #wf_url = #mesowest #mwest = #mwest_url = #weather underground #wunderground = #wu_url = #CoCoRaHS #crahs = #crahs_url = ############################################################################################### [Units] # This section is for managing the selection and formatting of units. [[Groups]] # For each group of measurements, this section sets what units to # use for it. # NB: The unit is always in the singular. i.e., 'mile_per_hour', # NOT 'miles_per_hour' group_altitude = foot # Options are 'foot' or 'meter' group_degree_day = degree_F_day # Options are 'degree_F_day' or 'degree_C_day' group_direction = degree_compass group_light = lx group_lightning = ltg_strike group_moisture = centibar group_percent = percent group_pressure = mbar # Options are 'inHg', 'mmHg', 'mbar', or 'hPa' group_radiation = watt_per_meter_squared group_rain = inch # Options are 'inch', 'cm', or 'mm' group_rainrate = inch_per_hour # Options are 'inch_per_hour', 'cm_per_hour', or 'mm_per_hour' group_speed = mile_per_hour # Options are 'mile_per_hour', 'km_per_hour', 'knot', or 'meter_per_second' group_speed2 = mile_per_hour2 # Options are 'mile_per_hour2', 'km_per_hour2', 'knot2', or 'meter_per_second2' group_temperature = degree_F # Options are 'degree_F' or 'degree_C' group_uv = uv_index group_volt = volt # The following are used internally and should not be changed: group_count = count group_interval = minute group_time = unix_epoch group_elapsed = second [[StringFormats]] # This section sets the string formatting for each type of unit. centibar = %.0f cm = %.2f cm_per_hour = %.2f degree_C = %.1f degree_F = %.1f degree_compass = %.0f foot = %.0f hPa = %.0f hour = %.1f inHg = %.3f inch = %.2f inch_per_hour = %.2f km_per_hour = %.0f km_per_hour2 = %.1f knot = %.0f knot2 = %.1f ltg_strike = %.0f mbar = %.0f meter = %.0f meter_per_second = %.1f meter_per_second2 = %.1f mile_per_hour = %.0f mile_per_hour2 = %.1f mm = %.1f mmHg = %.1f mm_per_hour = %.1f percent = %.0f second = %.0f uv_index = %.0f volt = %.1f watt_per_meter_squared = %.0f NONE = " N/A" [[Labels]] # This section sets a label to be used for each type of unit. centibar = " cb" cm = " cm" cm_per_hour = " cm/h" degree_C = " °C" degree_F = " °F" degree_compass = " °" foot = " feet" hPa = " hPa" inHg = " inHg" inch = " in" inch_per_hour = " in/h" km_per_hour = " km/h" km_per_hour2 = " km/h" knot = " knots" knot2 = " knots" ltg_strike = "" mbar = " mbar" meter = " meter" meter_per_second = " m/s" meter_per_second2 = " m/s" mile_per_hour = " mph" mile_per_hour2 = " mph" mm = " mm" mmHg = " mmHg" mm_per_hour = " mm/h" percent = % volt = " V" watt_per_meter_squared = " W/m²" day = " Day", " Days" hour = " Hour", " Hours" minute = " Minute", " Minutes" second = " Second", " Seconds" NONE = "" [[TimeFormats]] # This section sets the string format to be used for each time scale. # The values below will work in every locale, but may not look # particularly attractive. See the Customizing Guide for alternatives. day = %X week = %X (%A) month = %x %X year = %x %X rainyear = %x %X current = %x %X ephem_day = %X ephem_year = %x %X [[Ordinates]] # The ordinal directions. The last one should be for no wind direction directions = N, NNE, NE, ENE, E, ESE, SE, SSE, S, SSW, SW, WSW, W, WNW, NW, NNW, N/A [[DegreeDays]] # This section sets the base temperatures used for the calculation # of heating and cooling degree-days. # Base temperature for heating days, with unit: heating_base = 65, degree_F # Base temperature for cooling days, with unit: cooling_base = 65, degree_F [[Trend]] time_delta = 10800 # 3 hours time_grace = 300 # 5 minutes ############################################################################### [Labels] # Labels used in this skin # Set to hemisphere abbreviations suitable for your location: hemispheres = N, S, E, W # Formats to be used for latitude whole degrees, longitude whole degrees, # and minutes: latlon_formats = "%02d", "%03d", "%05.2f" [[Generic]] # Generic labels, keyed by an observation type. barometer = Barometer dewpoint = Dew Point heatindex = Heat Index inHumidity = Inside Humidity inTemp = Inside Temperature lux = Brightness outHumidity = Outside Humidity outTemp = Outside Temperature outTempBatteryStatus = Air Battery radiation = Radiation rain = Rain rainRate = Rain Rate rxCheckPercent = ISS Signal Quality UV = UV Index windBatteryStatus = Sky Battery windDir = Wind Direction windGust = Gust Speed windGustDir = Gust Direction windSpeed = Wind Speed windchill = Wind Chill windgustvec = Gust Vector windvec = Wind Vector # This one is probably specific to my station! extraTemp1 = Pond Temperature lightningStrikes = Lightning Strikes lightningAvgDistance = Avg Lightning Distance lightningDistance = Lightning Distance ############################################################################### [Almanac] # The labels to be used for the phases of the moon: moon_phases = New, Waxing crescent, First quarter, Waxing gibbous, Full, Waning gibbous, Last quarter, Waning crescent ############################################################################### [CheetahGenerator] # This section is used by the generator CheetahGenerator, and specifies # which files are to be generated from which template. # Possible encodings are 'html_entities', 'utf8', or 'strict_ascii' encoding = html_entities search_list_extensions = user.historygenerator.MyXSearch [[SummaryByMonth]] # Reports that summarize "by month" [[[NOAA_month]]] encoding = utf8 template = NOAA/NOAA-YYYY-MM.txt.tmpl [[SummaryByYear]] # Reports that summarize "by year" [[[NOAA_year]]] encoding = utf8 template = NOAA/NOAA-YYYY.txt.tmpl [[ToDate]] # Reports that show statistics "to date", such as day-to-date, # week-to-date, month-to-date, etc. [[[day]]] template = index.html.tmpl [[[week]]] template = week.html.tmpl [[[month]]] template = month.html.tmpl [[[year]]] template = year.html.tmpl [[[RSS]]] template = RSS/weewx_rss.xml.tmpl [[HTMLFiles]] # # Pages that do not require time interval specific tags # [[[about]]] # Station information template = about.html.tmpl [[[summary]]] # Station Summaries and all time station records template = summary.html.tmpl [[[textphp]]] # NOAA Climate Reports template = text.php.tmpl ############################################################################### [CopyGenerator] # This section is used by the generator CopyGenerator # List of files to be copied only the first time the generator runs copy_once = css/main.css, js/*, .htaccess, error/*, robots.txt, touch-icon.png, favicon.ico ############################################################################### [HistoryReport] # # Settings for the HTML month/year colour coded summary table generator # # minvalues, maxvalues and colours should contain the same number of elements. # # For example, the [min_temp] example below, if the minimum temperature measured in # a month is between -50 and -10 (degC) then the cell will be shaded in html colour code #0029E5. # # Default is temperature scale #minvalues = -50, -10, -5, 0, 5, 10, 15, 20, 25, 30, 35 minvalues = -10, -5, 0, 5, 10, 15, 25, 35, 45, 50, 60 #maxvalues = -10, -5, 0, 5, 10, 15, 20, 25, 30, 35, 60 maxvalues = -5, 0, 10, 20, 35, 45, 60, 75, 90, 100, 120 colours = "#0066FF", "#0186E7", "#02E3EA", "#04EC97", "#05EF3D2", "#2BF207", "#8AF408", "#E9F70A", "#F9A90B", "#FC4D0D", "#FF0F2D" monthnames = Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec # The Raspberry Pi typically takes 15+ seconds to calculate all the summaries with a few years of weather date. # refresh_interval is how often in minutes the tables are calculated. refresh_interval = 1440 [[min_temp]] obs_type = outTemp # obs_type can be any weewx reading aggregate_type = min # Any of these: 'sum', 'count', 'avg', 'max', 'min' # Can also use these aggregate_types: 'max_ge', 'max_le', 'min_le', 'sum_ge' to count days where observation # is ge: greater of equalto, or le: lessthan or equal to a threshold value # To specify this threshold, use: aggregate_threshold = [value], [units] # e.g Specify temperature threshold of 20C: # # aggregate_threshold = 20, degree_C [[max_temp]] obs_type = outTemp aggregate_type = max [[avg_temp]] obs_type = outTemp aggregate_type = avg minvalues = 15, 25, 35, 45, 50, 55, 60, 65, 70, 75, 80 maxvalues = 25, 35, 45, 50, 55, 60, 65, 70, 75, 80, 85 [[avg_htemp]] obs_type = inTemp aggregate_type = avg minvalues = 50, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80 maxvalues = 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 85 [[temp_count]] obs_type = outTemp aggregate_type = sum_ge aggregate_threshold = -150.0, degree_F minvalues = 0, 2, 4, 6, 8, 12, 15, 18, 21, 24, 27 maxvalues = 2, 4, 6, 8, 12, 15, 18, 21, 24, 27, 32 colours = "#0029E5", "#0186E7", "#02E3EA", "#04EC97", "#05EF3D2", "#2BF207", "#8AF408", "#E9F70A", "#F9A90B", "#FC4D0D", "#FFFFFF" #number of days of rainfall [[rain_count]] obs_type = rain aggregate_type = sum_ge aggregate_threshold = 0.01, inch minvalues = 0, 2, 4, 8, 12, 20 # Override default temperature colour scheme with rain specific scale maxvalues = 2, 4, 8, 12, 20, 32 colours = "#E0F8E0", "#A9F5A9", "#58FA58", "#2EFE2E", "#41E741", "#01DF01" #total monthly rainfall [[rain]] obs_type = rain aggregate_type = sum minvalues = 0, 1, 2, 3, 4, 5 # Override default temperature colour scheme with rain specific scale maxvalues = 1, 2, 3, 4, 5, 10 colours = "#E0F8E0", "#A9F5A9", "#58FA58", "#2EFE2E", "#41E741", "#01DF01" #total monthly lightning [[lightning_sum]] obs_type = lightningStrikes aggregate_type = sum colours = "#FFFFFF", "#FFFFFF", "#FFFFFF", "#FFFFFF", "#FFFFFF", "#FFFFFF", "#FFFFFF", "#FFFFFF", "#FFFFFF", "#FFFFFF", "#FFFFFF" [[NOAA]] # # Creates a table of links to NOAA reports with the tag $NOAA_table # Comment out [[NOAATable]] if you do not need this. # # Where to find the NOAA files and how they are named # Uses Python datetime convention (docs.python.org/2/library/datetime.html): # %Y = YYYY, %y = YY, %m = MM, etc. # year_filename = NOAA/NOAA-%Y.txt month_filename = NOAA/NOAA-%Y-%m.txt ############################################################################### [ImageGenerator] # This section lists all the images to be generated, what SQL types are to # be included in them, along with many plotting options, such as color or # font. There's a default for almost everything, if not specified below. # Nevertheless, I have explicitly put in values, to make it easy to see # and understand the options. # # Fonts can be anything accepted by the Python Imaging Library (PIL), which # is currently truetype (.ttf), or PIL's own font format (.pil). See # http://www.pythonware.com/library/pil/handbook/imagefont.htm for more # details. Note that "font size" is only used with truetype (.ttf) # fonts. For others, font size is determined by the bit-mapped size, # usually encoded in the file name (e.g., courB010.pil). If a font cannot # be found, then a default font will be used. # # Colors can be specified any of three ways: # 1. Notation 0xBBGGRR; # 2. Notation #RRGGBB; or # 3. Using an English name, such as 'yellow', or 'blue'. # So, 0xff0000, #0000ff, or 'blue' would all specify a pure blue color. image_width = 800 image_height = 300 image_background_color = 0xffffff chart_background_color = 0xffffff chart_gridline_color = 0xdbdbdb top_label_font_path = /usr/share/fonts/truetype/droid/DroidSans-Bold.ttf top_label_font_size = 18 unit_label_font_path = /usr/share/fonts/truetype/droid/DroidSans-Bold.ttf unit_label_font_size = 16 unit_label_font_color = 0x000000 bottom_label_font_path = /usr/share/fonts/truetype/droid/DroidSans-Bold.ttf bottom_label_font_size = 16 bottom_label_font_color = 0x000000 axis_label_font_path = /usr/share/fonts/truetype/droid/DroidSans-Bold.ttf axis_label_font_size = 16 axis_label_font_color = 0x000000 # Options for the compass rose, used for progressive vector plots rose_label = N rose_label_font_path = /usr/share/fonts/truetype/droid/DroidSans-Bold.ttf rose_label_font_size = 16 rose_label_font_color = 0x000000 # Default colors for the plot lines. These can be overridden for # individual lines using option 'color' chart_line_colors = 0xb48242, 0x4242b4, 0x42b442, Orange # Type of line. Only 'solid' or 'none' is offered now line_type = 'solid' # Size of marker in pixels marker_size = 8 # Type of marker. Pick one of 'cross', 'x', 'circle', 'box', or 'none' marker_type = 'none' # Default fill colors for bar charts. These can be overridden for # individual bar plots using option 'fill_color' chart_fill_colors = 0xc4b272, 0x7272c4, 0x72c472 # The following option merits an explanation. The y-axis scale used for # plotting can be controlled using option 'yscale'. It is a 3-way tuple, # with values (ylow, yhigh, min_interval). If set to "None", a parameter is # set automatically, otherwise the value is used. However, in the case of # min_interval, what is set is the *minimum* y-axis tick interval. yscale = None, None, None # For progressive vector plots, you can choose to rotate the vectors. # Positive is clockwise. # For my area, westerlies overwhelmingly predominate, so by rotating # positive 90 degrees, the average vector will point straight up. vector_rotate = 90 # This defines what fraction of the difference between maximum and minimum # horizontal chart bounds is considered a gap in the samples and should not # be plotted. line_gap_fraction = 0.01 bar_gap_fraction = 0.20 # This controls whether day/night bands will be shown. They only look good # on the day and week plots. show_daynight = true # These control the appearance of the bands if they are shown. 0xBBGGRR # Sofa Skin blue orange: # Night: #f0fdff Day: #fefff0 Edge: #f0fffb daynight_day_color = 0xf0fffe daynight_night_color = 0xfffdf0 daynight_edge_color = 0xfbfff0 ## What follows is a list of subsections, each specifying a time span, such ## as a day, week, month, or year. There's nothing special about them or ## their names: it's just a convenient way to group plots with a time span ## in common. You could add a time span [[biweek_images]] and add the ## appropriate time length, aggregation strategy, etc., without changing ## any code. ## ## Within each time span, each sub-subsection is the name of a plot to be ## generated for that time span. The generated plot will be stored using ## that name, in whatever directory was specified by option 'HTML_ROOT' ## in weewx.conf. ## ## With one final nesting (four brackets!) is the sql type of each line to ## be included within that plot. ## ## Unless overridden, leaf nodes inherit options from their parent # Default plot and aggregation. Can get overridden at any level. plot_type = line aggregate_type = none width = 2 time_length = 86400 # == 24 hours [[day_images]] x_label_format = %H:%M bottom_label_format = %x %X time_length = 97200 # == 27 hours [[[daybarometer]]] [[[[barometer]]]] [[[daytempdew]]] [[[[outTemp]]]] [[[[dewpoint]]]] [[[[windchill]]]] [[[[heatindex]]]] [[[dayrain]]] # Make sure the y-axis increment is at least 0.02 for the rain plot yscale = None, None, 0.02 plot_type = bar [[[[rain]]]] aggregate_type = sum aggregate_interval = 3600 label = Rain (Hourly Total) #[[[[linerain]]]] #data_type = rain #plot_type = line #aggregate_type = sum #aggregate_interval = 86400 #label = Rain (24 hour Total) #[[[dayouthumid]]] # [[[[outHumidity]]]] #[[[dayrx]]] # [[[[rxCheckPercent]]]] #[[[daypond]]] # yscale = None, None, 0.5 # [[[[extraTemp1]]]] [[[daywind]]] [[[[windSpeed]]]] [[[[windGust]]]] line_type = none marker_size = 2 marker_type = 'cross' [[[daywinddir]]] # Hardwire in the y-axis scale for wind direction yscale = 0.0, 360.0, 45.0 [[[[windDir]]]] line_type = none marker_size = 2 marker_type = 'cross' [[[daywindvec]]] [[[[windvec]]]] plot_type = vector #[[[daytempchill]]] # [[[[windchill]]]] # [[[[heatindex]]]] [[[dayinside]]] [[[[inTemp]]]] [[[dayinhumid]]] # [[[[inHumidity]]]] [[[[outHumidity]]]] [[[dayradiation]]] [[[[radiation]]]] [[[dayuv]]] yscale = 0, 10, 1 [[[[UV]]]] # lightning plot [[[daylightning]]] plot_type = bar yscale = None, None, 5 [[[[lightningStrikes]]]] aggregate_type = sum aggregate_interval = 3600 label = Lightning (Hourly Total) [[[daybattery]]] yscale = None, None, 0.01 [[[[windBatteryStatus]]]] [[[[outTempBatteryStatus]]]] [[week_images]] x_label_format = %d bottom_label_format = %x %X time_length = 604800 # == 7 days aggregate_type = avg aggregate_interval = 3600 [[[weekbarometer]]] [[[[barometer]]]] [[[weektempdew]]] [[[[outTemp]]]] [[[[dewpoint]]]] [[[[windchill]]]] [[[[heatindex]]]] [[[weekrain]]] yscale = None, None, 0.02 plot_type = bar [[[[rain]]]] aggregate_type = sum aggregate_interval = 86400 label = Rain (Daily Total) #[[[[linerain]]]] #data_type = rain #plot_type = line #aggregate_type = sum #aggregate_interval = 604800 #label = Rain (Weekly Total) #[[[weekouthumid]]] # [[[[outHumidity]]]] #[[[weekpond]]] # yscale = None, None, 0.5 # [[[[extraTemp1]]]] #[[[weekrx]]] # [[[[rxCheckPercent]]]] [[[weekwind]]] [[[[windSpeed]]]] [[[[windGust]]]] aggregate_type = max line_type = none marker_size = 2 marker_type = 'cross' [[[weekwinddir]]] yscale = 0.0, 360.0, 45.0 [[[[windDir]]]] line_type = none marker_size = 2 marker_type = 'cross' [[[weekwindvec]]] [[[[windvec]]]] plot_type = vector #[[[weektempchill]]] # [[[[windchill]]]] # [[[[heatindex]]]] #[[[weekinside]]] # [[[[inTemp]]]] [[[weekinhumid]]] # [[[[inHumidity]]]] [[[[outHumidity]]]] [[[weekradiation]]] [[[[radiation]]]] [[[weekuv]]] yscale = 0, 10, 1 [[[[UV]]]] [[[weeklightning]]] yscale = None, None, 5 plot_type = bar [[[[lightningStrikes]]]] aggregate_type = sum aggregate_interval = 86400 label = Lightning (Daily Total) [[[weekbattery]]] [[[[windBatteryStatus]]]] [[[[outTempBatteryStatus]]]] [[month_images]] x_label_format = %d bottom_label_format = %x %X time_length = 2592000 # == 30 days aggregate_type = avg aggregate_interval = 10800 # == 3 hours show_daynight = false [[[monthbarometer]]] [[[[barometer]]]] [[[monthtempdew]]] [[[[outTemp]]]] [[[[dewpoint]]]] [[[monthrain]]] yscale = None, None, 0.02 plot_type = bar [[[[rain]]]] aggregate_type = sum aggregate_interval = 86400 label = Rain (Daily Total) #[[[monthouthumid]]] # [[[[outHumidity]]]] #[[[monthpond]]] # yscale = None, None, 0.5 # [[[[extraTemp1]]]] #[[[monthrx]]] # [[[[rxCheckPercent]]]] # Old wind graphic #[[[monthwind]]] # [[[[windSpeed]]]] # [[[[windGust]]]] # aggregate_type = max # New wind graphic [[[monthwind]]] [[[[windSpeed]]]] aggregate_type = max [[[[avgwindSpeed]]]] data_type = windSpeed aggregate_type = avg label = Average Wind Speed [[[[windGust]]]] aggregate_type = max [[[monthwinddir]]] yscale = 0.0, 360.0, 45.0 [[[[windDir]]]] line_type = none marker_size = 2 marker_type = 'cross' [[[monthwindvec]]] [[[[windvec]]]] plot_type = vector #[[[monthtempchill]]] # [[[[windchill]]]] # [[[[heatindex]]]] #[[[monthinside]]] # [[[[inTemp]]]] [[[monthinhumid]]] # [[[[inHumidity]]]] [[[[outHumidity]]]] [[[monthradiation]]] [[[[radiation]]]] [[[monthuv]]] yscale = 0, 10, 1 [[[[UV]]]] [[[monthlightning]]] yscale = None, None, 10 plot_type = bar [[[[lightningStrikes]]]] aggregate_type = sum aggregate_interval = 86400 label = Lightning (Daily Total) [[year_images]] x_label_format = %m/%d bottom_label_format = %x %X time_length = 31536000 # == 365 days aggregate_type = avg aggregate_interval = 86400 show_daynight = false [[[yearbarometer]]] [[[[barometer]]]] [[[yeartempdew]]] [[[[outTemp]]]] label = Average Daily Temperature [[[[dewpoint]]]] label = and Dewpoint # Daily high/lows: [[[yearhilow]]] [[[[hi]]]] data_type = outTemp aggregate_type = max label = High [[[[low]]]] data_type = outTemp aggregate_type = min label = Low Temperature [[[[dewpoint]]]] label = and Dewpoint #[[[yearwind]]] # [[[[windSpeed]]]] # [[[[windGust]]]] # aggregate_type = max [[[yearwind]]] [[[[windSpeed]]]] aggregate_type = max [[[[windGust]]]] aggregate_type = max [[[yearrain]]] yscale = None, None, 0.02 plot_type = bar [[[[rain]]]] aggregate_type = sum # aggregate_interval = 2629800 # Magic number: the length of a nominal month aggregate_interval = 604800 # == 1 week label = Rain (Weekly Total) #[[[yearouthumid]]] # [[[[outHumidity]]]] #[[[yearpond]]] # yscale = None, None, 0.5 # [[[[extraTemp1]]]] #[[[yearrx]]] # [[[[rxCheckPercent]]]] [[[yearwinddir]]] yscale = 0.0, 360.0, 45.0 [[[[windDir]]]] line_type = none #aggregate_type = sum marker_size = 2 marker_type = 'cross' [[[yearwindvec]]] [[[[windvec]]]] plot_type = vector #[[[yeartempchill]]] # [[[[windchill]]]] # [[[[heatindex]]]] #[[[yearinside]]] # [[[[inTemp]]]] [[[yearinhumid]]] # [[[[inHumidity]]]] [[[[outHumidity]]]] [[[yearradiation]]] [[[[radiation]]]] [[[yearuv]]] yscale = 0, 10, 1 [[[[UV]]]] [[[yearlightning]]] yscale = None, None, 10 plot_type = bar [[[[lightningStrikes]]]] aggregate_type = sum # aggregate_interval = 2629800 # Magic number: the length of a nominal month aggregate_interval = 604800 # == 1 week label = Lightning (Weekly Total) ############################################################################### # # The list of generators that are to be run: # [Generators] generator_list = weewx.cheetahgenerator.CheetahGenerator, weewx.imagegenerator.ImageGenerator, weewx.reportengine.CopyGenerator