Butterfly Transect Walks Example Setup
--------------------------------------
.. warning:
This tutorial was written for Drupal 6 and needs to be updated.
Indicia includes a prebuilt form designed for inputting flying insect counts
along a transect walk which has been divided into sections. This form was
designed for the `UKBMS `_'s online recording facilities
but can also be used to record other flying insects such as Odonata.
Some details on how you might set this form up follow, including the setup of
a calendar grid to break walks down into weeks through the season. Before
following these steps you will need an installation of Drupal plus the Indicia Forms and
Easy Login modules as well as an account on a warehouse.
Here are some files you may like to have available to import into the system:
+------------+-----------------------------------------------------------------+
| File | Description |
+============+=================================================================+
| Counties | If not using the list of counties provided on the warehouse then|
| CSV | provide a list of the counties that sites will be allocated to. |
| | This should be provided as a CSV file with a single column |
| | containing the county names, including a column title (which can|
| | be anything you like). |
+------------+-----------------------------------------------------------------+
| Habitats | Provide a list of the habitats that will be available for |
| CSV | describing sites in your recording scheme. |
| | This should be provided as a CSV file with a single column |
| | containing the habitat names, including a column title (which |
| | can be anything you like). If available, a sort order column |
| | containing an integer for each term can be used to enforce a |
| | non-alphabetical sort order. |
+------------+-----------------------------------------------------------------+
| Management | Provide a list of the management terms that will be available |
| CSV | for describing sites in your recording scheme. |
| | This should be provided as a CSV file with a single column |
| | containing the management terms, including a column title (which|
| | can be anything you like). |
+------------+-----------------------------------------------------------------+
| Branches | This file is only required if your recording scheme is divided |
| CSV | into regional branches. An ESRI SHP file format list of the |
| | boundaries of each branch, containing the branch names and the |
| | polygon defined in projection EPSG:27700 or EPSG:4326. |
+------------+-----------------------------------------------------------------+
| Transects | If you want to prepopulate the list of sites available for |
| CSV | transect walks, then provide a list of the transects as a |
| | spreadsheet in CSV format, including column titles. The |
| | spreadsheet should include the following columns: |
| | |
| | * **Site code**. Provide a unique numeric code for each site. |
| | * **Site name**. Provide a name for each site. |
| | * **Grid ref**. Grid reference for each site's centroid. |
| | * **County**. Name of the county for each site. This must match |
| | one of the counties in the Counties CSV file. |
| | * **Number of sections**. The number of sections the transect |
| | is divided into. If this column is ommitted then you will |
| | need to manually set the number of sections and input the |
| | section details before inputting count data. |
| | * **Overall transect length**. The length of the transect in |
| | metres, can be omitted if not known. |
| | * **Transect width**. The width of the transect in metres, can |
| | be omitted if not known. You will need to know the distinct |
| | list of widths in use so that you can later set up the |
| | appropriate entries for the list of available widths. |
| | * **Year established**. Specify the 4 digit year each transect |
| | was established if known. |
| | * **All or single species**. A column containing the word *All* |
| | or *Single* for each transect, depending on the transect type.|
| | * **Sensitive**. A column containing *t* for sensitive sites |
| | and *f* for all others. |
| | * **Primary habitat**. Set to one of the terms from the list of |
| | habitats where the primary habitat is known. |
| | * **Secondary habitat**. Set to one of the terms from the list |
| | of habitats where the primary habitat is known. |
| | |
| | The exact column titles you use does not matter as long as you |
| | remember which is which. |
+------------+-----------------------------------------------------------------+
| Sections | If you want to prepopulate the list of sites available for |
| CSV | transect walks, then provide a list of the transects as a |
| | spreadsheet in CSV format, including column titles. The |
| | spreadsheet should include the following columns: |
| | |
| | * **Grid ref** (if not importing a SHP file). This can be the |
| | same as the grid reference for the parent transect but the |
| | recorders will need to draw their routes on a map before |
| | inputting records. |
+------------+-----------------------------------------------------------------+
| Sections | An ESRI SHP file of the section lines |
| SHP | |
+------------+-----------------------------------------------------------------+
| Species | A CSV file of each of the species you would like to be able to |
| CSV | record. Should have a column for the latin name plus a column |
| | for the common name, plus one column for any species code |
| | systems you would like to be able to use, e.g. BRC codes. |
| | You can provide additional species lists if you want to be able |
| | to record additional species groups via additional tabs. |
+------------+-----------------------------------------------------------------+
| Wind Speed | A CSV file of each of the wind speed terms you would like to be |
| CSV | able to record. |
+------------+-----------------------------------------------------------------+
| Wind Dir | A CSV file of each of the wind direction terms you would like |
| CSV | to be able to record. |
+------------+-----------------------------------------------------------------+
Website registration and survey
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
As with any Indicia based survey, you will need a website registration on the
warehouse plus an entry in the list of surveys, belonging to the website.
Give your survey a name that you will remember as being associated with the
butterfly transect walk survey you are configuring.
Termlists
^^^^^^^^^
Before setting up the form, you will need to have certain terms and termlists
configured on the warehouse as follows. All the termlists you create should be
owned by your website registration on the warehouse.
* Ensure that the existing Location Types termlist includes terms called
**Branch**, **Transect** and **Transect Section**. Create them if they don't
already exist.
* If not using the existing list of counties, then create a termlist called
**BMS Counties** or similar. Use the warehouse import tool to import the CSV
file of counties into the list, setting the language to English for all rows
and mapping your column to the **term** field.
* Create a termlist called **Transect width (m)** and setup terms called **5**,
**6**, **10** and **other**, with the Sort Order set to **5**, **6**, **10**
and **9999** respectively. You can modify this list if your scheme has a
different set of possible transect widths.
* Create a termlist called **All or single species** with terms for **All** and
**Single**. Set both terms to English language, with their sort order set to
**0** and **1** respectively.
* Create a termlist called **Climate of transect** with terms for **Lowland**
and **Upland**. Set both terms to English language, with their sort order set
to **0** and **1** respectively.
* Create a termlist called **BMS Habitats** or similar. Use the warehouse import
tool to import the CSV file of habitats into the list, setting the language to
English for all rows and mapping your column to the **term** field. Also
import the sort order if provided to ensure the habitats are in the correct
order.
* Create a termlist called **BMS Management**. Use the warehouse import tool to
import the CSV file of management terms into the list, setting the language to
English for all rows and mapping your column to the **term** field.
* Create a termlist called **BMS Wind Speeds**. Use the warehouse import tool to
import the CSV file of wind speed terms into the list, setting the language to
English for all rows and mapping your column to the **term** field.
* Create a termlist called **BMS Wind Directions**. Use the warehouse import
tool to import the CSV file of wind direction terms into the list, setting the
language to English for all rows and mapping your column to the **term**
field.
* Create a termlist called **BMS Temperatures**. Use the warehouse import tool
to import the CSV file of temperature terms into the list, setting the
language to English for all rows and mapping your column to the **term**
field.
Species Lists
^^^^^^^^^^^^^
Before importing the species lists you want to be able to record against, ensure
that the **Taxon Code types** termlist contains a term for any species codes
that you would like to import alongside the species names, e.g. for BRC codes
or Species ID 2010. You must provide species names in a spreadsheet with the
following columns, note that the exact column names used does not matter:
* Latin name - the latin name of the species, imported into the **Taxon >
Taxon** field.
* Common names - the common name(s) of the species, imported into the **Other
Fields > CommonNames** field. Provide as a comma separated list, with the
preferred first. You can follow each name by a pipe (|) then the 3 letter ISO
639 language code for the language, e.g.::
Green Woodpecker|eng,Pic vert|fra
This field can be ommitted if common names are not used.
* Codes - any coding systems for the species such as BRC codes, imported into
the **Other Fields > Codes** field. The field can contain several codes
separated by a comma. Each code must contain the code name (matching the term
in the Taxon Code types termlist), followed by a pipe (|), then the actual
code, e.g::
Species ID 2010|172500,BRC Code|123456
Custom Attributes
^^^^^^^^^^^^^^^^^
Setup the following location attributes for the UKBMS survey. Do not make any of
them required at this stage or link them to the location types as this needs to
be done after import. The attribute is described as block/sub-block/caption,
followed by the description of the attribute. For example, you should create
a location attribute called county which is a lookup, linked to the BMS Counties
termlist. On the survey setup attributes you will need to make the attribute
required and linked to the Transect location type, but only after the import
of any existing transects.
* **Site details/Details/County**
Lookup, BMS Counties termlist, linked to Transect location type, required for
the survey.
* **Site details/Details/Sensitive**
Boolean, available to other websites, linked to Transect location type
* **Site details/Details/No. of sections**
Integer, linked to Transect location type, minimum 0, required for survey
* **Site details/Details/Overall length (m)**
Integer, linked to Transect location type, minimum 0, required for survey
* **Site details/Details/Transect width (m)**
Lookup, Transect widths termlist, linked to Transect location type, required
for survey
* **Site details/Details/Year established**
Integer, linked to Transect location type
* **Site details/Details/All or single species**
Lookup, All or single species termlist, linked to Transect location type
* **Site details/Details/Climate of transect**
Lookup, Climate of transect termlist, linked to Transect location type
* **Habitat and management/Habitat/Principal transect habitat**
Lookup, Habitats termlist, linked to Transect location type
* **Habitat and management/Habitat/2nd transect habitat**
Lookup, Habitats termlist, linked to Transect location type
* **Habitat and management/Habitat/Principal habitat present**
Lookup, Habitats termlist, linked to Section location type
* **Habitat and management/Habitat/2nd habitat present**
Lookup, Habitats termlist, linked to Section location type
* **Habitat and management/Habitat/3rd habitat present**
Lookup, Habitats termlist, linked to Section location type
* **Habitat and management/Habitat/4th habitat present**
Lookup, Habitats termlist, linked to Section location type
* **Habitat and management/Habitat/Habitat text description**
Text, linked to Section location type
* **Habitat and management/Habitat/Notes on land use and management**
Text, not linked to a specific location type
* **Habitat and management/Management/Primary management**
Lookup, Management termlist, linked to Section location type
* **Habitat and management/Management/Secondary management**
Lookup, Management termlist, linked to Section location type
* **Habitat and management/Management/Management text description**
Text, linked to Section location type
* **Section/Details/Section length (m)**
Integer, minimum 0, linked to Section location type
* **CMS User ID**
Integer, available to other websites, linked to Transect location type
Setup the following custom attributes for occurrences in your survey:
* **Abundance Count**
integer, required for the survey, minimum value 0, system function = Count or
abundance of a sex or life stage.
Setup the following custom attributes for samples in your survey:
* **Recorder Name**
Text, system function=full name, sample method=Transect
* **Start Time (hh:mm)**
Text, regexp=/^([0-1][0-9]|2[0-3]):([0-5][0-9])$/, required for survey,
default control type=text_input, sample Method=Transect, available to other
websites
* **End Time (hh:mm)**
Text, regexp=/^([0-1][0-9]|2[0-3]):([0-5][0-9])$/, required for survey,
default control type=text_input, sample Method=Transect, available to other
websites
* **% sun**
Integer, min value=0, max value=100
* **Temp (Deg C)**
Lookup, BMS Temperatures list, required for survey, sample method=Transect
* **Wind Direction**
Lookup, BMS Wind Directions list, Default value=Not recorded/no data, required for
survey, default control type=select, sample Method=Transect
* **Wind Speed**
Lookup, UKBMS Wind Speeds list, Default value=Not recorded/no data, required for survey,
default control type=select, sample method=Transect
* **CMS User ID**
Use the existing attribute, Sample Method=Transect. This attribute is not
needed if the Easy Login module is enabled.
* **CMS Username**
Use the existing attribute, Sample Method=Transect. This attribute is not
needed if the Easy Login module is enabled.
Drupal site setup
^^^^^^^^^^^^^^^^^
Starting with a Drupal site setup with a configured Indicia forms module,
perform the following setup tasks. Also ensure that your site is configured
with the correct warehouse, website ID and password on the IForm settings page.
Install Drupal modules
""""""""""""""""""""""
Install the following modules for Drupal:
* **Chaos tools**
* **Page manager**
* **Panels**
* **Views**
* **Views UI**
* **Views content panes**
Create a home page
""""""""""""""""""
#. First we need to create a Drupal node to hold the chart which appears on the
home page. Select **Content management > Add content > Indicia pages** from
the Drupal admin menu. Set the **Page title** to "Records for this year so
far".
#. Under the **Form Selection** section, set **Select Form Category** to
"Reporting" and the **Select Form** to "Report Calendar Summary". Click the
**Load Settings Form** button.
#. Specify the following settings for the form:
* **Report Settings - Report Name** =Reports for Prebuilt Forms/UKBMS/UKBMS
Annual Summary Table Occurrence list
* **Report Settings - Preset Parameter Values** = ::
survey_id=n
user_id=
location_id=
occattrs=
date_from=
date_to=
taxon_list_id=n
Make sure that you set n to the survey's ID and the ID of your main species
list respectively.
* **Report Settings - Vertical Axis** = taxon
* **Report Settings - Count Column** = Abundance Count
* **Report Output - Output chart** = ticked
* **Report Output - Default output type** = Chart.
* **Controls - Date filter type** = This year (no user control)
* **Controls - Drupal permission for manager mode** = manager
* **Date Axis Options - Start of week definition** = date=Apr-01
* **Date Axis Options - Week One Contains** = Apr-01
* **Date Axis Options - Restrict displayed weeks** = -3:30
* **Chart Options - Chart Type** = Line
* **Chart Options - Chart X-axis labels** = Week number only
* **Chart Options - Include total series** = ticked
* **Chart Options - Chart Height** = 200
* **Advanced Chart Options - Axes Options** - paste the following into the
**Edit source** view then click **Edit w/form** to save it::
{
"yaxis":
{
"min":0,
"showMinorTicks":false,
"tickOptions":
{
"showGridline":false,
"formatString":"%.0f"
},
"max":500
},
"xaxis":
{
"labelOptions":
{
"label":"Week no."
}
}
}
Click **Save** to save the node.
#. Visit the **Site building > Views** menu item on the Drupal admin menu. Click
*enable** beside the **frontpage** view.
#. Select **Site building > Pages > Add custom page** from the Drupal admin
menu.
#. Set the **Administrative title** and **Machine name** of the page to "home".
#. Set the path to "home" and tick **Make this your site home page**.
#. Set **Variant type** to **Panel** if it is not already.
#. Tick **Visible menu item**. Leave the other checkboxes unticked.
#. Click **Continue**.
#. On the next **Menu settings** page, select **Normal menu entry**, then enter
"Home" as the **title**, and set the **Menu** to "Primary links". This adds
a menu item to the main site menu. Click **Continue**.
#. On the **Choose layout** page, select the radio button for **Builders -
Flexible**. Click **Continue**.
#. On the **Panel settings** page, just click **Continue**.
#. On the **Panel content** page, click **Show layout designer**. On the **Row**
drop down menu, select **Add region to the left**. Set the **Region title**
to "News" and click **Save**.
#. Click **Hide layout designer**. On the *gears icon* in the top left of the
News section, select **Add content**.
#. On the popup dialog that appears, select **Views** in the bar on the left,
then select *frontpage*. Click **Continue** to select the **defaults**
display. Click the **Finish** button to add the view to the page.
On the **gears icon** in the top left of the **Center** pane, select **Add
content**. In the popup that appears, select **Existing node**. Search for
the "Records for this year so far" node, check the box to override the title
but leave the title blank, and uncheck the tickbox for including node links.
Set the **Build mode** to "Full node" and click **Finish**.
#. Click **Update and Save**.
Now might be a good time to create a new Story content item to check that this
appears on the home page.
My Sites
^^^^^^^^
Add a new Indicia Pages content item and use the following settings:
#. **Page title** = My sites
#. **Menu settings - Menu link title** = My Sites
#. **Menu settings - Parent item** =
#. **Select Form Category** = Reporting
#. **Select Form** = Report Grid
#. **URL Path** = site-list
Then, click the **Load Settings Form** button and enter the following settings
in the configuration form which appears:
* **Report Settings - Report Name** = Library/Locations/Species and occurrence
counts by site
* **Report Settings - Preset parameter values** = ::
date_from=
date_to=
survey_id=
location_type_id=Transect
locattrs=CMS User ID
attr_location_cms_user_id={user_id}
* **Report Settings - Columns Configuration** = select the **View Source** mode
then paste the following settings, finally click **View w/form** to save the
settings. ::
[
{
"fieldname":"id",
"visible":false
},
{
"fieldname":"name",
"display":"Site Name"
},
{
"fieldname":"occurrences",
"display":"No. of records"
},
{
"fieldname":"taxa",
"display":"No. of species"
},
{
"fieldname":"groups",
"visible":false
},
{
"fieldname":"attr_location_cms_user_id",
"visible":false
},
{
"display":"Actions",
"actions":
[
{
"caption":"edit",
"url":"{rootFolder}site-details",
"urlParams":
{
"id":"{id}"
}
}
]
}
]
* **Report Settings - Footer** =
.. code-block:: html
.. todo::
Remaining setup of forms in Drupal
Enable easy login
Site details form setup
Enable AJAX Proxy - can be done after saving the site details form as "Enable AJAX Proxy" button appears.