{"id":131,"date":"2026-11-13T09:59:47","date_gmt":"2026-11-13T17:59:47","guid":{"rendered":"https:\/\/blogs.reed.edu\/datalab\/?p=131"},"modified":"2026-11-13T12:38:31","modified_gmt":"2026-11-13T20:38:31","slug":"goose-counting-correctly-handling-user-submitted-data","status":"publish","type":"post","link":"https:\/\/blogs.reed.edu\/datalab\/2026\/11\/13\/goose-counting-correctly-handling-user-submitted-data\/","title":{"rendered":"Goose Counting &amp; Correctly Handling User-Submitted Data"},"content":{"rendered":"\n<p>The Cackling Goose and the Canada Goose: can you tell them apart if they aren&#8217;t right next to each other? People at Oaks Bottom probably can&#8217;t.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"720\" height=\"540\" src=\"https:\/\/blogs.reed.edu\/datalab\/files\/2026\/11\/image.png\" alt=\"\" class=\"wp-image-132\" style=\"width:400px;height:auto\" srcset=\"https:\/\/blogs.reed.edu\/datalab\/files\/2026\/11\/image.png 720w, https:\/\/blogs.reed.edu\/datalab\/files\/2026\/11\/image-300x225.png 300w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><figcaption class=\"wp-element-caption\">Image from Ryan Schain via Cornell&#8217;s allaboutbirds.org<\/figcaption><\/figure><\/div>\n\n\n<p>This week we looked at the geese present on and around Reed&#8217;s campus. Anecdotally, I think there are more geese on campus than there were when I was here in the mid to late 2000s. If we want to look at confirming or denying that assertion there are a number of routes that we could take. I&#8217;m going to go through one that I think might be people&#8217;s first thought for addressing this question and point out some potential pitfalls in what might seem like an otherwise straightforward analysis.<\/p>\n\n\n\n<p>Some of the problems discussed here will be specific to the topic, but many can be broadly applied to other types of research. When you&#8217;re working on a project, it&#8217;s always good to check your assumptions to make sure you thoroughly understand what&#8217;s in your data, including how it is collected, potential confounding variables, and issues with masking or silent imputation (for example, how null data is handled).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Public Data &amp; Citizen Science<\/strong><\/h2>\n\n\n\n<p>Public, online repositories of data are extremely useful for all kinds of research. <a href=\"https:\/\/www.openstreetmap.org\/#map=4\/38.03\/-95.80\">OpenStreetMaps<\/a> has an <strong>extensive<\/strong> database for maps and location labeling of all kinds (as described a little in the previous blog entry). <a href=\"https:\/\/www.purpleair.com\/\">PurpleAir<\/a> and <a href=\"https:\/\/openaq.org\/\">OpenAQ<\/a> have data on air quality that is fine-scaled and up to the minute because of user-submitted measurements. <a href=\"https:\/\/globeatnight.org\/\">Globe at Night<\/a> is a citizen science initiative to measure light pollution around the world and relies totally on individual contributions. These types of organizations provide a wealth of useful knowledge that is available for anyone to use, but you have to be careful how you interpret it.<\/p>\n\n\n\n<p>This project relied on eBird data. eBird is a site for birders to submit lists of birds that they saw or heard, how many there were, where they were, and a number of other things. Birders are often obsessive nutjobs<sup data-fn=\"6b3cde52-9475-479b-a702-05ab0eeeb91d\" class=\"fn\"><a href=\"#6b3cde52-9475-479b-a702-05ab0eeeb91d\" id=\"6b3cde52-9475-479b-a702-05ab0eeeb91d-link\">1<\/a><\/sup>, so that makes eBird one of, if not the, the largest repository of biodiversity data in existence. Scientists use it to track migration, population trends, and the effects of climate change and habitat loss, and anyone can explore the maps and species data online. You can look at birding hotspots worldwide or right in your neighborhood, like the one at Reed Lake (aka, the canyon).<\/p>\n\n\n\n<p>eBird is a bit cumbersome to use, so I accessed its data via the <a href=\"https:\/\/www.gbif.org\/\">Global Biodiversity Information Facility<\/a>, which pulls data from a number of open access sources (it&#8217;s very cool, check it out). To do this I used an R package called <code>{rgbif}<\/code> to pull data from three eBird hotspots near Reed (Reed Lake, Oaks Bottom, and the Rhodie Gardens) for both Cackling Geese (<em>Branta hutchinsii<\/em>) and Canada Geese (<em>Branta canadensis<\/em>). That code is in the &#8216;pull_geese.R&#8217; script on the GitHub, but the gist of it relies on having a free user key for eBird and this function:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>occ_search(\n    taxonKey   = key,\n    datasetKey = ebird_key,\n    locality   = loc_id,\n    year       = year_range,\n    limit      = 20000\n  )<\/code><\/pre>\n\n\n\n<p>This pulls data since 2010 for the three locations (as identified by unique eBird IDs), and that data comes as individual people&#8217;s checklists, so a single row, looks something like this and includes the specific date, whose list it is, and how many birds they saw.  <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"48\" src=\"https:\/\/blogs.reed.edu\/datalab\/files\/2026\/11\/image-2-1024x48.png\" alt=\"\" class=\"wp-image-136\" srcset=\"https:\/\/blogs.reed.edu\/datalab\/files\/2026\/11\/image-2-1024x48.png 1024w, https:\/\/blogs.reed.edu\/datalab\/files\/2026\/11\/image-2-300x14.png 300w, https:\/\/blogs.reed.edu\/datalab\/files\/2026\/11\/image-2-768x36.png 768w, https:\/\/blogs.reed.edu\/datalab\/files\/2026\/11\/image-2-1536x71.png 1536w, https:\/\/blogs.reed.edu\/datalab\/files\/2026\/11\/image-2-2048x95.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>By summing up that data by year, you can get the following figure, which is similar to what is in The Quest, but I added the Rhodie Gardens just for fun.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"614\" src=\"https:\/\/blogs.reed.edu\/datalab\/files\/2026\/11\/blog_yearly-1-1024x614.png\" alt=\"\" class=\"wp-image-135\" style=\"width:509px;height:auto\" srcset=\"https:\/\/blogs.reed.edu\/datalab\/files\/2026\/11\/blog_yearly-1-1024x614.png 1024w, https:\/\/blogs.reed.edu\/datalab\/files\/2026\/11\/blog_yearly-1-300x180.png 300w, https:\/\/blogs.reed.edu\/datalab\/files\/2026\/11\/blog_yearly-1-768x461.png 768w, https:\/\/blogs.reed.edu\/datalab\/files\/2026\/11\/blog_yearly-1.png 1500w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>On the face of it, this is a simple and straightforward way to look at the number of geese over time. But there are a number of issues, some obvious and some not so obvious, that make this graph not as useful as one might initially think. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Problems<\/strong><\/h2>\n\n\n\n<p>The easiest data to use for analysis is highly structured data. This is data that has a design implemented before collection, has a fixed scheme for how it is recorded, and has neat rows and columns. eBird data may appear this way at first but it is actually semi-structured data. The form for entering the bird count data might be the same for everyone, but participants get to choose where, when, and for how long they want to record. They can log every bird they see or just the ones they&#8217;re interested in. And their observations are based solely on their own expertise. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Structured vs Semi-Structured Data<\/strong><\/h3>\n\n\n\n<p>An example of similar data that is structured is the USGS North American Breeding Bird Survey. Data is still collected by volunteers, but those volunteers have to officially register with their local government and follow a strict protocol. The routes are random, the survey takes place at the same time each year, participants count for a set length of time, and the skill levels are roughly equally advanced. Because of this every count represents a standardized effort, so year-to-year differences reflect real changes in bird populations rather than differences in how the data was collected.<\/p>\n\n\n\n<p>Let&#8217;s dig into the issues. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Sampling Bias<\/strong><\/h3>\n\n\n\n<p>Sampling bias occurs when a sample or survey is not representative of the whole population. As you might expect, people are going to bird in nice, easy to reach places rather than rural, inhospitable, or just plain ugly locations. So eBird checklists cluster near roads, cities, parks, and hotspots, and around wealthy regions where birds are abundant. Just looking at a map of where records are, you can see obvious oversampling in some areas and no data for others. Here&#8217;s a map of an area around Portland.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"454\" src=\"https:\/\/blogs.reed.edu\/datalab\/files\/2026\/11\/image-3-1024x454.png\" alt=\"\" class=\"wp-image-137\" srcset=\"https:\/\/blogs.reed.edu\/datalab\/files\/2026\/11\/image-3-1024x454.png 1024w, https:\/\/blogs.reed.edu\/datalab\/files\/2026\/11\/image-3-300x133.png 300w, https:\/\/blogs.reed.edu\/datalab\/files\/2026\/11\/image-3-768x340.png 768w, https:\/\/blogs.reed.edu\/datalab\/files\/2026\/11\/image-3-1536x681.png 1536w, https:\/\/blogs.reed.edu\/datalab\/files\/2026\/11\/image-3-2048x907.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>An absence of records in a location obviously doesn&#8217;t mean there are no birds there. We expect to see higher numbers of birds recorded in heavily trafficked areas. So, for our goose data, do we really think that geese flock to the Rhodie Gardens far more than to Reed? Perhaps, but think about how likely the average person on Reed campus is to be recording bird totals versus the average visitor to the Rhodie Gardens. <\/p>\n\n\n\n<!--more-->\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">In progress from here<\/h1>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Seasonality<\/strong><\/h3>\n\n\n\n<p>On this same note, we likely have a large sampling bias by season. Think about when people are around at Reed and when the Rhodie Garden or Oaks Bottom are most popular. Summer and winter are going to basically be diametrically opposed for these locations. Sure, <\/p>\n\n\n\n<p>effort<\/p>\n\n\n\n<p>Skill<\/p>\n\n\n\n<p>presence data masks zeros (missing = 0)<\/p>\n\n\n\n<p>Seasonality<\/p>\n\n\n\n<p>Oaks Bottom is a much larger area than Reed Lake<\/p>\n\n\n\n<p>when did ebird start and popularity<\/p>\n\n\n\n<p>flock size <\/p>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-ad2f72ca wp-block-group-is-layout-flex\">\n<p>Actual Conclusions<\/p>\n<\/div>\n\n\n<ol class=\"wp-block-footnotes\"><li id=\"6b3cde52-9475-479b-a702-05ab0eeeb91d\"> <a href=\"#6b3cde52-9475-479b-a702-05ab0eeeb91d-link\" aria-label=\"Jump to footnote reference 1\">\u21a9\ufe0e<\/a><\/li><\/ol>","protected":false},"excerpt":{"rendered":"<p>The Cackling Goose and the Canada Goose: can you tell them apart if they aren&#8217;t right next to each other? People at Oaks Bottom probably can&#8217;t. This week we looked at the geese present on and around Reed&#8217;s campus. Anecdotally,&nbsp;&hellip; <a href=\"https:\/\/blogs.reed.edu\/datalab\/2026\/11\/13\/goose-counting-correctly-handling-user-submitted-data\/\">finish&nbsp;reading&nbsp;Goose Counting &amp; Correctly Handling User-Submitted Data<\/a><\/p>\n","protected":false},"author":3079,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"[{\"id\":\"6b3cde52-9475-479b-a702-05ab0eeeb91d\",\"content\":\"\"}]"},"categories":[1],"tags":[],"class_list":["post-131","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blogs.reed.edu\/datalab\/wp-json\/wp\/v2\/posts\/131","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.reed.edu\/datalab\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.reed.edu\/datalab\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.reed.edu\/datalab\/wp-json\/wp\/v2\/users\/3079"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.reed.edu\/datalab\/wp-json\/wp\/v2\/comments?post=131"}],"version-history":[{"count":4,"href":"https:\/\/blogs.reed.edu\/datalab\/wp-json\/wp\/v2\/posts\/131\/revisions"}],"predecessor-version":[{"id":143,"href":"https:\/\/blogs.reed.edu\/datalab\/wp-json\/wp\/v2\/posts\/131\/revisions\/143"}],"wp:attachment":[{"href":"https:\/\/blogs.reed.edu\/datalab\/wp-json\/wp\/v2\/media?parent=131"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.reed.edu\/datalab\/wp-json\/wp\/v2\/categories?post=131"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.reed.edu\/datalab\/wp-json\/wp\/v2\/tags?post=131"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}