Repository: weecology/retriever

Issue:
Error downloading eBird_observation data.
The URL doesn't work anymore.



Discussion:
Unfortunately they pulled this dataset down several months ago. It had sounded from @mbjones (in #513) like it might go back up, but I just checked DataONE and now it says "This file is too large to download, please contact us about how to access this data". This probably makes it impossible for us to support the dataset going forward.

@mbjones - do you know if there's anyway to access the eBird data directly over the internet going forward?

OK, at this point I think we should go ahead and remove eBird support.


Resolving patch:
diff --git a/scripts/eBird_observation.py b/scripts/eBird_observation.py
deleted file mode 100644
--- a/scripts/eBird_observation.py
+++ /dev/null
@@ -1,56 +0,0 @@
-#retriever
-"""Data Retriever script for the eBird Observation Dataset"""
-
-from retriever.lib.templates import Script
-from retriever.lib.models import Table
-
-
-class main(Script):
-    def __init__(self, **kwargs):
-        Script.__init__(self, **kwargs)
-        self.name = "eBird Observation Dataset"
-        self.shortname = "eBirdOD"
-        self.ref = "http://ebird.org/content/ebird/news/gbif/"
-        self.urls = {"main": "https://dataone.ornith.cornell.edu/metacat/d1/mn/v1/object/CLOEODDATA.05192014.1"}
-        self.retriever_minimum_version = '2.0.dev'
-        self.version = '1.0'
-        self.description = "A collection of observations from birders through portals managed and maintained by local partner conservation organizations"
-
-    def download(self, engine=None, debug=False):
-        data_file_name = "eBird_Observation_Dataset_2013.csv"
-        Script.download(self, engine, debug)
-        self.engine.download_files_from_archive(self.urls["main"],
-                                                [data_file_name],
-                                                filetype='gz')
-        table = (Table("main", delimiter=","))
-        table.columns=[("BASISOFRECORD",("char", )),
-                       ("INSTITUTIONCODE",("char", )),
-                       ("COLLECTIONCODE",("char", )),
-                       ("CATALOGNUMBER",("char", )),
-                       ("OCCURRENCEID",("char", )),
-                       ("RECORDEDBY",("char", )),
-                       ("YEAR",("int", )),
-                       ("MONTH",("int", )),
-                       ("DAY",("int", )),
-                       ("COUNTRY",("char", )),
-                       ("STATEPROVINCE",("char", )),
-                       ("COUNTY",("char", )),
-                       ("DECIMALLATITUDE",("double", )),
-                       ("DECIMALLONGITUDE",("double", )),
-                       ("LOCALITY",("char", )),
-                       ("KINGDOM",("char", )),
-                       ("PHYLUM",("char", )),
-                       ("CLASS",("char", )),
-                       ("SPORDER",("char", )),
-                       ("FAMILY",("char", )),
-                       ("GENUS",("char", )),
-                       ("SPECIFICEPITHET",("char", )),
-                       ("SCIENTIFICNAME",("char", )),
-                       ("VERNACULARNAME",("char", )),
-                       ("INDIVIDUALCOUNT",("int", ))]
-        engine.table = table
-        engine.create_table()
-        engine.insert_data_from_file(engine.format_filename(data_file_name))
-        return engine
-
-SCRIPT = main()
diff --git a/try_install_all.py b/try_install_all.py
--- a/try_install_all.py
+++ b/try_install_all.py
@@ -29,7 +29,7 @@
     ]
 SCRIPT_LIST = SCRIPT_LIST()
 TEST_ENGINES = {}
-IGNORE = ["AvianBodyMass", "FIA", "Bioclim", "PRISM", "vertnet","NPN", "mammsupertree", "eBirdOD"]
+IGNORE = ["AvianBodyMass", "FIA", "Bioclim", "PRISM", "vertnet","NPN", "mammsupertree"]
 IGNORE = [dataset.lower() for dataset in IGNORE]
 
 for engine in ENGINE_LIST:


Test patch: