Issue:
- an observation was created on iNaturalist. It was refined by reviewers from species to subspecies. The example was Garrulus glandarius ssp. leucotis . The common name for this subspecies is White-faced Jay
- an observation was created on eBird at the species level. https://ebird.org/checklist/S212386574?continue The common name for this species is "Eurasian Jay"
- When birdsync runs, it wants to create a new observation since it doesn't find an observation matching "White faced Jay" I think the relevant code is in the birdsync function.
|
func birdsync(eBirdCSVFilename string, ebirdClient ebirdClient, inatUserID string, inatClient inatClient) stats { |
Solutions or work arounds.
- use --dryrun and update the eBird record to the subspecies (assuming you agree). I tried this, and unfortunately, the subspecies names (Eurasian Jay (White-faced) on eBird and White-faced Jay on iNaturalist) did not fuzzy match. Maybe this will resolve better in the future as groups continue to coordinate on names.
- Similar above but change the code to scientific name matching which might have fewer issues (currently the scientific names differ too).
- potentially update the code to match at the species level only. This could still be an issue, if for example two subspecies of the same species are observed on the same day. That can happen it many instances - for example birding the east coast of the US it is possible to see a Eurasian ssp Green-winged Teal mixed in with American ssp.
- Recognize that some matches just don't work and add a do-not-match option which accepts a list of observations that the utility should not try to synchronize. This might be the best general case solution because there may be other corner cases that shouldn't be updated.
There are probably other ideas. Happy to help develop a solution.
Issue:
birdsync/birdsync.go
Line 168 in 8e01948
Solutions or work arounds.
There are probably other ideas. Happy to help develop a solution.