Terrific birds today- on a pleasant bird walk here in Ithaca on May 19th I recorded 43 species! Here is my eBird checklist for those curious.
Category: Birding (Page 1 of 9)
….Even more demos @ ai.columbari.us
miscellaneous dregs, bits, bobs, demos in this playlist on youtube
- handling multiple annotator clients- Vue UI, 2/17/21
- handling multiple annotator clients- Leaflet UI, 2/7/21
- Jest x Puppeteer, testing annotator UI
- Bits from 1.21.21
- preformance updates to core leaflet annotator, 1/17/21
- mongodb, trust schema, drag & drop 12/7/20
- web tools, bbox classify, ridiculous CLI 12/1/20
- audio & photo annotators 11/23/20
- what this swiftui thing 10/26/20
get this script and other GIS bits here on github
The Ebird dataset is awesome. While directly handling data as a massive delimited file- as distributed by the eBird people- is cumbersome at best, the ebird api offers a fairly straightforward and efficient alternative for a few choice bits and batches of data.
-
The eBird
AWK
tool for filtering the actual delimited data can be found over here:install.packages("auk")
It is worth noting R + auk
(or frankly any R centered filtering method) will quickly become limited by the single-threaded approach of R, and how you’re managing memory as you iterate. Working and querying the data from a proper database quickly becomes necessary.
Most conveniently, the eBird API already exists- snag an key over here.
…The API package for R is over here:
install.packages("rebird")
…There is also a neat Python wrapper over here:
pip3 install ebird-api
Region Codes:
I’m not sure why, but some methods use normal latitude / longitude in decimal degrees while some others use "regionCode"
, which seems to be some kind of eBird special. Only ever seen this format in ebird data.
For example, recent observations uses regionCode
:
# GET Recent observations in a region:
# https://api.ebird.org/v2/data/obs/{{regionCode}}/recent
…But nearby recent observations uses latitude / longitude:
# GET Recent nearby observations:
# https://api.ebird.org/v2/data/obs/geo/recent?lat={{lat}}&lng={{lng}}
Regardless, lets just write a function to convert decimal degrees to this regionCode
thing. Here’s mine:
#!/usr/bin/env python3
"""
# provide latitude & longitude, return eBird "regionCode"
Written by Jess Sullivan
@ https://www.transscendsurvival.org/
available at:
https://raw.githubusercontent.com/Jesssullivan/GIS_Shortcuts/master/regioncodes.py
"""
import requests
import json
def get_regioncode(lat, lon):
# this municipal api is a publicly available, no keys needed afaict
census_url = str('https://geo.fcc.gov/api/census/area?lat=' +
str(lat) +
'&lon=' +
str(lon) +
'&format=json')
# send out a GET request:
payload = {}
get = requests.request("GET", census_url, data=payload)
# parse the response, all api values are contained in list 'results':
response = json.loads(get.content)['results'][0]
# use the last three digits from the in-state fips code as the "subnational 2" identifier:
fips = response['county_fips']
# assemble and return the "subnational type 2" code:
regioncode = 'US-' + response['state_code'] + '-' + fips[2] + fips[3] + fips[4]
print('formed region code: ' + regioncode)
return regioncode
The first ones to arrive in MA, brush up!
Palm warbler
This is usually the first one to arrive. Gold bird, medium sized warbler, rufus hat. When they arrive in MA they are often found lower than usual / on the ground looking for anything they can munch on. Song is a rapid trill. More “musical / pleasant” than a fast chipping sparrow, faster than many Junco trills.
Pine warbler
Slimmer than palm, no hat, very slim beak, has streaks on the breast usually. Also a triller. They remain higher in the trees on arrival.
Yellow-rumped warbler
Spectacular bird, if it has arrived you can’t miss it- also they will arrive by the dozen so worth waiting for a good visual. These also trill, which is another reason it is good to get a visual. The trill is slow, very “sing-song”, and has a downward inflection at the end. If there are a bunch sticking around for the summer, try to watch some sing- soon enough you will be able to pick out this trill from the others.
— Yellow warbler says “sweet sweet sweet, I’m so Sweet!” and can get a bit confusing with Yellow-rumped warbler
— Chestnut-sided warbler says “very very pleased to meet ya!” and can get a bit confusing with Yellow warbler
Black-and-white warbler
Looks like a zebra – always acts like a nuthatch (clings to trunk and branches). This one trills like a rusty wheel. It can easily be distinguished after a bit of birding with some around.
American Redstart
Adult males look like a late 50’s hot-rodded American muscle car: long, low, two tone paint job. Matte/luster black with flame accents. Can’t miss it. The females and young males are buff (chrome, to keep in style I guess) with yellow accents. Look for behavior- if a “female” is getting beaten up while trying to sing a song in the same area, it is actually a first year male failing to establish a territory due to obviously being a youth.
Cheers,
– Jess