Skip to content


This section controls how units are managed and displayed.


This 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 reference section Units for more information, including a concise summary of the groups, their members, and which options can be used for each group.


Which measurement unit to be used for altitude. Possible options are foot or meter.


Which measurement unit to be used for direction. The only option is degree_compass.


Which measurement unit to be used for distance (such as for wind run). Possible options are mile or km.


The measurement unit to be used for soil moisture. The only option is centibar.


The measurement unit to be used for percentages. The only option is percent.


The measurement unit to be used for pressure. Possible options are one of inHg (inches of mercury), mbar, hPa, or kPa.


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.


The measurement unit to be used for radiation. The only option is watt_per_meter_squared.


The measurement unit to be used for precipitation. Options are inch, cm, or mm.


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.


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.


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.


The measurement unit to be used for temperatures. Options are degree_C, degree_E, degree_F, or degree_K.


The measurement unit to be used for voltages. The only option is volt.


This 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 "


This 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"


This 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:

        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.:

        # 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.



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.





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



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.


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.