5,838
edits
No edit summary |
|||
{{AddOnBanner|name=Annual Data Summary|type=HTML & Javascript|author=David Jamieson|contact=[[User:Daj|DAJ]]|updated=7 March 2011|version=1.1|updated=17 December 2012|version=1.2 BCJKiwi}}
'Annual Data Summary' is a small tool to read the [[dayfile.txt]] produced by Cumulus and summarise this in a table showing a full years worth of data. This tool uses standard HTML and Javascript so does not require a webserver with PHP services enabled. (many of the free hosting services do not offer PHP so this was a solution to that problem). However, a PHP version is included so you have the option to use either. Both provide identical data and functionality, however if you have PHP services on your web server use the PHP version as it is slightly faster.
An working example is [http://www.grantownweather.co.uk/historic/dataSummary.php here]
= Requirements =
*webserver space
*Cumulus [[Dayfile.txt]] file uploaded to the webserver
*Javascript enabled browser (all modern browsers use Javascript)
*optionally, a tool to automate the uploading of dayfile.txt to your webserver once per day
*optionally, PHP enabled web server if you wish to use the PHP version
= The
Here is a revised set of files (PHP only) ver 1.2
These are available here and update the Ver 1.1 fileset below to eliminate errors in validation due to deprecated code routines.
They also include a couple of updates from DAJ advised by posts in the Forum.
The files include additional notes and explanations on the changes where relevant.
A working example is [http://silveracorn.co.nz/weather/datasummary.php here]
*download the follwing file...[http://wiki.sandaysoft.com/files/AnnualDataSummary_12.zip AnnualDataSummary_12.zip]
*Follow the instructions below for the PHP version.
Original Fileset and instructions:-
*download the following file...[http://wiki.sandaysoft.com/files/AnnualDataSummary.zip AnnualDataSummary.zip]
*Unzip the contents (five files will be extracted)
*Edit the file 'readDayfile' file in a a good text editor (for example, [http://notepad-plus-plus.org/ notepad++]). Edit the .js version or the .php depending on your choice
*Look for the line 'dayfile='/data/dayfile.txt';' around line 15 and change this to point to your dayfile.txt on your webserver. This path should start from the / (root)
*Copy the necessary files to your web site into a subfolder, or the root -- your choice
: if using the PHP version copy
: for the
*Copy
*
= Usage =
Along the top will be a menu of the six data sets available and on the top left of the table is the year currently being shown. Change either the year, or click one of the top buttons to change the dataset. Depending on the speed of your internet connection, and your browser, the data may take a few seconds to be processed.
If you select the pure Javascript solution available here, it means the page viewer's browser is doing all the work. The complete dayfile.txt is loaded each time you select a dataset, and your PC then filters and processes it. An [http://sandaysoft.com/forum/viewtopic.php?f=18&t=8690 alternative Javascript/jQuery solution] that only reads the dayfile.txt once, however many times you choose a different data set or a different year is in the 3rd party tools forum. That alternative is thus considerably faster, especially with large dayfile.txt files.
This is in contrast to a PHP solution also available here, where the source server does all the work and only sends the results to the viewer's browser.
= Possible problems =
*This has been tested and runs on IE 7, IE 8, IE9, FireFox 3 to 14, Chrome/Dragon/SRWare Iron, and Safari -- running on the non IE browsers for both Windows and the Mac.
*IE7 is notoriously slow for Javascript processing so there will be a longer delay as you change the data set (a few more seconds in some cases)
= Customisation =
== Understanding the Basics ==
The 'tool' relies on two files for successful operation.... datasummary.css (the style sheet) and
If you wish to use your own page to show the data on, do the following:
*for the PHP version
:use the code <pre><?php include('readDayfile.php');?></pre>
Please note that the table needs a good amount of space to show a full year of data (at least 900 pixels unless you start reducing the font size!)
<br>
== Configuration Variables ==
by default, the script will do the following:
*Insert it's contents into a DIV called 'tableData' (JS version only)
*Assumes the date format in the dayfile is dd/mm/yy
*Assumes the data in the dayfile is separated with a comma
The last two assumptions are fine for UK based systems, however others should check the dayfile.txt and adjust as necessary
If you need to adjust any of these settings, edit the readDayfile.js file and consider the variables in the top section of the script:
*'''tableDiv''' - the name of the DIV on your webpage to insert the table into (JS Version only)
*'''field_delimiter''' - the symbol separating each of your fields in the dayfile.txt. For most people this is a comma but may also be a period (.)
*'''date_delimiter''' - the symbol separating your date format. In the UK this is / however in other countires it may be -
Change as needed, save and test
== Localization / Language ==
The script has been designed to be easily translated to your language of choice.
As
*variable '''mn''' is a list of the 12 months of the year, in an abbreviated format. You may change these as necessary, but try to keep it to an abbreviation as there is limited space.
*''''label_items'''' is a list of all possible data sets to be displayed. Again you can change these to suit. However, the format is a little more involved and you should take some care.
<pre>['maxtemp','Max Temp','Maximum Temperature',true]</pre>
*The first element, in this case 'maxtemp' -- must remain '''unchanged''', this is a system variable to identify the
*Second, '''Max Temp''' is the text to be displayed in the ''button'' at the top of the table. You may change this to your own language
*Third, '''Maximum Temperature''' is the text shown at the top of the table to ''describe the current data set''; again you may change this
*Finally, 'true' will display this button at the top; 'false' will hide it. Therefore, if you do not wish to allow users to jump to the 'Rainfall
<br>
== Opening a specific data set ==
By default the table will summaries the maximum temperature for the current year, however you can start with any dataset or year (assuming you have the data in the dayfile.txt) but adding a string to the end of your URL in the browser. examples....,
*JS version --myserver.com/datasummary.html?year=2010
*PHP version -- myserver.com/datasummary.php?year=2010
:This will open the data set initially showing year 2010
*myserver.com/datasummary.html?data=rainfall&year=2009
:This will open the rainfall dataset for the year 2009.
The parameter 'data' takes mintemp, maxtemp, avgtemp, minmaxt, rainfall, windgust. You can supply both parameters, one only, or none
== Styling ==
|-
| #table_container .zerovalue
| In the Rainfall and Windgust
|-
| #table_container table th
| Set the overall font size and style used in the table, as well as the text colour; table positioning and maximum width
|}
|
edits