Sonntag, 5. November 2023

Lampion basteln - eine schöne Variante aus dem Drucker mit Vorlage


Ein Lampion basteln aus Pappe oder Pappmaschee ist schön, aber klappt nicht immer. Diese Variante ist schnell, schön, und individuell. Ich konnte keine Vorlage finden für einem Lampion den man ausdrucken kann, also habe ich selbst eine Lampion-Vorlage entwickelt.

Montag, 9. Oktober 2023

Climate change and insect declines were worrying ecologists long ago - 1850-1900

 


Since various studies have suggested that insect biomass has declined about 75% in recent decades, one could say that there were four times as many insects. Large biomass losses also occurred in the time earlier (agricultural revolution, as e.g. described in Rachel Carlson's book 'Silent Spring'). The 75% loss refers to the latest decades only. How many insects were there around 1900 or before? Why is there so little data?

Klimaerwärmung und Insektensterben waren lange her bereits besorgniserregend für Ökologen - 1850-1900

 


Seit verschiedene Studien nahegelegt haben das in den letzten Jahrzehnten 75% der Biomasse der Insekten zurückgegangen ist, kann man im Umkehrschluss sagen das es davor vier mal so viele Insekten gab. Große Verluste gab es in der Zeit davor auch schon (Agrarrevolution, wie z.B. beschrieben in Rachel Carlsons Buch 'Der stumme Frühling'). Der Verlust von 75% bezieht sich auf die letzte Phase. Wie viele Insekten gab es um 1900 oder davor? Warum gibt es so wenig Daten?

Mittwoch, 27. September 2023

Exposure stacking of a moonlit landscape - a challenge in Photoshop

 

You may have tried this yourself, trying to photograph a nice landscape with the moon during the twilight hours in the evening or morning. For a landscape like this you need a tripod and a long exposure time. The moon being many times brighter needs a very short exposure time. In cases with such brightness differences you normally make an exposure series as shown here (with tripod!) and use high dynamic range techniques and exposure stacking which is nowadays quite straightforward to use. However with the moon and a bright planet (Mars, or Venus) below the moon this does not work for several reasons:

  • The long exposure gives 'stripes' for the stars, planets and the moon as well, because the earth moves
  • Even more problematic for the same reason is that the moon, stars and palnet change position across the image between exposures
  • The exposure difference is too extreme. Even stacking the cropped moon alone with over 10 images does not yield a nice image

As I will explain here, there is a 'dirty' solution to this problem, which is not as realistic as exposure stacking, but gives a result that is quite true to the experience of the viewer. In short: the washed out moon needs to be cleaned (and not as bright), as well as planets and stars visible as stripes. From the end of the exposure series you copy in a layer and set it to blend mode 'lighten'.

Sonntag, 2. Juli 2023

Advanced Photoshop technique for image restoration: remove erratic backgroud structures

 

This new Photoshop technique will allow you to remove any erratic, chaotic background patterns, caused by old printing machines ('random dotted pattern') or visible paper structures (fibers, depths), with the least possible blur. Note that there are various methods for recovering halftone prints from newspapers or color magazines (with the fast fourier transformation method) covered elsewhere. The images have in common that they show at the highest zoom a kind of chaotic leopard pattern. What you would like to do is to lighten the spots, and darken the background, so that they merge to a uniform color. The difficulty is to get a selection that is exactly right.

Dienstag, 2. August 2022

Die Teufelsmauer - ein einzigartiger Geotop und vergessene Perle am Harzrand - mit Karte

Teufelsmauer Neinstedt Harz

Die Teufelsmauer in Sachsen-Anhalt liegt am Ostrand des Harzes. Sie ist eine vergessene Perle, für Wanderfreunde die skurrile Felsformationen lieben. Manche kennen die Teufelsmauer bei Neinstedt, den bekanntesten Teil. Was viele nicht wissen, ist das die Teufelsmauer sich in 3 Teile über 20 km ausstreckt. An jeder diese 3 Orte kann man jeweils eine größere oder mehrere kleinere Wanderungen machen. Für unsere Familie hat sich dieser Gegend als sehr praktisch für kleinere Kinder herausgestellt, da die Strecken kurz sind und es viele Einkehrmöglichkeiten gibt: wenn man zurück läuft, sehen die Hinterseiten der Felsen nochmal komplett anders aus. Langweilig wird es, trotz wenige Kilometern, nie. 

Freitag, 22. Juli 2022

The mystery of the dark rainbow

Many years ago I saw a "dark rainbow". A perfect bow,  a dark curved band in the air, the same width and same shape as a normal rainbow. It was appearing in the south, where the dim sun also appeared, around 11:00 am. Later that day, my social network confirmed that others had seen this mysterious phenomenon as well. Mysterious indeed; nobody knew what it was or what could be the physical explanation! I contacted several meteorologists by email, but I never received an answer. All those years, none of the meteorological books that came in my hands provided a even the smallest clue... What could it have been?!!

Lego einfach reinigen

Altes Lego auf dem Dachboden? Total verstaubt und verschmutzt? Mein Versuch so was recht unkompliziert sauber zu bekommen, hat so gut funktioniert, das ich ein paar Tips gerne hier teilen möchte.

Mittwoch, 22. September 2021

Worterfindungen 2020

Nach langer Zeit habe ich  unser Whiteboard in der Küche mal komplett sauber gemacht, und dabei zwei Worterfindungen aus 2020 weggewischt, die ihre eigene Geschichte haben.

Montag, 1. März 2021

Amazing photos of melting glaciers and mountain summits in the Italian Alps

 

This church in Trafoi is still standing. The big hotel in the back had a fire and wasn't rebuilt. But what is really missing in the background is the big glacier!
Left image: SLUB / Deutsche Fotothek / Möbius, Walter; Right image: J. Everaars

When I visited the Italian Alps for a scientific project on the effect of climate and land use change on pollinators, I tried to re-picture some of the sites I found on historical photos. Here are some of the results. 

Dienstag, 23. Februar 2021

Repairing - a broken computermouse

Sometimes your mouse doesn't click anymore and replacing the batteries doesn't help. Something is broken, but the mouse didn't fall...

You're right - and you can fix it! It is just the wear of a part; a piece of metal that lost it's tension! I found this solution on this page by Nigel, who gets the credits:
http://www.redferret.net/?p=31008
This trick does not only safe money, it also safes electronic waste, and you can repeat it over and over again! I had to do it about twice a year, and it worked for about 6 times, extending the life of my mouse for three years!!! I found this so great that I decided to make a quick manual myself, to share with you.

Schmetterlinge aus Ahorn und Esche


Einfacher geht fast nicht; aus Ahornsamen und Samen von Esche und Zweige, lassen diese Schmetterlinge und Libellen sich leicht basteln.

Montag, 22. Februar 2021

Geburtstagsessen: Bienen, Käfer, Igel, Schnecken und Spinnen

 
Basteln mit Essen macht viel Spaß. Diese Teller mit Bienen, Käfer und Libellen sind eine farbige Angelegenheit geworden, und schmeckten zudem gut!

Samstag, 6. Februar 2021

Riesenseifenblasen - aber dann umweltfreundlich bitte!

 

Seit vielen Jahren mache ich gelegentlich Riesenseifenblasen. Ein großer Spaß für alle. Ich bin immer beim Erfolgsrezept mit Neutralseife geblieben. Bei den richtigen Bedingungen sind Blasen von 2 Meter lang keine Ausnahme. Ich wollte zwar andere Rezepte mal ausprobieren, aber die Aussage vom Hersteller, dass der Neutralseife biologisch Abbaubar sei, hat mich davon abgehalten andere Seifenrezepte zu probieren die vielleicht umweltunverträglicher sind. Im Herbst war ein Kindergeburtstag dann doch eine Gelegenheit um 2 weitere Rezepte im Vergleich auszuprobieren. In Teil 1 ein paar Gedanken zu den Zutaten und die Umwelt, in Teil 2 ein Vergleich von 3 Rezepte mit schonende Zutaten, und in Teil 3 eine Reflexion dazu.

Samstag, 30. Januar 2021

Weihnachtssterne aus Pappelblätter

 


Die Anleitung hatte auf Englisch geschrieben  und später als deutsche Version als Pdf illustriert. Ihr findet diese HIER.

Die Schritte sind einfach.

1. Blätter Sammeln und Trocknen
2. Sortieren in groß und klein und nach symmetrie
3. Der große Kreis aus 6 Blätter basteln
4. Der kleine Kreis aus 3 Blätter basteln
5. Der kleine Kreis auf dem großen Kreis kleben. Mit 2 Papierscheiben, 1x vorne und 1x hinten, geht das einfacher.
6. Aufhängen

Sonntag, 20. Dezember 2020

Photoshop filters for noise, color and sharpness

Free and commercial solutions compared for scanned negative film

The challenge
 
I have scanned a series of old negatives with my Epson Perfection V600 Photo. Even when the scans are of high quality, the scans have a few problems, which are
A. Film grain
B. Poor color
C. Focus problems
Now I like to compare free and commercial solutions to see whether the money could be worth the investment in terms of time saving and unparalleled results.

Samstag, 5. Dezember 2020

Handcrafting globes - with free software

DIY moon lamp

When you like handcrafts and are fascinated by the earth and space, you probably imagine whether you could make a high quility globe out of cardboard, or even a lamp. The answer is yes, and you can do it even for free. Here I explain how. Some parts may seem difficult, but I encourage to try it.

Sonntag, 3. März 2019

Snowflakes




Winter snow. A few weeks ago there was one of these not so common winter days; single well-developed snowflakes were falling from the sky, one by one, touching a snow-free surface.
My photographers hart started beating faster - this was a long awaited moment to make a series on snowflakes. A professional would have a prepared piece of black material (matted plastic) in the freezer waiting for this occasion. You need a very cold dark surface where the single snowflakes can land on. Now, I do not have a big freezer, so I have a different secret. I used black bicycle saddles, sufficiently available in our backyard. Further I used a Tamron macrolens (SP AF 60mm F/2.0 Di II Macro 1:1) and LED ringlight and some patience in Photoshop to clean up dirt from the saddles and increase contrast.
Enjoy.














Mittwoch, 2. Mai 2018

Species lists from different sources - how to synchronise names with the GBIF database in R

Species lists from different sources:
how to synchronize names with the GBIF database in R,
how to compile a list of Syrphidae from Switzerland and
how to determine which species are lacking in common identification keys



You may know this problem: you have 2 or more species list from different sources and they use different synonyms for the same species. You want to merge the lists to a single one that has only unique species. In this post you find:
  1. Getting species lists from books in to R
  2. Using R to compare these species list with the GBIF species database and merge them (including 'tricks', e.g. to extract names from a multidimensional list)
  3. Discussion of common problems to take in to account
  4. The final list of Syrphidae nicely formatted for printing

Case study description
The case study concerns European Hoverflies (Syrphidae). Unlike plants or mammals, this insect group has been subject to many synonymizations which results in very dissimilar name lists over  time frames of a decade. I want to identify Syrphidae species from the Alps (mainly Switzerland), with two commonly used identification keys that do not include all alpine species. I need to know which species have to be identified with additional keys and which genera are safe to identify with the common keys. I took the species list of Switzerland from the website World of Syrphidae. For convenience and usability I also downloaded the German species list.

For Northwest Europe there are two recent major identification works:
The first covers (almost) all lowland species:
Van Veen, M. (2004) Hoverflies of Northwest Europe: identification keys to the Syrphidae. 256pp.
Van Veen published an addendum to his book on his website which enables identification of even more Syrphidae. I copied those species names manually into a txt file, an this list will be used as well.
The second work comes in two volumes and covers many alpine species:
Bartsch, H. et al. (2009) Blomflugor: Syrphinae. Nationalnyckeln till Sveriges flora och flora, DH53a. Artdatabanken, SLU, Uppsala. 406 pp.
Bartsch, H. et al. (2009) Blomflugor: Eristalinae & Microdontinae. Nationalnyckeln till Sveriges flora och flora, DH 53b. Artdatabanken, SLU, Uppsala. 478pp.

1. Getting the species lists from books and web pages into R

When you get experienced with this, it is faster than typing every single species manually.
  • Scan the species list from your book, either with a modern copy machine or flatbed scanner (A digital camera often yield too strong distorted images that do not give a good text recognition.)
  • Get a good text recognition (OCR, optical character recognition). I prefer to do a good OCR with Acrobat pro on a pdf made from the scans. There is also free OCR software that can do a good job on tiff and bmp images (here some software suggestions to try).
  • For a good result, make sure that you have one column with species on your input. If you have e.g. 2 columns on a single page or printed  2 pages on a single pdf page, you have to edit the images a bit. For a pdf you can do the following. Crop your pdf to the left side first and export as tiff image. Rename from filename.* to filename_A.* (you can do this with e.g. total commander under Files -> multi-rename tool). Crop your pdf to right side and export as tiff images. Rename from filename.* to filename_B.* Now combine files to pdf again. You now should have a single list of species per page.
  • Perform the OCR. Either export to text (save as other, txt (accessible), or select parts of the list manually and copy it into a *.txt file.
  • Clean up the file. Keep a list of what to "find and replace": e.g. / must be l. 
  • Import the text file to excel or libre office calc. The delimiter is space. First 2 columns are genus and species. The rest may be rubbish or things like authority or common name and may be deleted. If you like to keep any of this (for example authority) you can do the following. Select all remaining columns (except genus/species), paste into a txt file, put behind the authority a sign for separation, instead of a space. In my example I had the kind of format: "Authority - Name". I replaced " - " by "-" to get a nice separation without spaces. Import and choose delimiter like "-". 

Everything should now be in a perfect table! Scan through for further OCR errors, remaining ones can be identified in R. For use in R, I named the columns "GenSpec" for the species name, "FullGenSpec" for the species with authority, and "Gen" and "Spec" for using both elements separately.

2. Using R to compare species list with the GBIF database

Start and read the files with species lists:

################################_
### Load packages and functions, set working directory     ####
################################_

setwd("C://.../specieslistsR")

#install.packages("taxize")
#install.packages("dplyr")

require(taxize) #for connecting to gbif species lists
require(dplyr) #for bind_rows

# a nice function for removing accidential spaces at end of species name
trimendspace <- function (x) sub("\\s+$", "", x) 


################################_
### Read files     ####
################################_


#DATAFILES

list_vV <- read.table ("VanVeen_species_list.txt",na.strings="NA",head=T,sep="\t", dec=",", encoding = "utf-8") #encoding is relevant when OCR on scanned documents was performed
head(list_vV)
for (i in c(1:5))    {list_vV[,i] <- trimendspace(as.character(list_vV[,i]))}

list_vVadd <- read.table ("vanVeen_Addendum.txt",na.strings="NA",head=T,sep="\t", dec=",", encoding = "utf-8")
head(list_vVadd)
for (i in c(1:1))    {list_vVadd[,i] <- trimendspace(as.character(list_vVadd[,i]))}

list_Ba <- read.table ("Bartsch_species_list.txt",na.strings="NA",head=T,sep="\t", dec=",", encoding = "utf-8")
head(list_Ba)
for (i in c(1:5))    {list_Ba[,i] <- trimendspace(as.character(list_Ba[,i]))}

list_CH <- read.table ("checklist_CH.txt",na.strings="NA",head=T,sep="\t", dec=",", encoding = "utf-8")
head(list_CH)
for (i in c(1:3))    {list_CH[,i] <- trimendspace(as.character(list_CH[,i]))}

list_DE <- read.table ("checklist_DE.txt",na.strings="NA",head=T,sep="\t", dec=",", encoding = "utf-8")
head(list_DE)
for (i in c(1:5))    {list_DE[,i] <- trimendspace(as.character(list_DE[,i]))}



Two functions - the heart of the code:



#function for consulting Gbif and putting the right information in a dataframe
#with the species list copied to 'Gbifask'

func.GbifQuery <<- function() 
{
  #get current status for a list of species from gbif
  listOfResults <<- get_gbifid_(Gbifask)
  
  cat("\n", file = "gbifunknown.txt", append = F) #File for species names without retuns; F: clean file
  
  #put data in dataframe
  for (i in c(1:length(specieslist)))
  {
    if(i==1) # first entry used to start new dataframe
    {
      #first entry is the exact match if any present
      #Gbifid <- listOfResults[[i]][1,]
      listOfResults[[i]][,"enteredname"] <<- names(listOfResults[i])
      Gbifid <<- listOfResults[[i]]
    }  else # second an further are added to dataframe by bindrows
    {
      if(length(listOfResults[[i]][])>0) # all valid entries
      {
        listOfResults[[i]][,"enteredname"] <<- names(listOfResults[i])
        Gbifid <<-  bind_rows(Gbifid, listOfResults[[i]])      
      } else # species unknown to gbif, write to file diectly
      {
        cat("\n", names(listOfResults[i]) ,file = "gbifunknown.txt", append = T)
      }
    }
  }
}


#function for corrections with synonym lists

func.correctlists <<- function()   {
  speciescorrect <<- 0
  
  for (i in c(1:nrow(CorrectionList)))     #go through list with synonyms
  {
    for (Listname in ToCorrect)           #go through series of lists to correct
    {
      Specieslist <<- get(paste(Listname))
      
      speciescorrect <<- as.character(CorrectionList[i, "OldGenSpec"])
      if(length(Specieslist[Specieslist$GenSpec==speciescorrect, "GenSpec"])>0)
      {
        #first save old name
        if(correctiontype=="Synonym")
        {Specieslist[Specieslist$GenSpec==speciescorrect, "SynSpec"] <<- as.character(CorrectionList[i, "OldGenSpec"])}
        #than replace
        Specieslist[Specieslist$GenSpec==speciescorrect, "GenSpec"] <<- as.character(CorrectionList[i, "NewGenSpec"])
      }
      assign(paste(Listname), Specieslist, inherits = TRUE)
    }
  }
}


Merge the species lists:

#Merge the species lists
speciesbind <- bind_rows(list_vV, list_vVadd, list_Ba, list_CH, list_DE)
speciesbind <- speciesbind[order(speciesbind$GenSpec),]

#remove duplicates

#which full species names (with authority) are duplicated?
speciesauthoritiesduplicated <- speciesbind[duplicated(speciesbind$FullGenSpec),"FullGenSpec"]
#remove them
set1 <- speciesbind[-which(speciesbind$FullGenSpec %in% speciesauthoritiesduplicated),]

#check what remains:
speciesduplicated <- set1[duplicated(set1$GenSpec),"GenSpec"]
set1[which(set1$GenSpec %in% speciesduplicated),"FullGenSpec" ]

Look at the saved table. Slightly different spelled authority names can be dismissed, clearly different authority names need to be retained.


Consult the GBIF database with the raw species list:

#make the species list. In our case all duplicates were Authority spelling variations
specieslist <- unique(speciesbind$GenSpec)

#Now find the synonyms
Gbifask <- specieslist
func.GbifQuery() #returns Gbifid


First get a list of typos:

# which entry has no exact match?

# get list of entries which have an exact match
matchingnames <- Gbifid[Gbifid$matchtype=="EXACT",  ]
matchingnameslist <- matchingnames[,c("enteredname")]

#get a list of entries which have a fuzzy match
unresolvednames <- Gbifid[Gbifid$matchtype=="FUZZY",  ]  
#reduce the fuzzy list; filter out entries that also have an exact match
unresolvednames <- unresolvednames[-which(unresolvednames$enteredname %in% matchingnameslist), ]

#save this list, these are possible typos making them unrecognizable for GBIF
namestosave <- unresolvednames[,c("enteredname", "scientificname", "canonicalname","species","matchtype")]
write.table(namestosave, "possibletypos.txt", row.names = FALSE, col.names = TRUE, sep = "\t", dec=".") 
  • Open the saved file in a spreadsheet program, with the goal to make make a correction list
  • FUZZY: mostly misspellings (by OCR) or male/female spelling changes - make a list for corrections. 
  • the column "entered name" gets "OldGenSpec" and the column "canonicalname" gets "NewGenSpec" (synonyms in "species" are handled later). This is a translation list to replace the typos.
  • Carefully check all entries. You can also consult the list of valid species names to see if one of  the fuzzy ones matches. If the fuzzy match is unclear and you like to see if the Authority matches somewhere, you can e.g. use: speciesbind[grep("^Pipiza ju",speciesbind$GenSpec),"FullGenSpec"]
  • Leave alone names that do not match at all! Remove them.
  • Look for crosslinking changes in the list (new name also occurs in old name list): forbidden! (here not present)
  • Name your file TypoCorrection.txt

Remove the typos:

### now replace typos in all lists with correction function ###

#load correction file
corrections <- read.table ("TypoCorrection.txt",na.strings="NA",head=T,sep="\t", dec=",")
head(corrections)
for (i in c(1:2))    {corrections[,i] <- trimendspace(as.character(corrections[,i]))}

ToCorrect <- c("list_vV","list_vVadd","list_Ba","list_CH","list_DE")
CorrectionList <- corrections
correctiontype <- "Typo"
func.correctlists() 


Get synonyms round 1

#Merge species lists
speciesbind <- bind_rows(list_vV, list_vVadd, list_Ba, list_CH, list_DE, list_SA)
speciesbind <- speciesbind[order(speciesbind$GenSpec),]
specieslist <- unique(speciesbind$GenSpec)

#get current status for species from Gbif and put in dataframe
Gbifask <- specieslist
func.GbifQuery() #returns Gbifid

### Identify synonyms and evaluate thoroughly ###

#having solved all Fuzzy returns without an accepted counterpart in the data in the previous step, we now only have fuzzy returns which can be ignored, because they have a recognized valid name as well
#the names remaining are species with exact match with either synonym false and synonym true

#in first instance you would try to get the synonyms in this way:
resolvenames <- Gbifid[Gbifid$matchtype=="EXACT" & Gbifid$synonym==TRUE,  ]  #list of names marked as synonym
namestosave1 <- resolvenames[,c("enteredname", "scientificname", "canonicalname","species")]
#however this also lists all other known synonyms that are not relevant here. 
#the list needs to be reduced to the names that were originally entered - and see which of those ar now considered synonyms
getnames <- namestosave1[, "enteredname"]  
resolvenames2 <- Gbifid[which(Gbifid$enteredname %in% getnames),  ]  #reduce Gbifid
resolvenames3 <- resolvenames2[resolvenames2$matchtype=="EXACT", ]  #retain those labelled as exact match
namestosave2 <- resolvenames3[,c("enteredname", "scientificname", "canonicalname","species", "synonym")]
write.table(namestosave2, "synonymsfromgbif.txt", row.names = FALSE, col.names = TRUE, sep = "\t", dec=".") # save this table
  • open the saved file in a spreadsheet program, with the goal to make make a synonym list to replace 'old' names
  • the column "entered name" gets "OldGenSpec" and the column "species" gets "NewGenSpec"
  • when one name has both an entry for synonym true and false, choose the right one: you can check for options in your data like this: speciesbind[speciesbind$GenSpec=="Eristalis lineata","FullGenSpec"] If multiple sources (duplicates in speciesbind) consistently use the same authority, you can use that one (if synonym=false you can thus delete both entries). You can also check other sources for the right authority
  • go through all remaining names and decide what is the right and accepted name
  • at the end of this blog post I will give some hints on doing this, since GBIF is far from perfect when it comes to insect classification in general.
  • for now accept the synonym list you made
  • look for crosslinking changes in the list (new name also occurs in old name list): forbidden! (here not present)
  • name your file Synonyms1.txt


Replace synonym names with most actual one:

# Prepare new columns and variables

synonyms1 <- read.table ("Synonyms1.txt",na.strings="NA",head=T,sep="\t", dec=",")
head(synonyms1)
for (i in c(1:2))    {synonyms1[,i] <- trimendspace(as.character(synonyms1[,i]))}

ToCorrect <- c("list_vV","list_vVadd","list_Ba","list_CH","list_DE")
CorrectionList <- synonyms1
correctiontype <- "Synonym"
func.correctlists() 


Resolve remaining issues:

#Merge species lists
speciesbind <- bind_rows(list_vV, list_vVadd, list_Ba, list_CH, list_DE, list_SA)
speciesbind <- speciesbind[order(speciesbind$GenSpec),]
specieslist <- unique(speciesbind$GenSpec)

#get current status for species from Gbif and put in dataframe
Gbifask <- specieslist
func.GbifQuery() #returns Gbifid

#get list of species names with exact match 
matchingnames <- Gbifid[Gbifid$matchtype=="EXACT",  ]
matchingnameslist <- matchingnames[,c("enteredname")]

#get unresolved names
unresolvednames <- Gbifid[Gbifid$matchtype!="EXACT",  ]  
#filter out those with exact match
unresolvednames <- unresolvednames[-which(unresolvednames$enteredname %in% matchingnameslist), ]
#save unresolved names to file
namestosave <- unresolvednames[,c("enteredname", "scientificname", "canonicalname","species","matchtype")]
write.table(namestosave, "gbifunclear.txt", row.names = FALSE, col.names = TRUE, sep = "\t", dec=".") 

# open gbifunknown.txt and gbifunclear.txt and edit as spreadsheet
# there are probably more misspellings and/or synonyms to resolve
# make a new file with synonyms, name it Synonyms2.txt

# replace synonyms

synonyms2 <- read.table ("Synonyms2.txt",na.strings="NA",head=T,sep="\t", dec=",")
head(synonyms2)
for (i in c(1:2))    {synonyms2[,i] <- trimendspace(as.character(synonyms2[,i]))}

ToCorrect <- c("list_vV","list_vVadd","list_Ba","list_CH","list_DE")
CorrectionList <- synonyms2
correctiontype <- "Synonym"
func.correctlists() 



Combining the different species lists in one table and solve multiple synonyms:

#challenge: some accepted species names have multiple synonyms that need to be merged

#Merge species lists
speciesbind <- bind_rows(list_vV, list_vVadd, list_Ba, list_CH, list_DE)
speciesbind <- speciesbind[order(speciesbind$GenSpec),]
speciesbind <- speciesbind[!is.na(speciesbind$GenSpec),]

#make unique species list
#specieslist <- unique(speciesbind[, c("GenSpec","SynSpec")]) #does not work: many duplicate entries
specieslist <- unique(speciesbind$GenSpec)

#deal with  multiple synonyms
speciessynonyms <-  unique(speciesbind[speciesbind$SynSpec!="0", c("GenSpec","SynSpec")  ])
specieslistwithdouble <- speciessynonyms[duplicated(speciessynonyms$GenSpec),c("GenSpec")]

#merge synonyms
specieswithdouble <- setNames(as.data.frame(specieslistwithdouble),c("GenSpec"))
specieswithdouble$DSynSpec <- as.character("0")
for(i in c(1:nrow(specieswithdouble)))
{
  allsynonyms <- paste(as.character(speciessynonyms[speciessynonyms$GenSpec==specieslistwithdouble[i] & !is.na(speciessynonyms$GenSpec),c("SynSpec")], sep=","))
  syncombi <- NULL
  for (j in c(1:length(allsynonyms)))
  {
    if(j==1)
      syncombi <- paste0(allsynonyms[j])
    else syncombi <- paste0(syncombi,", ", allsynonyms[j])
  }
  specieswithdouble[i,"DSynSpec"] <- syncombi
}

#replace single synonyms with double synonyms
for (i in c(1:nrow(specieswithdouble)))
{
  speciessynonyms[speciessynonyms$GenSpec==specieswithdouble[i, "GenSpec"] & !is.na(speciessynonyms$GenSpec), "SynSpec"] <- as.character(specieswithdouble[i, "DSynSpec"])  
} 
#reduce duplicates
speciessynonyms <- unique(speciessynonyms)
speciessynonyms <- speciessynonyms[!is.na(speciessynonyms$GenSpec) ,]

#merge species list with synonyms
speciestable <- merge(setNames(as.data.frame(specieslist),c("GenSpec")), speciessynonyms, by="GenSpec", all.x = TRUE)



Other steps: 
add genus name
get a clean standardized authority name for your species
get a column for year of description, which is helpful for judging older species list.

#add Genus name, work with string splitting 
#strsplit(specieslist, " ")
speciestable$Genus <- 0
for (i in c(1:nrow(speciestable)))
{
  speciestable[i,"Genus"] <- strsplit(as.character(speciestable$GenSpec), " ")[[i]][1]
}

#Get fresh Authority names
Gbifask <- specieslist
func.GbifQuery() #returns Gbifid

getnames <- Gbifid[(Gbifid$matchtype=="EXACT" & Gbifid$synonym==FALSE),c("enteredname", "scientificname") ]  
length(specieslist)-nrow(getnames) #some, because of one reversed name change

authority <- setNames(Gbifid[Gbifid$matchtype=="EXACT", c("enteredname", "scientificname") ] ,c("GenSpec", "ScientificName"))  

speciestable <- merge(speciestable, authority, by="GenSpec", all.x = TRUE, all.y = FALSE)

#authorities not available from Gbif, get from own input files
getAuthority <- speciestable[is.na(speciestable$ScientificName), "GenSpec"]

if(length(getAuthority)>0)   #if(nrow(getAuthority)>0)
{
  getAuthority <- setNames(as.data.frame(getAuthority), c("GenSpec"))
  # here Scaeva selenetica does not occur in the list, take the other name?
  getAuthority$ScientificName <- list_vV[list_vV$GenSpec==getAuthority$GenSpec, "FullGenSpec"]
  for (i in c(1:nrow(getAuthority)))
  {  genspec <- getAuthority[i,"GenSpec"]
  ScientificName <- getAuthority[i,"ScientificName"]
  speciestable[speciestable$GenSpec==genspec, "ScientificName"] <- ScientificName
  }
}

#check double authorities
speciestable[duplicated(speciestable$GenSpec),c("GenSpec","ScientificName")]
speciesauthoritiesduplicated <- speciestable[duplicated(speciestable$GenSpec),"GenSpec"]
speciestable[which(speciestable$GenSpec %in% speciesauthoritiesduplicated),]

#from the returned list, choose which to remove
listofnamestoremove <- c("Cheilosia griseiventris Vujic, 1994","Eristalis lineata Wahlberg, 1843",
                         "Eumerus argyropus Doleschall, 1857","Eumerus ruficornis Macquart, 1829",
                         "Merodon rufus (Macquart, 1835)", "Microdon analis Curran, 1940",
                         "Microdon myrmicae", "Paragus quadrifasciatus Say, 1824",
                         "Rhingia rostrata Scopoli, 1763", "Sphaerophoria interrupta Jones, 1917")

#remove them
speciestable <- speciestable[-which(speciestable$ScientificName %in% listofnamestoremove),]

#check if certain authorities were given to multiple species

speciestable[duplicated(speciestable$ScientificName),c("GenSpec","ScientificName")]

#cleanup: remove one non-meaningfull entry:
speciestable <- speciestable[speciestable$GenSpec!="Cheilosia melanura ssp. Rubra",]

# add year of description
speciestable$ID_Year <- 0
for (i in c(1:nrow(speciestable)))
{
  speciestable[i,"ID_Year"] <- substr(strsplit(as.character(speciestable$ScientificName), ", ")[[i]][2], 1, 4)
}





Compare the species lists and put the information in new columns and write the final table

# now see which species is in which list

#KEY van Veen
speciestable$Key_vVeen <- ifelse(speciestable$GenSpec %in% list_vV$GenSpec, "y", "n")
speciestable$Key_vVeen <- ifelse(speciestable$GenSpec %in% list_vVadd$GenSpec, "A", speciestable$Key_vVeen)

#Genus completely covered? #Make table with species per genus and 'no' counts
vVeensum <- setNames(as.data.frame(table(speciestable[speciestable$Key_vVeen=="n","Genus"])), c("Genus", "NumOfNo"))
speciestable$Key_vVeenGen <- ifelse(speciestable$Genus %in% vVeensum$Genus, "n", "y")

#KEY Bartsch
speciestable$Key_Bartsch <- ifelse(speciestable$GenSpec %in% list_Ba$GenSpec, "y", "n")
#Genus completely covered? #Make table with #species per genus and 'no' counts
Basum <- setNames(as.data.frame(table(speciestable[speciestable$Key_Bartsch=="n","Genus"])), c("Genus", "NumOfNo"))
speciestable$Key_BartschGen <- ifelse(speciestable$Genus %in% Basum$Genus, "n", "y")

#Checklists CH, DE, S-A
#Switzerland
speciestable$PA_CH <- ifelse(speciestable$GenSpec %in% list_CH$GenSpec, "p", "a")
speciestable$KeyCH <- ifelse( (speciestable$Key_vVeen=="n" & speciestable$Key_Bartsch=="n" & speciestable$PA_CH=="p"), "n", "y")
speciestable$KeyCH <- ifelse( (speciestable$PA_CH=="a"), "-", speciestable$KeyCH)
#Germany
speciestable$PA_DE <- ifelse(speciestable$GenSpec %in% list_DE$GenSpec, "p", "a")
speciestable$KeyDE <- ifelse( (speciestable$Key_vVeen=="n" & speciestable$Key_Bartsch=="n" & speciestable$PA_DE=="p"), "n", "y")
speciestable$KeyDE <- ifelse( (speciestable$PA_DE=="a"), "-", speciestable$KeyDE)
#small optic correction: 
speciestable$SynSpec <- as.character(speciestable$SynSpec)
speciestable$SynSpec <- ifelse(is.na(speciestable$SynSpec), "-", speciestable$SynSpec)

speciestable <- speciestable[ , c("GenSpec", "Genus", "SynSpec", "Key_vVeen", "Key_vVeenGen","Key_Bartsch", "Key_BartschGen", "PA_CH","KeyCH", "PA_DE", "KeyDE") ]
# "ScientificName","ID_Year" can be added in subsequent step

#FIN
write.table(speciestable, "SyrphidSpecies&Keys&Presence.txt", row.names = FALSE, col.names = TRUE, sep = "\t", dec=".") 


The full R script and its input files can be downloaded here.


3. Discussion of common problems to take in to account

Unfortunately the GBIF database is often wrong about the names of Syrphidae, like:
  • Synonyms are very wrong (e.g. Chrysotoxum festivum and Xanthogramma festiva are separate species, not synonyms)
  • Old and new name should be reveresed (many examples, e.g. Brachypalpoides lentus and Xylota lenta)
  • Genus name changes should be consistent, but aren't always (resulting in two genera names instead of one, e.g. Anasimyia vs Lejops -> choose Anasimya and reverse respective synonyms)
  • Synonymization merging species that should remain separate (e.g. Eristalis picea and    Eristalis rupium are separate species, not synonyms)
  • Some species do not have an exact GBIF match, but are valid anyway (e.g. Eristalis similis, Myathropa florea and Sphaerophoria interrupta)
  • The "Syrph the Net (StN) Species Accounts" is the most elaborate documentation about European Syrphid species, synonyms and doubtfull species names. I trusted this source more than GBIF and consulted it many times to get to my final list of species. 
  • The Genus Cheilosia (not well handled by Gbif) is covered by a separate publication: Claußen, C.; Speight, M.C.D. (2007): Names of uncertain application and some previously unpublished synonyms, in the European Cheilosia fauna (Diptera, Syrphidae). - Volucella 8, 73-86. Stuttgart.
As a final note: I had a very strange error caused by the OCR software. In some species names it turned the letter 'l' into a special character, that I could not convert to a 'l' in R in any way, leading to the strange fact that R handled e.g. 'Episyrphus balteatus' and 'Episyrphus balteatus' as being equal, but both unique at the same time. The only working solution was to re-type the specific names in the spreadscheet files manually, to get rid of these type of duplicates in the list.
The supplied synonym files used in my R-script include all those changes needed for the list I received from GBIF. Note that GBIF is constantly changing, possibly requiring a slightly different synonyization list.

Code for some of the manual work

# track more misspellings
similarspecies <- as.data.frame(specieslist)
similarspecies$specieslist <- as.character(similarspecies$specieslist)
similarspecies$short <-  substr(similarspecies$specieslist, 1, nchar(similarspecies$specieslist)-5)
templist <- similarspecies[duplicated(similarspecies$short), "short"]
similarspecies[similarspecies$short %in% templist,]
 
# check for double species names accepted under different genera
# similarnames <- as.data.frame(speciesbind[, c("GenSpec", "Genus", "Species")])
similarnames <- as.data.frame(specieslist)
# add Genus name and species name, work with string splitting 
similarnames$Genus <- 0
similarnames$Species <- 0
for (i in c(1:nrow(similarnames)))
{
  similarnames[i,"Genus"] <- strsplit(as.character(similarnames$specieslist), " ")[[i]][1]
  similarnames[i,"Species"] <- strsplit(as.character(similarnames$specieslist), " ")[[i]][2]
}
similarnames$short <-  substr(similarnames$Species, 1, nchar(similarnames$Species)-2)
doublenames <- similarnames[duplicated(similarnames$short), "short"]
doublenamestable <- similarnames[similarnames$short %in% doublenames,]
doublenamestable[order(doublenamestable$short),]
 
# I also recommend to do new Gbif Queries
# You can use an extra file for replacement "Extra synonyms.txt" 
# Or do manual replacements like this:
speciestable [speciestable $GenSpec=="Merodon subfasciatus", "GenSpec"] <- "Merodon cinereus" 
 
# "Doubtfull species" can be removed like this 
list_Chei <- read.table ("Cheilosia.txt",na.strings="NA",head=T,sep="\t", dec=",")
head(list_Chei)
for (i in c(1:4))    {list_Chei[,i] <- trimendspace(as.character(list_Chei[,i]))}
# Or remove species manually
speciestable <- speciestable[speciestable$GenSpec!="Eumerus emarginatus",]
 



4. The final list

The final formatted list for downloading

The final table has for both identification keys a colomn with yes/no for each species. The species supplied in the addendum by van Veen, are specified with "A". A genus completely covered by the key is marked with a vertical black line. For Switserland and Germany there is present/absent column, with an additional column whether or not the present species can be identified with one of both keys, with "n" highlighted. These are the species that require additional keys. Any species in the same genus identified with those two main keys need to be treated carefully, since it can also be one of the rarer species for which you need an additional key. Have fun identifying!
 



Donnerstag, 26. April 2018

Die besten Pflanzen für Wildbienen und Schmetterlinge

Einige Anregungen zu Insekten-freundlich Gärtnern: eine Tabelle mit den besten Pflanzen für Wildbienen und Schmetterlinge.


Orientalischer Mohn, Hauswurz und Schafgarbe werden gerne von Wildbienen besucht.

"Mit welche Pflanze kann ich im Garten Bestäuber unterstützen?"
"Was kann ich gegen das Insektensterben machen?"

Solche Fragen bekomme ich oft, und diese sind gar nicht so einfach zu beantworten. Zum ersten hat jede Pflanze eigene Qualitäten die ein Insekt gefallen. So hat Pflanze A viel Nektar und wenig Pollen und Pflanze B umgekehrt. Manche Pflanzen wie Brennnessel sind für uns langweilig aber großartiges Insektenfutter. Zum zweiten ist das Fördern von  Insekten so viel mehr ist als nur 5 Pflanzen in einer Ecke setzen oder ein Bienenhotel hinstellen. Als Faustregel gilt, um so intensiver der Garten gepflegt wird und 'sauber gehalten', umso weniger Platz es für Insekten gibt, die gerne in allen Ecken kriechen. Natürlich gibt es viele Zwischenwege, zwischen ein gefliester Garten mit Monokultur-Rasen und ein wilder ungepflegter 'Herrenloser' Garten. Um diesen Zwischenweg im eigenen Garten zu finden braucht man zuerst eine Liste von Pflanzen die für verschiedene Insekten geeignet sind, sodass man Kombinationen wählen und 'Biotopen' im Garten gestalten kann.

Ich wollte die Frage wissenschaftlich angehen und habe einige (wissenschaftliche) Publikationen zu diesem Thema zusammen gesucht und habe die Daten zu einen Lesbaren Tabelle bearbeitet.

Tabelle: Die besten Pflanzen für Wildbienen und Schmetterlinge


Pflanze Wissenschaftlicher Name Familie Unterstützung von: Bienenkenner Favorit? Nektarmenge Pollenmenge (/Wert) Früh- blüher Lang- blüher
Ziergartenblumen
Acker-Hundskamille Anthemis arvensis Asteraceae viele Bienenarten ja
Korn-Flockenblume Centaurea cyanus Asteraceae viele Bienenarten, Schmetterlinge ja mittel hoch
Mädchenaugen Coreopsis picta Asteraceae mittel mittel
Mädchenaugen Coreopsis tinctoria Asteraceae mittel hoch
Schmückkörbchen Cosmos bipinnatus Asteraceae ungeeignet ja mittel hoch
Gewöhnliche Sonnenblume Helianthus annuus Asteraceae
Cosmidium Brünette Thelesperma burridgeanum Asteraceae
Wegerichblättrige Natternkopf Echium plantagineum Boraginaceae viele Bienenarten ja
Schöterich Erysimum spec. Brassicaceae viele Bienenarten ja wertvoll
Gewöhnliche Nachtviole Hesperis matronalis Brassicaceae viele Bienenarten ja
Strand-Silberkraut Lobularia maritima Brassicaceae niedrig niedrig
Judas-Silberling (Einjähriges-Silberblatt) Lunaria annua Brassicaceae viele Bienenarten ja ja
Strandlevkoje Malcolmia maritima Brassicaceae niedrig mittel
Gewöhnlicher Sommerflieder Buddleja davidii Buddlejaceae Schmetterlinge
Kartäuser-Nelke Dianthus carthusianorum Caryophyllaceae ja
Schleierkraut Gypsophila elegans Caryophyllaceae mittel mittel
Heidekraut Calluna vulgaris Ericaceae Hummeln, Schmetterlinge (Raupen)
Lerchensporn Corydalis spec. Fumariaceae wertvoll ja
Kriechender Günsel Ajuga reptans Lamiaceae Hummeln ja
Roter Lein Linum grandiflorum Linaceae ungeeignet ja niedrig mittel
Kalifornische Mohn Eschscholzia californica Papaveraceae ungeeignet ja niedrig hoch
Klatsch-Mohn Papaver rhoeas Papaveraceae viele Bienenarten, Hummeln ja niedrig hoch ja
Persischer Ehrenpreis Veronica persica Plantaginaceae niedrig niedrig
Gewöhnliche Grasnelke Armeria maritima Plumbaginaceae ja
Jungfer im Grünen (Schwarzkümmel) Nigella damascena Ranunculaceae mittel hoch
Weiße Resede Reseda alba Resedaceae viele Bienenarten ja
Garten-Resede Reseda odorata Resedaceae viele Bienenarten ja
Gold-Schafgarbe Achillea filipendula Asteraceae viele Bienenarten ja
Zwiebelgewächse
Berg-Lauch Allium montanum Liliaceae Maskenbienen ja
Runden Lauch Allium rotundum Liliaceae Maskenbienen ja
Kugelköpfiger Lauch Allium sphaerocephalon Liliaceae Maskenbienen ja
Traubenhyazinthe Muscari spec. Liliaceae Frühlingsbienen ja
Breitblättriger Dolden-Milchstern Ornithogalum umbellatum Liliaceae Schmetterlinge ja ja
Heil-/Gewürzkräuter
Echte Kamille Matricaria recutita Asteraceae viele Bienenarten ja
Echte Johanniskraut Hypericum perforatum Hypericaceae ja
Echter Ysop Hyssopus officinalis Lamiaceae viele Bienenarten ja
Echter Salbei Salvia officinalis Lamiaceae viele Bienenarten ja
Muskatteller-Salbei Salvia sclarea Lamiaceae viele Bienenarten, Holzbienen ja
Bergbohnenkraut Satureja montana Lamiaceae viele Bienenarten ja
Zitronen-Thymian Thymus citridorus Lamiaceae viele Bienenarten ja
Thymian Thymus spec. Lamiaceae viele Bienenarten, Schmetterlinge ja
Gewürz-Thymian Thymus vulgaris Lamiaceae viele Bienenarten ja
Nutzpflanzen
Küsten-Salzkraut Salsola kali Amaranthaceae ja
Gewöhnlicher Pastinak Pastinaca sativa Apiaceae
Garten-Boretsch Borago officinalis Boraginaceae viele Bienenarten, Hummeln
Raps Brassica napus Brassicaceae viele Bienenarten ja ja
Schmalblättriger Doppelsame (Rucola) Diplotaxis tenuifolia Brassicaceae ja
Senf Sinapis spec. Brassicaceae Hummeln, viele Bienenarten ja niedrig niedrig
Echtes Seifenkraut Saponaria officinalis Caryophyllaceae
Echte Luzerne Medicago sativa Fabaceae viele Bienenarten, Mauerbienen, Schmetterlinge
Gemüse-Spargel Asparagus officinalis Liliaceae
Saat-Lein Linum usitatissimum Linaceae viele Bienenarten
Bäume und Sträucher
Ahorn Acer spec. Aceraceae Frühlingsbienen wertvoll ja
Berberitze Berberis spec. Berberidaceae wertvoll ja
Erle Alnus spec. Betulaceae Schmetterlinge (Raupen)
Birke Betula spec. Betulaceae Mauerbienen, Schmetterlinge (Raupen) wertvoll ja
Gewöhnliche Hasel Corylus avellana Betulaceae Schmetterlinge (Raupen) wertvoll ja
Heckenkirsche Lonicera spec. Caprifoliaceae viele Bienenarten, Schmetterlinge
Gewöhnliche Hainbuche Carpinus betulus Corylaceae Schmetterlinge (Raupen) ja
Heidelbeere (Blaubeere) Vaccinium myrtillus Ericaceae viele Bienenarten, Schmetterlinge ja
Trunkelbeere Vaccinium uliginosum Ericaceae viele Bienenarten, Schmetterlinge
Gewöhnlicher Blasenstrauch Colutea arborescens Fabaceae viele Bienenarten ja
Besenginster Cytisus scoparius Fabaceae Schmetterlinge (Raupen), Bienen
Gewöhnlicher Goldregen Laburnum anagyroides Fabaceae Mauerbienen
Rot-Buche Fagus sylvatica Fagaceae Schmetterlinge (Raupen) ja
Eiche Quercus spec. Fagaceae Mauerbienen, Schmetterlinge (Raupen) wertvoll ja
Alpen-Johannisbeere Ribes alpinum Grossulariaceae viele Bienenarten ja ja
Rote Johannisbeere Ribes rubrum Grossulariaceae viele Bienenarten ja ja
Stachelbeere Ribes uva-crispa Grossulariaceae viele Bienenarten ja ja
Walnuss Juglans spec. Juglandaceae Mauerbienen
Linde Tilia spec. Malvaceae viele Bienenarten, Schmetterlinge (Raupen) x
Gewöhnliche Esche Fraxinus excelsior Oleaceae Schmetterlinge (Raupen) wertvoll ja
Gewöhnlicher Liguster Ligustrum vulgare Oleaceae Schmetterlinge (Raupen)
Gewöhnliche Fichte Picea abies Pinaceae Schmetterlinge (Raupen) ja
Faulbaum Frangula alnus Rhamnaceae Schmetterlinge (Raupen)
Zwergmispel Cotoneaster spec. Rosaceae wertvoll ja
Weißdorn Crataegus spec. Rosaceae Frühlingsbienen, Schmetterlinge ja wertvoll ja
Echte Quitte Cydonia oblonga Rosaceae
Kultur-Apfel Malus domestica Rosaceae Mauerbienen ja
Wild-Apfel Malus sylvestris Rosaceae Mauerbienen wertvoll ja
Süß-Kirsche (Vogel-Kirsche) Prunus avium Rosaceae Frühlingsbienen ja ja
Kirsch-Pflaume Prunus cerasifera Rosaceae Frühlingsbienen ja
Pflaume (Zwetschge) Prunus domestica Rosaceae Frühlingsbienen, Schmetterlinge (Raupen) ja
Trauben-Kirsche Prunus padus Rosaceae Frühlingsbienen, Schmetterlinge (Raupen) ja
Späte Trauben-Kirsche Prunus serotina Rosaceae
Kirsche Prunus spec. Rosaceae Frühlingsbienen, Schmetterlinge (Raupen) wertvoll ja
Gewöhnliche Schlehe Prunus spinosa Rosaceae Frühlingsbienen, Schmetterlinge (Raupen) ja ja
Hunds-Rose Rosa canina Rosaceae
Rose Rosa spec. Rosaceae viele Bienenarten, Schmetterlinge (Raupen) ja
Brombeere/Himbeere Rubus spec. Rosaceae viele Bienenarten, Mauerbienen, Hummeln, Schmetterlinge (Raupen)
Eberesche (Vogelbeere) Sorbus aucuparia Rosaceae Schmetterlinge (Raupen)
Pappel Populus spec. Salicaceae Schmetterlinge (Raupen) ja
Weide Salix spec. Salicaceae Frühlingsbienen, Schmetterlinge (Raupen) ja wertvoll ja
Ulme Ulmus spec. Ulmaceae Schmetterlinge (Raupen)
Wildblumen Wiese
Wiesen-Kerbel Anthriscus sylvestris Apiaceae viele Bienenarten ja
Gewöhnliche Möhre Daucus carota Apiaceae viele Bienenarten ja niedrig niedrig
Gewöhnliche Bärenklau Heracleum sphondylium Apiaceae viele Bienenarten ja
Garten-Ringelblume Calendula officinalis Asteraceae viele Bienenarten mittel hoch
Wiesen-Pippau Crepis biennis Asteraceae viele Bienenarten ja
Kleinköpfige Pippau Crepis capillaris Asteraceae kein mittel ja
Dach-Pippau Crepis tectorum Asteraceae
Gewöhnliches Ferkelkraut Hypochaeris radicata Asteraceae viele Bienenarten ja hoch mittel ja
Steifhaariger Löwenzahn Leontodon hispidus Asteraceae viele Bienenarten ja hoch mittel
Acker-Vergissmeinnicht Myosotis arvensis Boraginaceae niedrig kein ja
Hügel-Vergissmeinnicht Myosotis ramosissima Boraginaceae ja
Wiesen-Schaumkraut Cardamine pratensis Brassicaceae viele Bienenarten ja ja
Wiesen-Glockenblume Campanula patula Campanulaceae viele Bienenarten ja
Rundblättrige Glockenblume Campanula rotundifolia Campanulaceae viele Bienenarten ja
Tauben-Skabiose Scabiosa columbaria Caprifoliaceae viele Bienenarten, Schmetterlinge ja
Wiesen-Witwenblume Knautia arvensis Dipsacaceae viele Bienenarten, Schmetterlinge ja
Zypressen-Wolfsmilch Euphorbia cyparissias Euphorbiaceae ja ja
Gewöhnlicher Hufeisenklee Hippocrepis comosa Fabaceae viele Bienenarten, Mauerbienen, Schmetterlinge
Wiesen-Platterbse Lathyrus pratensis Fabaceae viele Bienenarten ja
Gewöhnlicher Hornklee Lotus corniculatus Fabaceae viele Bienenarten, Mauerbienen, Schmetterlinge ja niedrig mittel
Weiße Steinklee Melilotus albus Fabaceae Hummeln ja
Gelbe Steinklee Melilotus officinalis Fabaceae Hummeln ja
Futter-Esparsette Onobrychis viciifolia Fabaceae viele Bienenarten ja
Kleiner Vogelfuß Ornithopus perpusillus Fabaceae
Wiesen-Salbei Salvia pratensis Lamiaceae viele Bienenarten ja ja
Zweijährige Nachtkerze Oenothera biennis Onagraceae
Scharfer Hahnenfuß Ranunculus acris Ranunculaceae viele Bienenarten, Mauerbienen ja mittel mittel
Knolliger Hahnenfuß Ranunculus bulbosus Ranunculaceae viele Bienenarten, Mauerbienen ja
Kriechender Hahnenfuß Ranunculus repens Ranunculaceae Mauerbienen mittel mittel
Hahnenfuß Ranunculus spec. Ranunculaceae Mauerbienen
Gamander-Ehrenpreis Veronica chamaedrys Scrophulariaceae viele Bienenarten ja niedrig
Acker-Stiefmütterchen Viola arvensis Violaceae ja
Wildstauden
Gewöhnliches Bitterkraut Picris hieracioides Asteraceae viele Bienenarten ja
Flachblättiger Mannstreu Eryngium planum Apiaceae viele Bienenarten ja
Gewöhnliche Schafgarbe Achillea millefolium Asteraceae viele Bienenarten niedrig mittel
Färber-Hundskamille Anthemis tinctoria Asteraceae viele Bienenarten ja
Feld-Beifuß Artemisia campestris Asteraceae
Ochsenauge Buphthalmum salicifolium Asteraceae viele Bienenarten ja
Wiesen-Flockenblume Centaurea jacea Asteraceae viele Bienenarten, Schmetterlinge ja
Schwarze Flockenblume Centaurea nigra Asteraceae viele Bienenarten, Schmetterlinge hoch hoch
Skabiosen-Flockenblume Centaurea scabiosa Asteraceae viele Bienenarten, Schmetterlinge
Rispen-Flockenblume Centaurea stoebe Asteraceae viele Bienenarten ja ja
Gewöhnliche Wegwarte Cichorium intybus Asteraceae viele Bienenarten ja
Gewöhnlicher Wasserdost Eupatorium cannabinum Asteraceae Schmetterlinge, Bienen
Strohblume Helichrysum spec. Asteraceae viele Bienenarten ja
Wollige Strohblume (var. Schwefellicht) Helichrysum thianshanicum Asteraceae viele Bienenarten ja
Mausohr-Habichtskraut Hieracium pilosella Asteraceae ja
Habichtskraut Hieracium spec. Asteraceae Schmetterlinge
Schwertalant Inula ensifolia Asteraceae viele Bienenarten ja
Frühe Margerite Leucanthemum vulgare Asteraceae mittel hoch
Großes Flohkraut Pulicaria dysenterica Asteraceae viele Bienenarten ja
Herbst-Schuppenlöwenzahn Scorzoneroides autumnalis Asteraceae mittel hoch
Rainfarn Tanacetum vulgare Asteraceae ja
Großer Bocksbart Tragopogon dubius Asteraceae ja
Acker-Krummhals Anchusa arvensis Boraginaceae viele Bienenarten
Gewöhnliche Ochsenzunge Anchusa officinalis Boraginaceae viele Bienenarten ja
Schmalblättriges Lungenkraut Pulmonaria angustifolia Boraginaceae viele Bienenarten ja
Weiches Lungenkraut Pulmonaria mollis Boraginaceae viele Bienenarten ja ja
Geflecktes Lungenkraut Pulmonaria officinalis Boraginaceae viele Bienenarten ja wertvoll
Beinwell Symphytum spec. Boraginaceae wertvoll
Kelch-Steinkraut Alyssum alyssoides Brassicaceae Frühlingsbienen ja ja
Felsen-Steinkraut Alyssum saxatile Brassicaceae Frühlingsbienen ja ja
Steinkraut Alyssum spec. Brassicaceae Frühlingsbienen ja
Blaukissen Aubriecia deltoidea Brassicaceae viele Bienenarten ja ja
Bleicher Schöterich Erysimum crepidifolium Brassicaceae viele Bienenarten ja ja
Pfirsichblättrige Glockenblume Campanula persicifolia Campanulaceae viele Bienenarten ja
Glockenblume Campanula spec. Campanulaceae viele Bienenarten ja
Rote Lichtnelke Silene dioica Caryophyllaceae mittel mittel ja
Weiße Lichtnelke Silene latifolia Caryophyllaceae mittel mittel
Breitblättrige Lichtnelke Silene latifolia Caryophyllaceae
Nickendes Leimkraut Silene nutans Caryophyllaceae Schmetterlinge
Ohrlöffel-Leimkraut Silene otites Caryophyllaceae
Taubenkropf-Leimkraut Silene vulgaris Caryophyllaceae Schmetterlinge
Gewöhnliches Sonnenröschen Helianthemum nummularium Cistaceae ja
Scharfer Mauerpfeffer Sedum acre Crassulaceae viele Bienenarten ja ja
Fetthenne Sedum spec. Crassulaceae viele Bienenarten ja
Spinnwebiger Hauswurz Sempervivum arachnoideum Crassulaceae viele Bienenarten ja
Hauswurz Sempervivum spec. Crassulaceae viele Bienenarten ja
Wald-Platterbse Lathyrus sylvestris Fabaceae ja
Knollen-Platterbse Lathyrus tuberosus Fabaceae ja
Sichel-Luzerne Medicago falcata Fabaceae ja
Hauhechel Ononis spec. Fabaceae viele Bienenarten ja ja
Hasen-Klee Trifolium arvense Fabaceae ja
Feld-Klee Trifolium campestre Fabaceae ja
Rot-Klee Trifolium pratense Fabaceae viele Bienenarten, Mauerbienen, Hummeln, Schmetterlinge niedrig niedrig
Weiß-Klee Trifolium repens Fabaceae viele Bienenarten, Mauerbienen niedrig niedrig
Persischer Klee Trifolium resupinatum Fabaceae viele Bienenarten ja
Schmalblättrige Wicke Vicia angustifolia Fabaceae ja
Vogel-Wicke Vicia cracca Fabaceae mittel niedrig
Behaarte Wicke Vicia hirsuta Fabaceae niedrig niedrig
Platterbsen-Wicke Vicia lathyroides Fabaceae ja
Zaun-Wicke Vicia sepium Fabaceae viele Bienenarten ja
Gewöhnliche Schwarznessel Ballota nigra Lamiaceae viele Bienenarten, Mauerbienen ja
Gewöhnlicher Dost Origanum vulgare Lamiaceae viele Bienenarten, Schmetterlinge mittel niedrig
Gewöhnliche Braunelle Prunella vulgaris Lamiaceae mittel niedrig
Woll-Ziest Stachys byzantina Lamiaceae viele Bienenarten ja
Heil-Ziest Stachys officinalis Lamiaceae viele Bienenarten ja
Sumpf-Ziest Stachys palustris Lamiaceae viele Bienenarten ja
Aufrechter Ziest Stachys recta Lamiaceae viele Bienenarten ja ja
Wald-Ziest Stachys sylvatica Lamiaceae viele Bienenarten ja
Gamander Teucrium spec. Lamiaceae viele Bienenarten ja
Gewöhnlicher Blutweiderich Lythrum salicaria Lythraceae viele Bienenarten ja
Echter Eibisch Althaea officinalis Malvaceae viele Bienenarten ja
Spitzblatt-Malve Malva alcea Malvaceae viele Bienenarten ja
Moschus-Malve Malva moschata Malvaceae viele Bienenarten ja mittel hoch
Wilde Malve Malva sylvestris Malvaceae viele Bienenarten
Drüsige Weidenröschen Epilobium ciliatum Onagraceae mittel niedrig ja
Berg-Weidenröschen Epilobium montanum Onagraceae niedrig niedrig ja
Punkt-Gilbweiderich Lysimachia punctata Primulaceae viele Bienenarten ja
Gilbweiderich Lysimachia spec. Primulaceae viele Bienenarten ja
Gewöhnlicher Gilbweiderich Lysimachia vulgaris Primulaceae viele Bienenarten ja
Echte Schlüsselblume Primula veris Primulaceae ja
Busch-Windröschen Anemone nemorosa Ranunculaceae Frühlingsbienen wertvoll
Gewöhnliche Waldrebe Clematis vitalba Ranunculaceae viele Bienenarten, Schmetterlinge (Raupen)
Silber-Fingerkraut Potentilla argentea Rosaceae ja
Gewöhnliches Frühlings-Fingerkraut Potentilla tabernaemontani Rosaceae ja ja
Hügel-Meier Asperula cynanchica Rubiaceae
Labkraut Galium spec. Rubiaceae Schmetterlinge (Raupen) niedrig niedrig
Gewöhnliches Leinkraut Linaria vulgaris Scrophulariaceae
Kleiner Klappertopf Rhinanthus minor Scrophulariaceae
Windblumen-Königskerze Verbascum phlomoides Scrophulariaceae ja
Frühlings-Ehrenpreis Veronica verna Scrophulariaceae ja
Pionierpflanzen
Nickende Distel Carduus nutans Asteraceae viele Bienenarten ja ja
Lanzett-Kratzdistel Cirsium vulgare Asteraceae viele Bienenarten ja hoch
Gewöhnlicher Natternkopf Echium vulgare Boraginaceae viele Bienenarten, Schmetterlinge ja mittel mittel ja
Einjähriger Knäuel Scleranthus annuus Caryophyllaceae ja
Ausdauernder Knäuel Scleranthus perennis Caryophyllaceae
Gelber Wau Reseda lutea Resedaceae viele Bienenarten ja mittel mittel
Färber-Resede Reseda luteola Resedaceae viele Bienenarten ja
Dreifinger-Steinbrech Saxifraga tridactylites Saxifragaceae ja
Gewöhnlicher Efeu Hedera helix Araliaceae viele Bienenarten ja
Rotbeerige Zaunrübe Bryonia dioica Cucurbitaceae viele Bienenarten ja
Schwarze Platterbse Lathyrus niger Fabaceae viele Bienenarten ja
Unkräuter
Weißer Gänsefuß Chenopodium album Amaranthaceae viele Bienenarten
Ausdauerndes Gänseblümchen Bellis perennis Asteraceae niedrig mittel
Großer Knorpellattich Chondrilla juncea Asteraceae
Acker-Kratzdistel Cirsium arvense Asteraceae viele Bienenarten, Schmetterlinge hoch mittel
Sumpf-Kratzdistel Cirsium palustre Asteraceae viele Bienenarten, Schmetterlinge
Feinstrahl-Berufkraut Erigeron annuus Asteraceae
Saat-Wucherblume Glebionis segetum Asteraceae mittel hoch
Kompass-Lattich Lactuca serriola Asteraceae
Lattich Lactuca spec. Asteraceae
Gemeiner Rainkohl Lapsana communis Asteraceae niedrig mittel
Strahlenlose Kamille Matricaria discoidea Asteraceae kein mittel
Jakobs-Greiskraut Senecio jacobaea Asteraceae hoch mittel ja
Frühlings-Greiskraut Senecio vernalis Asteraceae ja
Gewöhnliches Greiskraut Senecio vulgaris Asteraceae kein mittel
Raue Gänsedistel Sonchus asper Asteraceae mittel mittel
Kohl-Gänsedistel Sonchus oleraceus Asteraceae mittel mittel
Löwenzahn Taraxacum spec. Asteraceae viele Bienenarten, Schmetterlinge hoch hoch
Geruchlose Kamille Tripleurospermum inodorum Asteraceae hoch hoch
Falsche Strandkamille Tripleurospermum perforatum Asteraceae
Drüsiges Springkraut Impatiens glandulifera Balsaminaceae
Gewöhnliche Hundszunge Cynoglossum officinale Boraginaceae
Gewöhnliche Knoblauchsrauke Alliaria petiolata Brassicaceae Frühlingsbienen ja
Acker-Schmalwand Arabidopsis thaliana Brassicaceae ja
Turmkraut Arabis glabra Brassicaceae
Behaarte Gänsekresse Arabis hirsuta Brassicaceae
Graukresse Berteroa incana Brassicaceae ja
Gewöhnliches Hirtentäschel Capsella bursa-pastoris Brassicaceae niedrig kein
Wasabi-Rauke Diplotaxis erucoides Brassicaceae
Ungarische Rauke Sisymbrium altissimum Brassicaceae ja
Weg-Rauke Sisymbrium officinale Brassicaceae niedrig niedrig
Thymianblättriges Sandkraut Arenaria serpyllifolia Caryophyllaceae
Acker-Hornkraut Cerastium arvense Caryophyllaceae ja ja
Quellen-Hornkraut Cerastium fontanum Caryophyllaceae niedrig niedrig
Gewöhnliches Hornkraut Cerastium holosteoides Caryophyllaceae
Gras-Sternmiere Stellaria graminea Caryophyllaceae niedrig niedrig
Vogel-Sternmiere Stellaria media Caryophyllaceae niedrig kein
Gewöhnlicher Erdrauch Fumaria officinalis Fumariaceae niedrig niedrig
Gewöhnlicher Reiherschnabel Erodium cicutarium Geraniaceae ja ja
Weicher Storchschnabel Geranium molle Geraniaceae niedrig niedrig ja
Kleiner Storchschnabel Geranium pusillum Geraniaceae
Stechender Hohlzahn Galeopsis tetrahit Lamiaceae niedrig
Weiße Taubnessel Lamium album Lamiaceae viele Bienenarten ja
Gefleckte Taubnessel Lamium maculatum Lamiaceae viele Bienenarten ja ja
Purpurrote Taubnessel Lamium purpureum Lamiaceae viele Bienenarten niedrig niedrig
Acker-Winde Convolvulus arvensis Liliaceae
Schmalblättriges Weidenröschen Chamerion angustifolium Onagraceae mittel hoch
Spitz-Wegerich Plantago lanceolata Plantaginaceae viele Bienenarten, Schmetterlinge (Raupen) kein niedrig
Wegerich Plantago spec. Plantaginaceae viele Bienenarten, Schmetterlinge (Raupen)
Acker-Flügelknöterich Fallopia convolvulus Polygonaceae
Pfeffer-Knöterich Persicaria hydropiper Polygonaceae
Floh-Knöterich Persicaria maculosa Polygonaceae niedrig kein
Acker-Vogelknöterich Polygonum aviculare Polygonaceae niedrig
Großer Sauerampfer Rumex acetosa Polygonaceae Schmetterlinge (Raupen)
Kleiner Sauerampfer Rumex acetosella Polygonaceae Schmetterlinge (Raupen)
Schwarzer Nachtschatten Solanum nigrum Solanaceae
Große Brennnessel Urtica dioica Urticaceae Schmetterlinge (Raupen)
Gräser
Wiesen-Knäuelgras Dactylis glomerata Poaceae Schmetterlinge (Raupen)
Rasen-Schmiele Deschampsia cespitosa Poaceae Schmetterlinge (Raupen)
Gewöhnliches Pfeifengras Molinia caerulea Poaceae Schmetterlinge (Raupen)
Gewöhnliches Schilf Phragmites australis Poaceae Schmetterlinge (Raupen), Bienen (Nestmaterial)


Die Pflanzen 

Die orange markierten Pflanzen sind die mit besonders gutem Wert für Wildbienen oder Schmetterlinge. Wer wenig Platz im Garten hat sollte also diese bevorzugen. Pflanzendiversität und Insektendiversität sind positiv korreliert, also besser ist es mehr Arten zu haben. Und oft gilt auch: die besten Pollen-Pflanzen sind nicht die dominantesten und andere Pflanzen wie Schafgarbe oder Strand-Silberkraut liefern durch deren hohe Pflanzenzahl wieder viel Pollen oder Nektar.
Was auffällt in der Tabelle ist das man bereits einiges im Garten hat; entweder als angepflanzte Staude oder als Unkraut. Solche Kategorien wie 'Unkraut' sind natürlich weich, weil es eben Geschmackssache ist und kein Wissenschaft. Ich habe versucht in 'Wildblume Wiese' einjährige und zweijährige Arten zu packen und in 'Wildstaude' die ausdauernde Arten.

Pflanzenwert

"Unterstützung von" ist eigentlich die Zusammenfassung von verschiedene Wildbienen-Publikationen. Frühlingsbienen sind hauptsächlich Mauerbienen und Sandbienen. Zudem ist Unterstützung von Schmetterlinge basiert auf eine Tabelle von Floraweb, wenn die Pflanze für mehr als 25 Schmetterlingsarten als Futter geeignet ist. Raupen werden genannt wenn die Pflanze vorwiegend als Raupenfutter dient, aber oft sind sowohl der Nektar für die Schmetterlinge als die Blätter für ihre Raupen wertvoll. Die übrigen Pflanzenarten ohne definierte Unterstützung wurden in einer der Artikeln als Bienenpflanze aufgeführt, haben aber kein Wert der besonders erwähnt werden muss.


Den besonders guten Wert für Wildbienen (orangene Markierung) ist definiert nach "Hauptpflanze für Bienen über längere Blütezeit" (Beil 2014), von Hummeln favorisierte Pflanze (hochfrequenter Besuch von von Bombus terrestris oder B. pascuorum oder Körper mit hoher Pollen-Volumen dieser Pflanze, wie untersucht von Carvell et al., 2006), oder von Wildbienen sehr häufig besucht in Kombination mit gut im Bestäuber-Netzwerk Eingebundenheit (Warzecha 2018). Zum Schluss gibt es eine Aufwendige Untersuchung über die Menge Pollen und Nektar die Pflanzen produzieren (Hicks 2016). Diese Publikation listet auch noch einige Pflanzen auf, die laut Literatur Pollen mit einem hohen Eiweiß-Gehalt haben ('wertvoll').

Aus diesen Publikationen wurden die meiste Pflanzen die in Gärten eine Rolle spiele übernommen, auch die mit 'geringerem' Wert. Die Liste wurde erweitert mit Pflanzen die vom Bienenkenner Paul Westrich empfohlen werden in seinem Buch (Westrich 2011) und auf seiner Webseite.
Auch ist diese Reihe von Publikationen ist die Grundlage für welche Art von Wildbienen die Pflanze am wertvollsten ist. Für Mauerbienen gibt es eine weitere Reihe von Publikationen die Pollen in Nester untersucht haben (Raw 1974, Tasei 1976, Márquez 1994, Ivanov 2006, Maclvor 2014, Müller 2015) und so zu wichtigen Futterquellen belegt haben für diese Gruppe.


Pflanzen die in März, April und Mai blühen, werden hier 'Frühblüher' genannt und liefern das wichige erste Futter für nach dem Winterschlaf. Viele Wildbienen haben ihre Hauptflugzeit in diesen Monate und Hummelköninginnen bauen ihre Nester auf. Wichtige Frühblüher sind gekennzeichnet, aber die Information ist nicht vollständig. Die Information 'Langblüher' ist aus dem Artikel von Beil et al. entnommen und erweitert (aber auch nicht komplett für allen Arten). Die lange Blütezeit garantiert Bestäuber verlässliche Futterquellen.

Einige Auffälligkeiten


Auffällig ist das Schmetterlinge als Raupe viele Gräser als Futterpflanze benutzen. Zusammen mit der für Raupen sehr wichtige Brennnessel, kann man sehr gut 'eine wilde Ecke' einrichten mit hochwachsende Gräser und Brennnesseln. Diese wachsen oft am Graben und im Schatten, wo andere Pflanzen sich sowieso weniger wohl fühlen. Auch viele andere nicht gelistete Gras-Arten unterstützen Schmetterlinge, nur die Gräser die mehr als 25 Schmetterlingsarten futtern sind aufgenommen.

Schmückkörbchen (Cosmos bipinnatus), Roter Lein (Linum grandoflorum), Marienkäfermohn (Papaver commutatum) und Goldmohn (Escholtzia californica), sind alle Exoten auf den unsere heimischen Bienenarten nicht angepasst sind. Sie haben trotz guten Nektar- und Pollenmenge kaum Wert für Bienen (Westrich 2011). Ähnliches könnte für weitere nicht-heimischen Mohn-Arten gelten, wie z.B. Orientalischer Mohn (Papaver orientale), aber dazu kenne ich keine Untersuchungen. Letztere Art ist bei Hummeln wegen Pollen beliebt (Bild oben).
Bei manche Pflanzenarten gibt es Zuchtformen die Pollen- oder Nektarzugang durch eine geschlossene Mitte blockieren, wie z.B. Rose, Ringelblume und Kornblume und somit auch ungeiegnet für Bestäuber geworden sind.

Was vielen nicht wissen, ist das Bäume und Sträucher sehr wichtig sind für Bienen. Nicht nur Obstbäume sind wichtig, aber auch viele andere Bäume wie Weide, Eiche, Esche und Walnüsse sind für Bienen wichtige Futterquellen. Auch sind Eiche und Weide wichtige Futterquellen für Raupen. Bei Linden muss man aufpassen, weil die Linden sowohl wertvoll als tödlich sein können (!) Die Linde bietet wertvolle Blätter an Raupen und Nektar an Bienen. Doch ist bei manchen Linden der Zuckergehalt im Nektar niedrig, und verbraucht ein Hummel so viel Energie zur nächste Blüte wie er gerade getrunken hat. Ohne Reserven kommt der Hummel also nicht mehr vom Baum weg. Gerade so was kann passieren dort wo nach Massenblüte wenig Nahrungsangebot ist; da ziehen die Linden Hummeln von weit an und werden zum Hummelfriedhof. Die Lösing is Einfach: unter den Linden ein reiches Blütenangebot sichern mit viele Langzeitblüher. Der Gemeine Hasel (Corylus avellana) ist bekannt als Bienen-Baum aber nur Honigbienen (und wenig andere) können was mit den Wind-getriebene, nicht klebende Pollen anfangen; Nektar wird nicht produziert.
Für Honigbienen und Hummeln ist blühender Efeu sehr wichtig, weil dieser in September und Oktober blüht wenn die meisten andere Blüten schon verschwunden sind. Efeu blüht erst nach 10 Jahren, also ältere Bestände unbedingt behalten!

Viele Pflanzen eignen sich sehr gut als Balkonpflanze. Selber habe ich gute Erfahrungen (robuste gut wachsend oder winterhard mit Malvengewächse (Malven, Stockrosen) und Schmetterlingsblütler (Steinklee, Hopfenklee, Rotklee). Vor allem Steinklee ist einer meinen Favoriten weil dieser pflegeleicht ist und monatelang bis in Oktober blüht und so auch Hummelvölker lange mit Nektar unterstützen.


Die Tabelle als Dokument
Die Daten aus den Papern als Tabellen-Dokument

Quellen:
Beil, M., Kratochwil, A., Storm, C., Schwabe, A. (2014) Community structure and diversity of vegetation and flower-visiting wild bees (Hymenoptera: Apoidea) in sandy dry grassland: are there congruent characteristics? Phytocoenologia Vol. 44, Issue 3-4, 175–192.
Carvell, C., Westrich, P., Meek, W. R., Pywell, R. F. & Nowakowski, M. (2006) Assessing the value of annual and perennial forage mixtures for bumblebees by direct observation and pollen analysis. Apidologie 37, 326–340.
Hicks, D.M., Ouvrard, P., Baldock, K.C.R., Baude, M., Goddard, M.A., Kunin, W.E., et al. (2016) Food for Pollinators: Quantifying the Nectar and Pollen Resources of Urban Flower Meadows. PLoS ONE 11(6): e0158117
Ivanov 2006
MacIvor, J.S., Cabral, J.M., Packer, L. (2014) Pollen specialization by solitary bees in an urban landscape. Urban Ecosyst 17,139–147
Marquez, J., Bosch, J. and Vicens, N. (1994) Pollens collected by wild and managed populations of the potential orchard pollinator Osmia cornuta (Latr.) (Hym., Megachilidae). Journal of Applied Entomology 117, 353-359.
Müller, A. (2015) Nest architecture and pollen hosts of the boreoalpine osmiine bee species Hoplitis (Alcidamea) tuberculata (Hymenoptera, Megachilidae). Journal of Hymenoptera Research 47, 53-64.
Raw, A. (1974) Pollen Preferences of Three Osmia Species (Hymenoptera), Oikos 25, 54–60.
Tasei J.N. (1976) Récolte des pollens et approvisionnement du nid chez Osmia coerulescens L. (Hym. Megachilidae). Apidologie 7, 277-300.
Warzecha, D., Diekötter, T., Wolters, V., Frank Jauker, F. (2018) Attractiveness of wildflower mixtures for wild bees and hoverflies depends on some key plant species. Insect Conservation and Diversity, Volume11, Issue1.
Westrich, P. (2011) Wildbienen. Die anderen Bienen. München (Verlag Dr. Friedrich Pfeil), 168 S.