Essential to my understanding of science is that everything happens somewhere. and things that do not happen also “don’t happen somewhere”.

What that means is that knowing where a bird (or whatever your organism is) is may be as important as knowing where it does not occur. especially for conservation purposes. To get to this answer though, we need to know what we have seen, what areas or habitats we have visited and thereby, what areas we have not visited.

This is part of the reason I included “Geospatial” in Bahamians Educated in Natural and Geospatial Sciences in 2011, and why I am focusing heavily on the relationships between the data and locations in eBird for my dissertation.

I used open source coding programs (Google Earth Engine code API and R) with open access data (Landsat 8 and eBird), to create habitat maps and then align them with the biodiversity data for analysis. This means I had to learn to write code in the R programming language and Javascript for Google Earth Engine , and yes it was difficult. But, this means that with a very low power computer, I can now do amazing things and show people what is going on in the Bahamas and Caribbean, teach other young scientists to make reports without necessarily needing lots of funding or resources. I can share this expertise with organizations like the Bahamas National Trust or Department of Forestry rapidly to support conservation and protection efforts.

Equally important is the cost. Beyond internet access and a simple computer there is no need to pay for licenses when using open source and open access products. For products like ArcGIS or ENVI a year of work could easily cost you thousands of dollars.

If you would like to see some of the work I have done, visit my GitHUB page which includes all the R code for this part of the project. Yes, you can do it too! This means, that not only can I make useful data, but I can send it to someone else, who can then change some numbers or files and get the same output for a different year, a different location, a different species, etc. Those same people can also review, comment on, and help me to improve my code and output.

And this is at the core of my teaching and research philosophy. We should all be able to do good work quickly and efficiently, rapidly share with the stakeholders that need it and make it possible for local people and researchers to have input. So, go for it. check out the code on my github page and tell me how you would change or improve it.

Check out the images below and tell me what you think.

I made a habitat map and extracted the habitat at all the eBird locations on the island. and reported on how many locations had Detroit Audubon Society species of conservation concern and which had 16 species of Bahamian interest.

I decided to share this data with you because of the big difference in how much area is in each habitat on Grand Bahama and how many surveys are conducted in those areas.

In particular, sand if way over represented. That is because lots of observers are tourists on a beach or at a property near the beach. I consider them tourists because their visits are seasonal or one time only and they occur near tourist properties or developments.

NB: I trimmed Grand Bahama to the contiguous area you can get to without getting wet. I tried my best to make the images colorblind friendly the habitat map was not possible.

Grand Bahama Island Contiguous area habitat map with legend and axes.jpeg
Grand Bahama habitat map 2017, generated in R and Google Earth Engine


Square Km per habitat on Grand Bahama 2017


habitat type in ebird surveys colorblind

>>>>Here is a snippet of code for those that will not follow the links.

##display the clipped raster####
GBcontiguoushab.range<-cellStats(GBcontiguoushab, range)

plot(GBcontiguoushab,#plot this raster file
col=col7class, #a list of colors make sure they are in the order of the classes you are plotting
at= #how do you want the axis labels spread out?
seq(#sequential separations from the
GBcontiguoushab.range[1],#lowest end of the range
GBcontiguoushab.range[2], #to the highest end of the range
1),#with one unit of separation between each tick mark
labels=legend, #at each tick mark, what do you want the label to say?
axes=T ,
main = “Grand Bahama Island, Bahamas habitat map”, #title of the plot
ylab=”Latitude”, #left side
xlab=”Longitude”, #x axis label
las=1 #rotate the y axis labels to horizontal
plot(GBOutlineWGS84, add=T)
legend(‘bottomright’, legend , fill=col7class, border=”black”,
col=col7class, bty=’n’, cex=1.5)
#summarize the number of pixels and the geographic area in each class####
habitatpixels<-count(GBhabitatdf, “RFclass6bands30m7classes2017”)
habitatareakm2<- #a vector of the total area in each habitat type
(habitatpixels$freq[1:7] #1:7 selects the columns with the classes 0-6 and ignores the NA values
)*0.0009 #0.0009 is the number of km2 in a 30 x 30 m pixel (Landsat 8 imagery)
totalpixels<- #vector for the total pixels in the study area
totalarea<-#vector of total area in study area
percentarea<-habitatareakm2/totalarea #%of total area in each habitat type