Grass identification – made easier?

Grass identification by vegetative means isn’t the easiest of tasks to carry out, especially with some 170, or so, grasses that might be encountered within the British Isles. However, with the pervasiveness of mobile smart phones and the logical workings of computers (bits of 1 or 0; basically switches of On/Off or Yes/No) it seems quite reasonable to develop an easy to use web app to help in deciding which grass is being identified when out in the field. Alternatively we could develop a web app that includes probability algorithms, but that will be after the more fundamental one.

I had already started on a decision tree app and this is deployed – part complete – to illustrate the concept so far.

Grasses decision tree web app

Grasses decision tree web app

I need to revisit this to ensure the key vegetative, mostly unchanging, features are included before the more variable ones. For example, if a grass species has a membranous ligule, it always has this form, it won’t have a fringe of hairs as the ligule.  The same applies to an auricle. Leaf hairiness is more variable, but still indicative of the grass species, so we might apply an 80% probability in such a situation.

Habitats is a reasonable indicator, but the actual range can be quite significant, so this should just be used as a general indicator only, especially when supported by a range of other criteria: but still a useful filter feature to include. A habitat feature will be particularly useful for sports turf and general amenity situations and further context specific information can be included, such as links to appropriate grass seed cultivars, costs and suppliers.

A slightly different approach is to have all the grass species data kept in a database and this is  queried by an html form and php code.

The current status of this web app is that there are 169 species included within the database (with just 9 datafields at the moment to provide enough variation for developments).

Mysql data fields

Mysql data fields

The front page (minimal design at the moment) which interacts with the database is still being developed, especially regards the MySQL query code, but I have a good working draft available with several select filter options as well as a search for a species or common name, once a name has been queried then a single select filter can then work on the results to narrow them further. A-Z sort is also available for each field in the displayed table.

Grasses identification web app

Grasses identification web app

A couple of key facts from the database (data verification still needs to be carried out):

  • 10 grass species have a fringe of hairs as a ligule; 159 with a membranous ligule;
  • 23 grass species have an auricle (that is readily identified as such);

What I will aim to do is to create select filter (chain select) that work consecutively on the results so you can effectively use this as a decision tree as well; so several more steps still needed for this web app.

Visuals will also be added, possibly as tool tips, and also hyperlinks for each species so that the full feature set for that species can be readily accessed.

Plenty of room for further development, but some good progress has been made to date.

Chris Gray, 24th December 2017