{\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang1043\deflangfe1043{\fonttbl{\f0\fmodern\fprq1\fcharset0 Courier New;}{\f1\fmodern\fprq1\fcharset0 Consolas;}{\f2\fnil\fcharset0 Courier New;}{\f3\fnil\fcharset2 Symbol;}} {\colortbl ;\red0\green0\blue0;\red0\green0\blue255;} {\*\generator Riched20 10.0.18362}{\*\mmathPr\mdispDef1\mwrapIndent1440 }\viewkind4\uc1 \pard\nowidctlpar\ul\f0\fs22\lang2057 # CumulusUtils\par \ulnone\par \b NOTE: comments to cumulusutils.exe, its actual performance, functionality, installation and/or this document are welcome via the Cumulus support forum. The thread for cumulusutils would be a logical place.\par \par NOTE: If you have installed it before and are merely updating, do NOT copy the cumulusutils.ini again. If you do you will lose your modifications. For a simple number that won't be a big problem, if it is the translation of the headers it is a nuisance. New key's if any, will be added by the program.\par \par NOTE: Square brackets are not part of the parameter, they indicate optionality.\par \par \b0 Cumulus Utilities includes the Fire Weather Index for PWSs: pwsFWI.\par \par \ul #Install and run\par \ulnone\par CumulusUtils is developed under the same environment as CumulusMX (C#) so it should run. The first users have managed to indeed run it on a variety of systems. If there is any issue, let me know.\par \par The files cumulusutils.exe must be copied to the Cumulus directory. chmod +x; optionally: chown root; chgrp root. Cumulusutils.exe can be started from:\par \par \pard {\pntext\f0 1.\tab}{\*\pn\pnlvlbody\pnf0\pnindent0\pnstart1\pndec{\pntxta.}} \nowidctlpar\fi-360\li720 The commandline whenever you want;\par {\pntext\f0 2.\tab}From a batchfile started by some automated scheduler;\par {\pntext\f0 3.\tab}From Cumulus itself, using one of the '\i external programs\i0 ' possibilities available in the '\i internet program settings\i0 '. I would advice NOT to use the real-time entry.\par \pard\nowidctlpar\par The commandline to use is "cumulusutils.exe [pwsFWI] [Top10] [SysInfo]". \par Without param, nothing happens. Each parameter generates the specific functionality as described below. You can determine yourself the frequency by which cumulusutils runs. There is no specific requirement for run frequency, but it uses the dayfile.txt from Cumulus so once per day should be enough. [SysInfo] may have use of a higher frequency.\par \par As CumulusUtils itself runs in the Cumulus directory, the data directory (data) must be one level below. CumulusUtils currently reads the data/dayfile.txt and the ./Cumulus.ini\par \par The output of CumulusUtils consists of four text files, described below under heading Functionality. They can be brought to the website by using the Extra Web Files functionality in the setting of Cumulus. The system info file contains Cumulus web tags and needs to be processed.\par \par In case of problems there exists a cumulusutils.log file. You can check for yourself or ask on the forum with the log file as appendix.\par \par \ul #Functionality\par \ulnone\par Cumulusutils was designed to access Cumulus data and present these in simple HTML tables as textfiles. Functionality is added if the regular data handling from Cumulus to the display layer is not enough. With regular data handling, I mean the web tags and the realtime.txt. \par \par So far I created three functional blocks:\par \par \pard {\pntext\f0 1.\tab}{\*\pn\pnlvlbody\pnf0\pnindent0\pnstart1\pndec{\pntxta.}} \nowidctlpar\fi-360\li720 A top10 list;\par {\pntext\f0 2.\tab}A system info page;\par {\pntext\f0 3.\tab}pwsFWI, a Fire Weather Index.\par \pard\nowidctlpar\par \ul A top10 list\ulnone\par \pard\nowidctlpar\tx480\tx960\tx1440\tx1920\tx2400\tx2880\tx3360\tx3840\tx4320\tx4800\tx5280\tx5760\tx6240\tx6720\tx7200\tx7680\tx8160\tx8640\tx9120\tx9600\tx10080\tx10560\tx11040\tx11520\tx12000\tx12480\tx12960\tx13440\tx13920\tx14400\tx14880\tx15360 Although a top10 list procedure exists, I thought it too inefficient and could be made simpler from the users\rquote point of view. When using the \i Top10\i0 command line parameter, this functionality produces two output files: \i top10Tables.txt\i0 and \i top10TableStyle.txt\i0 . The user must include these text files on his/her webpage. The best technique to do so is in PHP. Put the following code on the place in your template where you want the table to appear. \par \par \pard\nowidctlpar\li1440\tx480\tx960\tx1440\tx1920\tx2400\tx2880\tx3360\tx3840\tx4320\tx4800\tx5280\tx5760\tx6240\tx6720\tx7200\tx7680\tx8160\tx8640\tx9120\tx9600\tx10080\tx10560\tx11040\tx11520\tx12000\tx12480\tx12960\tx13440\tx13920\tx14400\tx14880\tx15360\cf1\f1 \cf0\f0\par \pard\nowidctlpar\tx480\tx960\tx1440\tx1920\tx2400\tx2880\tx3360\tx3840\tx4320\tx4800\tx5280\tx5760\tx6240\tx6720\tx7200\tx7680\tx8160\tx8640\tx9120\tx9600\tx10080\tx10560\tx11040\tx11520\tx12000\tx12480\tx12960\tx13440\tx13920\tx14400\tx14880\tx15360\par You will need basic HTML knowledge about div and table etc... \par The TableStyle must be in the
block, the Table must be in the block.\par \par \ul A system info page\cf1\ulnone\f1\par \pard\nowidctlpar\cf0\f0 With CumulusMX some information about the system disappeared, some web tags do no longer work. Parameter \i SysInfo\i0 has CumulusUtils create a system page to dump info on the Cumulus system as I could create easily. The output is \i systeminfoTable.txt \i0 and is included in your webpage, similar to the top10 table. One difference: I use the-formatting tag in HTML. This means you can place the textfile in the body of your template the way as described above, but there will be no additional formatting possible. Wysiwyg.\par \par \ul The pwsFWI - Fire Weather Index\ulnone\par This is a somewhat more complex functionality in the sense that it adds something to the weather information, which is new and is also unique for the PWS-world. Inspired by FWIcalc by Graeme Kates from New Zealand (no longer maintained), I was looking for a replacement of his program. Being a forester, a chemist and an ICT man, I started studying the Canadian FWI and some other indices. But it was all too big with too many parameters for a PWS. So I finally decided to develop one myself. The scientific background can be read on my blog (see below). pwsFWI calculates a value on the basis of four meteorological measurements readily available from a PWS: Maximum temperature of the day, Minimum humidity of the day, High average wind speed of the day and the rainfall of the day. The value is calibrated (what is currently happening in the testing btw) against the Maximum value and a simple HTML colour display is made to show the current status. The value of the last thirty days is displayed in a table below.\par \par There exists an Analysis mode. If in cumulusutils.ini the value of Analysis is set to a number (> 30) you will find that number of days in your HTML table. So if it is 365, you will find a full year of data on the pwsFWI page. If the number is larger than the number of records you have, all records are shown. If the number is smaller than 30, it will always show 30 records (minimum) to give pwsFWI the context you \par need. \par \par The results can be displayed in two formats: "Standard" and "Beteljuice". In cumulusutils.ini there is the tag '\i ResultFormat\i0 '. If You choose Beteljuice you can also set '\i FireImage'\i0 to true. In that case you will see an image i.s.o. the text \i Extreme\i0 .\par \par The colours used are the internationally used colours for the Canadian FWI in general public warning systems. There is no standard for these. In Australia the colour purple has been added at the end of the scale for the \b\i Catastrophic\b0\i0 situation. If required such a colour class will be added.\par \par The output is \i pwsFWI.txt\i0 and it can be included in a template file where you want it. There must be no centering on the page otherwise the slider-indicator does get centered as well. No further styling required.\par \par In analysis mode also the file \i pwsFWIanalyse.csv\i0 is created to make it possible to analyse in Excel. I would appreciate feedback on your studies via the forum or via the mail!\par \par Testers are welcome; please contact me by email or via the forum.\par \par ----------------------------\par \par \pard\nowidctlpar\li360 NB: Technical point\par The display layer (the system) which is in place to make more complex data views is (as far as I know): \par \par \pard {\pntext\f0 a.\tab}{\*\pn\pnlvlbody\pnf0\pnindent0\pnstart1\pnlcltr{\pntxta.}} \nowidctlpar\fi-360\li1080 SQL transfer of data to a database on the website location;\par {\pntext\f0 b.\tab}Physical transfer of data files to the website;\par {\pntext\f0 c.\tab}Use PHP to access the data on the website. \par \pard\nowidctlpar\li360\par The above leads to data duplication and inefficiency (data is accessed when a page is requested). Cumulusutils is written in C# and produces straight forward simple HTML fragments.\par \par \pard\nowidctlpar\par #cumulusutils.ini\par \par In version 0.7 cumulusutils.ini was introduced. The user can edit the field values as wanted. They should be self-explanatory. \par \par Besides the elementary formatting of the top10 table, with version 0.7.5 tags for the table header texts were introduced. The user can now put its own text for the header fields in the top10 table. Standard in the distribution is Dutch header text, you can replace it.\par \par In version 0.8.5 Analyse was introduced to account for the analysis mode of pwsFWI as explained above.\par \par From v 0.8.5 cumulusutils.ini is no longer distributed in the archive. It is generated or updated by the software.\par \par From 0.9.0 the Beteljuice format was introduced for pwsFWI. Set the ini parameter ResultFormat=Beteljuice to use it and FireImage=true for an additional surprise gadget on the output page.\par \par #release notes\par \par The following things changed:\par \par \ul version 0.9.1 (26/9/2019)\ulnone\par \pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\nowidctlpar\fi-360\li720 Changes to the meteorlogical equations used for Vapour Deficit (see my blog of 26 sep 2019).\par {\pntext\f3\'B7\tab}Closed a call on SysInfo: Windows 8 really needs to have its updates.\par {\pntext\f3\'B7\tab}Several minor bugfixed/tunings in the Beteljuice-format.\par {\pntext\f3\'B7\tab}Code cleanup and minor fixes.\par \pard\nowidctlpar\par \ul version 0.9.0 (24/9/2019)\ulnone\par \pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\nowidctlpar\fi-360\li720 Bug fix: sysinfo under Windows (any version) now breaks off if resultstrings are unexpected. Message displayed in logfile, please send. However, errorhandling before that happens has been improved (again). \par {\pntext\f3\'B7\tab}Two pwsFWI result formats are now available: \i Standard\i0 and \i Beteljuice\i0 . The latter of course the better. (Thanks to Beteljuice, takes a lot of time iteration and testing though). Note the corresponding ini-parameters!\par \pard\nowidctlpar\par \ul version 0.8.8 (22/9/2019)\ulnone\par \pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\nowidctlpar\fi-360\li720 Bug fix: monthly rainfall did not show in top10 if the station was running ten or more months.\par {\pntext\f3\'B7\tab}Changed header of pwsFWI table: "Drought" was changed to "\f2\lang1043 Consecutive days without rain\f0\lang2057 " \par {\pntext\f3\'B7\tab}Ran spellchecker on this file\par \pard\nowidctlpar\par \ul version 0.8.7 (21/9/2019)\ulnone\par \pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\nowidctlpar\fi-360\li720 Functional change/Bug fix: The pwsFWI CSV-file now has a slightly different format. All figures are now floating point with max. two decimal accuracy (except for the drought period which are in days). This is generated without CultureInfo so, I assume the decimal period (or comma) is according to your machine setting (which is why I changed the comma separation to the semicolon). Let me know if this functions the wrong way.\par \pard{\*\pn\pnlvlcont\pnf3\pnindent0{\pntxtb\'B7}}\nowidctlpar\par \ul version 0.8.6 (21/9/2019)\ulnone\par \pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\nowidctlpar\fi-360\li720 Bug fix: During the updating of cumulusutils.ini erroneously Analysis was always reset to its default value.\par \pard{\*\pn\pnlvlcont\pnf3\pnindent0{\pntxtb\'B7}}\nowidctlpar\par \ul version 0.8.5 (20/9/2019)\ulnone\par \pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\nowidctlpar\fi-360\li720 Bug fix: high monthly rainfall in top10 table fixed if station runs less than 10 month. Top10 table now contains no entries for months without data. \ul\par {\pntext\f3\'B7\tab}\ulnone Dry period added to the pwsFWI table.\ul\par {\pntext\f3\'B7\tab}\ulnone Changed some table width.\ul\par {\pntext\f3\'B7\tab}\ulnone Exception handling now should be generic. IF(!) an exception occurs, the exceptions should always be handled such that the application recovers or ends with a graceful exit with enough info in the log file. The exception message is always printed in the log including a possible stackdump.\ul\par {\pntext\f3\'B7\tab}\ulnone The stations should have at least 30 days of days of data for top10. Otherwise this application will not run correctly. That has been taken care of.\ul\par {\pntext\f3\'B7\tab}\ulnone Analysis possibility for pwsFWI. See above in functionality.\ul\par {\pntext\f3\'B7\tab}\ulnone SysInfo page has now elaborate try/catch errorhandling on all system accesses, looking for information. If no information is found or in case of error, 'unknown' is written on the webpage. The variety within Linux/Unix is troublesome. Since there is no generic command to find the temperature of the processor, only for Raspberry it is known. Therefore I left that out.\ul\par \pard\nowidctlpar\ulnone\par \ul version 0.7.5 (19/9/2019)\ulnone\par \pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\nowidctlpar\fi-360\li720 All dayfile's can be used now, metric or imperial units will be handled and for the calculations of pwsFWI the conversions are automatically made. Let me know if you spot an anomaly.\ul\par {\pntext\f3\'B7\tab}\ulnone Headers of the top10 table now include the unit of measurement\ul\par {\pntext\f3\'B7\tab}\ulnone Headers of the top10 table now can be translated via the cumulusutils.ini\ul\par {\pntext\f3\'B7\tab}\ulnone some corrections and code cleanup\ul\par \pard\nowidctlpar\ulnone\par \ul version 0.7.0 (18/9/2019)\ulnone\par \pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\nowidctlpar\fi-360\li720 Made a ReadMe\ul\par {\pntext\f3\'B7\tab}\ulnone Finished the implementation of the ini-handling\ul\par {\pntext\f3\'B7\tab}\ulnone some corrections and code cleanup\ul\par \pard\nowidctlpar\par version 0.6.5 (17/9/2019)\par \pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\nowidctlpar\fi-360\li720\ulnone Completed the System Info page which is now also available for Windows 10 (maybe also lower versions, if not, let me know).\par {\pntext\f3\'B7\tab}Reading of the Cumulus.ini is now complete. This means that a lot of information can now be used and the preparations for a cumulusutils.ini are finished.\par {\pntext\f3\'B7\tab}Minor changes everywhere. Cleaning up.\par \pard\nowidctlpar\par \ul version 0.6.0 (16/9/2019)\par \pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\nowidctlpar\fi-360\li720\ulnone Added a System Info page for Unix/Linux. Run with command line parameter -ftp.\par \pard{\*\pn\pnlvlcont\pnf3\pnindent0{\pntxtb\'B7}}\nowidctlpar\par \ul version 0.5.3 (16/9/2019)\par \pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\nowidctlpar\fi-360\li720\ulnone Solved a technical problem in pwsFWI which had a big functional effect.\par {\pntext\f3\'B7\tab}Added a factor to pwsFWI to account for the duration of a drought period. In future the weight of this factor may change slightly.\par \pard\nowidctlpar\par \ul version 0.5.1\par \pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\nowidctlpar\fi-360\li720\ulnone Currently version 0.5.1 and the pwsFWI has now info with links and info. If you disagree and would like to see changes, please let me know.\par {\pntext\f3\'B7\tab}The executable now creates a cumulusutils.log. If any problems occur, please send it when you contact me, this may help out.\par {\pntext\f3\'B7\tab}I solved a rPi problem in converting the numbers from ascii to floats and doubles etc. C# is pretty tricky on this issue and there's a steep learning curve on my side. Hope I got it all right by now, but it is not impossible you see something strange on different machines. \par \pard\nowidctlpar\par In case of problems, please inform me, including your machine/locale info!!\par When necessary send me the dayfile.txt and the cumulusutils.log files.\par \par ------------------------------------\par \par My Blog: \tab\tab {{\field{\*\fldinst{HYPERLINK https://meteo-wagenborgen.nl/wp/tag/fwi/ }}{\fldrslt{https://meteo-wagenborgen.nl/wp/tag/fwi/\ul0\cf0}}}}\f0\fs22\par My Weather site:\tab {{\field{\*\fldinst{HYPERLINK https://www.meteo-wagenborgen.nl/ }}{\fldrslt{https://www.meteo-wagenborgen.nl/\ul0\cf0}}}}\f0\fs22\par CumulusUtils thread: {{\field{\*\fldinst{HYPERLINK https://cumulus.hosiene.co.uk/viewtopic.php?f=14&t=17573 }}{\fldrslt{https://cumulus.hosiene.co.uk/viewtopic.php?f=14&t=17573\ul0\cf0}}}}\f0\fs22\par }