{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from __future__ import print_function\n", "\n", "from collections import defaultdict\n", "\n", "import requests\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def do_request(service, a1=None, a2=None, a3=None, **kwargs):\n", " server = 'http://api.gbif.org/v1'\n", " params = ''\n", " for a in [a1, a2, a3]:\n", " if a is not None:\n", " params += '/' + a\n", " req = requests.get('%s/%s%s' % (server, service, params),\n", " params=kwargs,\n", " headers={'Content-Type': 'application/json'})\n", " if not req.ok:\n", " req.raise_for_status()\n", " return req.json()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "19206\n" ] }, { "data": { "text/plain": [ "{u'authorship': u'',\n", " u'canonicalName': u'Ursus white bear',\n", " u'class': u'Mammalia',\n", " u'classKey': 106223020,\n", " u'datasetKey': u'fab88965-e69d-4491-a04d-e3198b626e52',\n", " u'descriptions': [],\n", " u'family': u'Ursidae',\n", " u'familyKey': 106657396,\n", " u'genus': u'Ursus',\n", " u'genusKey': 106658119,\n", " u'habitats': [],\n", " u'higherClassificationMap': {u'106148414': u'Metazoa',\n", " u'106151875': u'Carnivora',\n", " u'106223020': u'Mammalia',\n", " u'106522535': u'Chordata',\n", " u'106657396': u'Ursidae',\n", " u'106658119': u'Ursus'},\n", " u'key': 106189791,\n", " u'kingdom': u'Metazoa',\n", " u'kingdomKey': 106148414,\n", " u'nameType': u'SCINAME',\n", " u'nomenclaturalStatus': [],\n", " u'numDescendants': 0,\n", " u'numOccurrences': 0,\n", " u'order': u'Carnivora',\n", " u'orderKey': 106151875,\n", " u'parent': u'Ursus',\n", " u'parentKey': 106658119,\n", " u'phylum': u'Chordata',\n", " u'phylumKey': 106522535,\n", " u'rank': u'SPECIES',\n", " u'scientificName': u'Ursus sp. Shennongjia white bear',\n", " u'species': u'Ursus white bear',\n", " u'speciesKey': 106189791,\n", " u'synonym': False,\n", " u'taxonID': u'373678',\n", " u'threatStatuses': [],\n", " u'vernacularNames': []}" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "req = do_request('species', 'search', q='bear')\n", "print(req['count'])\n", "req['results'][0]" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "645\n" ] }, { "data": { "text/plain": [ "{u'authorship': u'G. Fischer de Waldheim, 1817',\n", " u'canonicalName': u'Ursidae',\n", " u'class': u'Mammalia',\n", " u'classKey': 143045262,\n", " u'datasetKey': u'cbb6498e-8927-405a-916b-576d00a6289b',\n", " u'descriptions': [{u'description': u'Below follows a list of the different species of bears. Bears indented are a subspecies or type of the species listed above it that is non-indented.'},\n", " {u'description': u'American Black Bear Cinnamon Bear Kermode Bear Asiatic Black Bear Baluchistan Bear or Pakistan Black Bear Formosan black bear Brown bear Atlas bear Bergman\\'s bear Blue bear Eurasian brown bear European brown bear Gobi bear Grizzly bear Himalayan brown bear Nandi bear Ussuri brown bear Kamchatka brown bear Kodiak bear Marsican brown bear (critically endangered) Mexican grizzly bear East Siberian brown bear Syrian brown bear Giant Panda Qinling Panda Sloth bear Sri Lankan sloth bear Sun bear Polar bear Ursid hybrid Grizzly\\u2013polar bear hybrid Spectacled Bear Extinct bear species Agriotherium Tremarctos floridanus Florida spectacled bear Ailuropoda microta Dwarf Giant Panda Ursus Arctos Californicus \"California Grizzly Bear\"'}],\n", " u'extinct': False,\n", " u'family': u'Ursidae',\n", " u'familyKey': 110503853,\n", " u'habitats': [],\n", " u'higherClassificationMap': {u'116630539': u'Animalia',\n", " u'143035196': u'Chordata',\n", " u'143045262': u'Mammalia',\n", " u'143045479': u'Carnivora'},\n", " u'key': 110503853,\n", " u'kingdom': u'Animalia',\n", " u'kingdomKey': 116630539,\n", " u'nameType': u'WELLFORMED',\n", " u'nomenclaturalStatus': [],\n", " u'nubKey': 9681,\n", " u'numDescendants': 35,\n", " u'numOccurrences': 0,\n", " u'order': u'Carnivora',\n", " u'orderKey': 143045479,\n", " u'parent': u'Carnivora',\n", " u'parentKey': 143045479,\n", " u'phylum': u'Chordata',\n", " u'phylumKey': 143035196,\n", " u'rank': u'FAMILY',\n", " u'scientificName': u'Ursidae G. Fischer de Waldheim, 1817',\n", " u'synonym': False,\n", " u'taxonID': u'1599257',\n", " u'threatStatuses': [],\n", " u'vernacularNames': [{u'language': u'eng', u'vernacularName': u'Bear'}]}" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "req_short = do_request('species', 'search', q='bear', rank='family')\n", "print(req_short['count'])\n", "bear = req_short['results'][0]\n", "bear" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false, "scrolled": false }, "outputs": [], "source": [ "import time\n", "def get_all_records(rec_field, service, a1=None, a2=None, a3=None, **kwargs):\n", " records = []\n", " all_done = False\n", " offset = 0\n", " num_iter = 0\n", " while not all_done and num_iter < 100: # arbitrary\n", " req = do_request(service, a1=a1, a2=a2, a3=a3, offset=offset, **kwargs)\n", " all_done = req['endOfRecords']\n", " if not all_done:\n", " time.sleep(1)\n", " offset += req['limit']\n", " records.extend(req[rec_field])\n", " num_iter += 1\n", " return records" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def get_leaves(nub):\n", " leaves = []\n", " recs = get_all_records('results', 'species', str(nub), 'children')\n", " if len(recs) == 0:\n", " return None\n", " for rec in recs:\n", " rec_leaves = get_leaves(rec['nubKey'])\n", " if rec_leaves is None:\n", " leaves.append(rec)\n", " else:\n", " leaves.extend(rec_leaves)\n", " return leaves" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [], "source": [ "records = get_all_records('results', 'species', str(bear['nubKey']), 'children')\n", "leaves = get_leaves(bear['nubKey'])" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false, "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Agriarctos Kretzoi, 1942 GENUS \n", "Ailurarctos Qiu Zhanxiang & Qi Guoquin, 1989 GENUS \n", "Ailuropoda baconi SPECIES \n", "Ailuropoda fovealis SPECIES \n", "Ailuropoda melanoleuca (David, 1869) SPECIES Bamboo Bear\n", "Ailuropoda microta SPECIES \n", "Ailuropoda wulingshanensis SPECIES \n", "Cynodon helveticus SPECIES \n", "Arctodus pristinus SPECIES \n", "Arctodus simus SPECIES \n", "Harpaleocyon Hürzeler, 1944 GENUS \n", "Helarctos malayanus euryspilus Horsfield, 1825 SUBSPECIES \n", "Helarctos malayanus subsp. malayanus SUBSPECIES \n", "Hyaenarctos Owen, 1845 GENUS \n", "Indarctos anthracitis SPECIES \n", "Indarctos arctoides SPECIES \n", "Indarctos atticus SPECIES \n", "Indarctos nevadensis SPECIES \n", "Indarctos oregonensis SPECIES \n", "Indarctos salmontanus SPECIES \n", "Indarctos vireti SPECIES \n", "Indarctos zdanskyi SPECIES \n", "Melursus ursinus inornatus Pucheran, 1855 SUBSPECIES Sri Lankan Sloth Bear\n", "Melursus ursinus ursinus (Shaw, 1791) SUBSPECIES \n", "Metarctos Gaudry, 1860 GENUS \n", "Myadus GENUS \n", "Pararctotherium Ameghino, 1904 GENUS \n", "Phoberocyon aurelianensis SPECIES \n", "Phoberocyon huerzeleri SPECIES \n", "Phoberocyon johnhenryi SPECIES \n", "Plionarctos edensis SPECIES \n", "Plionarctos harroldorum SPECIES \n", "Thalarctos Gray, 1825 GENUS \n", "Thaumastocyon GENUS \n", "Tremarctos floridanus SPECIES \n", "Tremarctos ornatus (F. G. Cuvier, 1825) SPECIES Spectacled Bear\n", "Ursavus brevirhinus SPECIES \n", "Ursavus elmensis SPECIES \n", "Ursavus pawniensis SPECIES \n", "Ursavus primaevus SPECIES \n", "Ursus abstrusus SPECIES \n", "Ursus americanus altifrontalis Elliot, 1903 SUBSPECIES \n", "Ursus americanus amblyceps Baird, 1859 SUBSPECIES \n", "Ursus americanus californiensis Miller, 1900 SUBSPECIES \n", "Ursus americanus carlottae Osgood, 1901 SUBSPECIES Haida Gwaii Black Bear\n", "Ursus americanus cinnamomum Audubon & Bachman, 1854 SUBSPECIES Cinnamon bear\n", "Ursus americanus emmonsii Dall, 1895 SUBSPECIES Glacier bear\n", "Ursus americanus eremicus Merriam, 1904 SUBSPECIES \n", "Ursus americanus floridanus Merriam, 1896 SUBSPECIES Florida black bear\n", "Ursus americanus hamiltoni Cameron, 1957 SUBSPECIES Newfoundland Black Bear\n", "Ursus americanus kermodei Hornaday, 1905 SUBSPECIES Kermode bear\n", "Ursus americanus luteolus Griffith, 1821 SUBSPECIES \n", "Ursus americanus machetes Elliot, 1903 SUBSPECIES \n", "Ursus americanus perniger J. A. Allen, 1910 SUBSPECIES \n", "Ursus americanus pugnax Swarth, 1911 SUBSPECIES \n", "Ursus americanus subsp. americanus SUBSPECIES \n", "Ursus americanus vancouveri Hall, 1928 SUBSPECIES \n", "Ursus arctos alascensis Merriam, 1896 SUBSPECIES \n", "Ursus arctos beringianus Middendorff, 1851 SUBSPECIES Kamchatka brown bear\n", "Ursus arctos californicus Merriam, 1896 SUBSPECIES California grizzly bear\n", "Ursus arctos collaris F. G. Cuvier, 1824 SUBSPECIES East Siberian Brown Bear\n", "Ursus arctos crowtheri Schinz, 1844 SUBSPECIES Atlas bear\n", "Ursus arctos dalli Merriam, 1896 SUBSPECIES \n", "Ursus arctos gyas Merriam, 1902 SUBSPECIES \n", "Ursus arctos horribilis Ord, 1815 SUBSPECIES Alaska Peninsula Brown Bear\n", "Ursus arctos isabellinus Horsfield, 1826 SUBSPECIES Himalayan Brown Bear\n", "Ursus arctos lasiotus Gray, 1867 SUBSPECIES Ussuri Brown Bear\n", "Ursus arctos middendorffi Merriam, 1896 SUBSPECIES Kodiak bear\n", "Ursus arctos pruinosus Blyth, 1854 SUBSPECIES \n", "Ursus arctos sitkensis Merriam, 1896 SUBSPECIES ABC Brown Bears\n", "Ursus arctos stikeenensis Merriam, 1914 SUBSPECIES \n", "Ursus arctos subsp. arctos SUBSPECIES Eurasian brown bear\n", "Ursus arctos syriacus Hemprich & Ehrenberg, 1828 SUBSPECIES Syrian brown bear\n", "Ursus inopinatus SPECIES MacFarlane s bear\n", "Ursus malayanus SPECIES \n", "Ursus maritimus Phipps, 1774 SPECIES Polar Bear\n", "Ursus spelaeus Rosenmüller & Heinroth SPECIES Cave bear\n", "Ursus thibetanus formosanus Swinhoe, 1864 SUBSPECIES Formosan black bear\n", "Ursus thibetanus gedrosianus Blanford, 1877 SUBSPECIES Baluchistan Bear\n", "Ursus thibetanus japonicus Schlegel, 1857 SUBSPECIES \n", "Ursus thibetanus laniger (Pocock, 1932) SUBSPECIES \n", "Ursus thibetanus mupinensis (Heude, 1901) SUBSPECIES \n", "Ursus thibetanus subsp. thibetanus SUBSPECIES \n", "Ursus thibetanus ussuricus (Heude, 1901) SUBSPECIES \n" ] } ], "source": [ "#[leaf['nameType'] for leaf in leaves]\n", "for rec in leaves:\n", " print(rec['scientificName'], rec['rank'], end=' ')\n", " vernaculars = do_request('species', str(rec['nubKey']), 'vernacularNames', language='en')['results']\n", " for vernacular in vernaculars:\n", " if vernacular['language'] == 'eng':\n", " print(vernacular['vernacularName'], end='')\n", " break\n", " print()" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false, "scrolled": false }, "outputs": [], "source": [ "basis_of_record = defaultdict(int)\n", "country = defaultdict(int)\n", "zero_occurrences = 0\n", "count_extinct = 0\n", "for rec in leaves:\n", " #print(rec['scientificName'], rec['rank'], rec['taxonID'])\n", " occurrences = get_all_records('results', 'occurrence', 'search', taxonKey=rec['nubKey'])\n", " for occurrence in occurrences:\n", " basis_of_record[occurrence['basisOfRecord']] += 1\n", " country[occurrence.get('country', 'NA')] += 1\n", " #there is also publisingCountry\n", " if len(occurrences) > 0:\n", " zero_occurrences += 1\n", " profiles = do_request('species', str(rec['nubKey']), 'speciesProfiles')['results']\n", " for profile in profiles:\n", " if profile.get('extinct', False):\n", " count_extinct += 1\n", " break" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA9IAAAIhCAYAAACi4oLdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmYJVV9//H3B4SAsiqKbAKJg4obBAWjSRhNYlAR9BcV\nNCIqURQDxKgENIbWKGqiKC5gjChLBEVRgkJAVEYxLuPCJuOGYVRGFkUQEJXt+/ujznVqmu6ZvjPd\nfXtm3q/n6aerTp2qOlW3+1Z9zzl1KlWFJEmSJEmamnVGXQBJkiRJklYnBtKSJEmSJA3BQFqSJEmS\npCEYSEuSJEmSNAQDaUmSJEmShmAgLUmSJEnSEAykJU1Jku8k+fNRl0OSpLVJknOTHDDN23xIkkuS\n3Jzk76dz29MtyeIkfzHqckjjGUhrjZbk1iS3tJ+7k9zWm3/uNO3jOUm+kuTXSS6cYPkuSb7Vln8z\nyaOnY7/TJclJSf51Rfmq6hFV9aXZKJMkSaubFvAN7jN+meQzSbZd1e1W1VOr6tTpKGPPEcDnq2qT\nqnrvNG97ulX7keYUA2mt0apqo6rauKo2Bn4M7D2Yr6rTp2k3NwDHAm8dvyDJ+sB/A6cAmwEnA/+d\nZL1p2veMS3KvUZdhReZiGedimSRJM6po9xnAVsB1wHtGW6RJbQ8smkrGNDNcHq+bWu0YSGutlOQP\nkrwryZL2884W9JJkfpKrkxyV5OdJrkryvMm2VVWfr6pPANdMsHg+sG5VHVdVd1TVe4AAT5qkXBsm\neUer1b4pyUVJNmjL9klyRZIbk1yY5KG99e5O8oe9+d+3MveO5x+TXJfkZ0le2Ja9FHgecESrQf/v\nlr44yRFJLgNuSbJuv2tVu6YemeTKJL9I8rEkm7dlGyT5r5Z+Y5KFSR4wyfEubtu5otXefyjJH/SW\n7926nt2Y5H+TPHLcuv0y3uP7LMnjk3yjncuFSf6kt+y+ST7cPv9fJvlUb9m+bb+/asf45N4+/6KX\nbyzJqW16h/Y5vDjJj4HPtfQXJ1nU9nFekgeN+9wOTvKDdozLtAokeUlb9+Z2jnZt6VsnOTPJ9Un+\nL8mhvXV2T9fz4VdJrk3yjonOvSRp5lTV74AzgZ0HaUmeluTi9v38kyRH95ZNdO28f1u2IMlBbfrB\nSb7Yrms/T/LRycow2X1Dki/Q3Z+8t11fHjzBuguSvCnJ/wK/BnZM8tAkFyS5Icn3kjy7l39l718m\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "countries, obs_countries = zip(*sorted(country.items(), key=lambda x: x[1]))\n", "basis_name, basis_cnt = zip(*sorted(basis_of_record.items(), key=lambda x: x[1]))\n", "fig = plt.figure(figsize=(16, 9))\n", "ax = fig.add_subplot(1, 2, 1)\n", "ax.barh(np.arange(10) - 0.5, obs_countries[-10:])\n", "ax.set_title('Top 10 countries per occurences')\n", "ax.set_yticks(range(10))\n", "ax.set_ylim(0.5, 9.5)\n", "ax.set_yticklabels(countries[-10:])\n", "#refer metadata problems\n", "\n", "ax = fig.add_subplot(2, 2, 2)\n", "ax.set_title('Basis of record')\n", "ax.bar(np.arange(len(basis_name)), basis_cnt, color='g')\n", "basis_name = [x.replace('OBSERVATION', 'OBS').replace('_SPECIMEN', '') for x in basis_name]\n", "ax.set_xticks(0.5 + np.arange(len(basis_name)))\n", "ax.set_xticklabels(basis_name, size='x-small')\n", "\n", "ax = fig.add_subplot(2, 2, 4)\n", "other = len(leaves) - zero_occurrences - count_extinct\n", "pie_values = [zero_occurrences, count_extinct, other]\n", "labels = ['No occurence (%d)' % zero_occurrences,\n", " 'Extinct (%d)' % count_extinct, 'Other (%d)' % other]\n", "ax.pie(pie_values, labels=labels,\n", " colors=['cyan', 'magenta', 'yellow'])\n", "ax.set_title('Status for each species')" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": true }, "outputs": [], "source": [ "#distribution of observations of horribilis per year\n", "#probably not put..." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [], "source": [ "horribilis = get_all_records('results', 'occurrence', 'search', taxonKey=6163845)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "years = defaultdict(int)\n", "for x in horribilis:\n", " years[x.get('year', None)] += 1\n", "xs, ys = zip(*[(y, cnt) for y, cnt in years.items() if y is not None])\n", "fig = plt.figure()\n", "ax = fig.add_subplot(111)\n", "ax.plot(xs, ys, '.')" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.9" } }, "nbformat": 4, "nbformat_minor": 0 }