This indicator is composed of an index and integrates the population abundance and the diversity of a selection of common bird species associated with specific habitats. Rare species are excluded. Three groups of bird species are represented: common farmland species (39 species), common forest species (33 species) and all common bird species (163 species) which include the farmland species, the forest species and a further 91 common species (generalists, as opposed to the farmland and forest specialists). Farmland birds have a high dependence on cultivated land during the nesting season and for feeding during most of the year, while forest birds are equally dependent on wooded areas. An agreed European list of bird species is used, from which each country chooses the species to be covered by the data collected in the field. This means that different species are covered in each country, according to their occurrence; for example for the farmland birds, only the Skylark is included in the indice of all countries. The indice should be judged only in their overall development rather than in their annual fluctuation because they are the result of a modelling procedure. The whole time series is re-calculated each time new data are added. Although this indicator has a narrow focus compared to EU policy objectives on biodiversity and ecosystem services, it is considered to be the best available dataset and also indicative of general environmental status. Data are for the EU, an aggregate that changes according to countries joining the Pan-European Common Birds Monitoring Scheme. This aggregate has nothing to do with the same countries’ accession to the EU. Norway and Switzerland are not included in the EU estimates. http://ec.europa.eu/eurostat/data/database http://ec.europa.eu/eurostat/cache/metadata/en/tsdnr100_esmsip.htm
See : GREGORY R. D., STRIEN A. VAN. « Wild bird indicators: using composite population trends of birds as measures of environmental health ». Ornithological Science [En ligne]. 1 juin 2010. Vol. 9, n°1, p. 3‑22. Disponible sur : < http://dx.doi.org/10.2326/osj.9.3 >
library(ggplot2)
library(reshape2)
library(plyr)
# Download and load data
url <- "http://ec.europa.eu/eurostat/estat-navtree-portlet-prod/BulkDownloadListing?file=data/tsdnr100.tsv.gz"
file <- basename(url)
download.file(url, file)
(raw <- read.table(file, na.strings = ":", header = TRUE, check.names = FALSE, stringsAsFactors = FALSE))
## unit,comspec,geo\\time 1990 1991 1992 1993 1994 1995 1996 1997
## 1 I90,CO_ALL,EU_V 100 97.3 96.7 96.9 96.3 91.2 92.4 92.3
## 2 I90,CO_FARM,BE 100 98.9 86.1 97.0 87.5 84.2 83.0 80.9
## 3 I90,CO_FARM,CZ 100 94.1 103.7 105.0 102.9 114.2 104.3 88.5
## 4 I90,CO_FARM,DK 100 91.0 86.8 84.1 87.5 84.0 83.5 79.8
## 5 I90,CO_FARM,EE 100 86.0 83.2 84.5 75.4 65.6 83.9 74.5
## 6 I90,CO_FARM,EU_V 100 93.9 98.9 98.4 94.2 83.2 82.2 87.5
## 7 I90,CO_FARM,FI 100 102.2 95.5 83.5 88.9 88.2 75.8 76.7
## 8 I90,CO_FARM,FR 100 91.4 95.6 89.8 93.3 82.6 87.8 89.2
## 9 I90,CO_FARM,NL 100 89.8 86.2 89.2 84.9 83.5 87.8 86.2
## 10 I90,CO_FARM,SE 100 84.0 82.5 86.6 93.2 90.2 83.9 81.0
## 11 I90,CO_FARM,UK 100 94.1 84.6 80.7 78.6 84.5 82.0 76.4
## 12 I90,CO_FOR,EU_V 100 100.6 96.9 87.7 93.8 87.2 90.3 93.0
## 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011
## 1 88.0 88.4 88.1 91.8 89.8 90.2 93.3 89.9 89.7 91.3 91.0 87.3 88.4 89.0
## 2 81.2 78.9 67.4 75.8 63.7 58.2 69.0 63.6 68.4 62.5 61.2 NA NA NA
## 3 77.2 73.2 76.3 80.7 77.1 70.9 89.3 68.1 64.0 60.5 74.3 NA NA NA
## 4 78.2 84.0 80.4 78.5 73.5 70.3 68.5 61.4 64.8 66.4 63.7 NA NA NA
## 5 76.4 76.1 87.1 84.2 92.9 80.9 85.8 88.4 91.9 NA NA NA NA NA
## 6 82.7 85.2 82.0 85.4 75.7 77.5 80.8 78.4 76.6 76.2 76.1 74.1 72.4 74.2
## 7 82.9 79.4 73.1 85.3 81.9 77.3 78.8 79.1 76.5 77.8 78.7 NA NA NA
## 8 87.0 83.2 81.8 79.7 78.9 75.7 80.8 80.9 78.0 78.0 78.7 NA NA NA
## 9 85.0 82.0 81.4 77.8 75.1 74.1 77.4 77.0 77.0 73.9 75.1 NA NA NA
## 10 74.3 73.3 78.5 75.8 72.4 69.6 72.2 63.6 65.8 69.2 67.8 NA NA NA
## 11 73.8 74.3 78.5 80.6 78.4 74.1 73.6 72.5 70.6 66.5 65.5 NA NA NA
## 12 84.0 81.2 79.7 82.2 84.2 85.7 90.7 86.6 86.3 84.8 88.4 84.2 85.7 86.8
## 2012
## 1 89.2
## 2 NA
## 3 NA
## 4 NA
## 5 NA
## 6 72.6
## 7 NA
## 8 NA
## 9 NA
## 10 NA
## 11 NA
## 12 92.7
# The table is not ready for analysis
# clean the dataframe : rename fields, replace values, discard incomplete countries,
# reshape in long format and transform year factors into numeric
renamed <- rename(raw, replace = c("unit,comspec,geo\\time" = "type"))
renamed$type[renamed$type == "I90,CO_ALL,EU_V"] <- "All"
renamed$type[renamed$type == "I90,CO_FARM,EU_V"] <- "Farm"
renamed$type[renamed$type == "I90,CO_FOR,EU_V"] <- "Forest"
filtered <- subset(renamed, type == "All" | type == "Farm" | type == "Forest")
birds.eu <- melt(filtered, id.vars = "type", variable.name = "year", value.name = "index")
birds.eu$year <- as.numeric(levels(birds.eu$year))[birds.eu$year]
# nicer
birds.eu
## type year index
## 1 All 1990 100.0
## 2 Farm 1990 100.0
## 3 Forest 1990 100.0
## 4 All 1991 97.3
## 5 Farm 1991 93.9
## 6 Forest 1991 100.6
## 7 All 1992 96.7
## 8 Farm 1992 98.9
## 9 Forest 1992 96.9
## 10 All 1993 96.9
## 11 Farm 1993 98.4
## 12 Forest 1993 87.7
## 13 All 1994 96.3
## 14 Farm 1994 94.2
## 15 Forest 1994 93.8
## 16 All 1995 91.2
## 17 Farm 1995 83.2
## 18 Forest 1995 87.2
## 19 All 1996 92.4
## 20 Farm 1996 82.2
## 21 Forest 1996 90.3
## 22 All 1997 92.3
## 23 Farm 1997 87.5
## 24 Forest 1997 93.0
## 25 All 1998 88.0
## 26 Farm 1998 82.7
## 27 Forest 1998 84.0
## 28 All 1999 88.4
## 29 Farm 1999 85.2
## 30 Forest 1999 81.2
## 31 All 2000 88.1
## 32 Farm 2000 82.0
## 33 Forest 2000 79.7
## 34 All 2001 91.8
## 35 Farm 2001 85.4
## 36 Forest 2001 82.2
## 37 All 2002 89.8
## 38 Farm 2002 75.7
## 39 Forest 2002 84.2
## 40 All 2003 90.2
## 41 Farm 2003 77.5
## 42 Forest 2003 85.7
## 43 All 2004 93.3
## 44 Farm 2004 80.8
## 45 Forest 2004 90.7
## 46 All 2005 89.9
## 47 Farm 2005 78.4
## 48 Forest 2005 86.6
## 49 All 2006 89.7
## 50 Farm 2006 76.6
## 51 Forest 2006 86.3
## 52 All 2007 91.3
## 53 Farm 2007 76.2
## 54 Forest 2007 84.8
## 55 All 2008 91.0
## 56 Farm 2008 76.1
## 57 Forest 2008 88.4
## 58 All 2009 87.3
## 59 Farm 2009 74.1
## 60 Forest 2009 84.2
## 61 All 2010 88.4
## 62 Farm 2010 72.4
## 63 Forest 2010 85.7
## 64 All 2011 89.0
## 65 Farm 2011 74.2
## 66 Forest 2011 86.8
## 67 All 2012 89.2
## 68 Farm 2012 72.6
## 69 Forest 2012 92.7
# Graph
palette = c("#000000", "#885555", "#009900")
ggplot(birds.eu, aes(year, index, colour = type, fill = type)) +
scale_colour_manual(values = palette) +
scale_fill_manual(values = palette) +
stat_smooth() +
geom_point() +
xlab("Year") +
ylab("Population abundance and diversity index (100 in 1990)") +
ggtitle("Common birds (EU)")
## geom_smooth: method="auto" and size of largest group is <1000, so using loess. Use 'method = x' to change the smoothing method.