Package: quaker-db
QuakerLightweight python API to USGS earthquake dataset.API Docs are located hereInstallationClone the repo to your system and install$gitclonehttps://github.com/BlakeJC94/quaker.git
$cdquaker
$pipinstall.QuickstartThis package comes equipped with a batteries-included CLI interface for downloading the latest
earthquake event data in CSV, GeoJSON, and plain text format from the USGS database.usage: quaker [-h] [--format VAL] [--endtime TIME] [--starttime TIME] [--updatedafter TIME] [--minlatitude LAT]
              [--minlongitude LNG] [--maxlatitude LAT] [--maxlongitude LNG] [--latitude LAT] [--longitude LNG]
              [--maxradius VAL] [--maxradiuskm DIST] [--catalog VAL] [--contributor VAL] [--eventid VAL]
              [--includeallmagnitudes BOOL] [--includeallorigins BOOL] [--includedeleted VAL]
              [--includesuperceded BOOL] [--limit VAL] [--maxdepth VAL] [--maxmagnitude VAL] [--mindepth VAL]
              [--minmagnitude VAL] [--offset VAL] [--orderby VAL] [--alertlevel VAL] [--callback VAL]
              [--eventtype VAL] [--jsonerror BOOL] [--kmlanimated BOOL] [--kmlcolorby VAL] [--maxcdi VAL]
              [--maxgap VAL] [--maxmmi VAL] [--maxsig VAL] [--mincdi VAL] [--minfelt VAL] [--mingap VAL]
              [--minsig VAL] [--producttype VAL] [--productcode VAL] [--reviewstatus VAL]
              [mode]

Access USGS Earthquake dataset API Docs: https://earthquake.usgs.gov/fdsnws/event/1/ NOTE: All times use
ISO8601 Date/Time format (yyyy-mm-ddThh:mm:ss). UTC is assumed. NOTE: Minimum/maximum longitude values may
cross the date line at 180 or -180

positional arguments:
  mode                  action to perform (default: download)

optional arguments:
  -h, --help            show this help message and exit

Format:
  --format VAL          specify the output format (one of "csv", "geojson", "kml", "quakeml", "text", or
                        "xml").

Time:
  --endtime TIME        limit to events on or before the specified end time.
  --starttime TIME      limit to events on or after the specified start time.
  --updatedafter TIME   limit to events updated after the specified time.

Location - rectangle:
  --minlatitude LAT     limit to events with a latitude larger than the specified minimum [-90, 90].
  --minlongitude LNG    limit to events with a longitude larger than the specified minimum [-360, 360].
  --maxlatitude LAT     limit to events with a latitude smaller than the specified maximum [-90, 90].
  --maxlongitude LNG    limit to events with a longitude smaller than the specified maximum [-360, 360].

Location - circle:
  --latitude LAT        specify the latitude to be used for a radius search [-90, 90].
  --longitude LNG       specify the longitude to be used for a radius search [-180, 180].
  --maxradius VAL       limit to events within the specified maximum number of degrees from the geographic
                        point defined by the latitude and longitude parameters [0, 180].
  --maxradiuskm DIST    limit to events within the specified maximum number of kilometers from the geographic
                        point defined by the latitude and longitude parameters [0, 20001.6].

Other:
  --catalog VAL         limit to events from a specified catalog.
  --contributor VAL     limit to events contributed by a specified contributor.
  --eventid VAL         select a specific event by id; event identifiers are data center specific.
  --includeallmagnitudes BOOL
                        specify if all magnitudes for the event should be included.
  --includeallorigins BOOL
                        specify if all origins for the event should be included.
  --includedeleted VAL  specify if deleted products and events should be included. the value "only" returns
                        only deleted events. values "true" or "false" are typecast to bool.
  --includesuperceded BOOL
                        specify if superseded products should be included. this also includes all deleted
                        products, and is mutually exclusive to the includedeleted parameter.
  --limit VAL           limit the results to the specified number of events.
  --maxdepth VAL        limit to events with depth less than the specified maximum.
  --maxmagnitude VAL    limit to events with a magnitude smaller than the specified maximum.
  --mindepth VAL        limit to events with depth more than the specified minimum.
  --minmagnitude VAL    limit to events with a magnitude larger than the specified minimum.
  --offset VAL          return results starting at the event count specified, starting at 1.
  --orderby VAL         order the results (one of "time", "time-asc", "magnitude", or "magnitude-asc").

Extensions:
  --alertlevel VAL      limit to events with a specific pager alert level (one of "green", "yellow", "orange",
                        or "red").
  --callback VAL        convert geojson output to a jsonp response using this callback.
  --eventtype VAL       limit to events of a specific type
  --jsonerror BOOL      request json(p) formatted output even on api error results. (only for geojson format)
  --kmlanimated BOOL    whether to include timestamp in generated kml, for google earth animation support.
  --kmlcolorby VAL      how earthquakes are colored (one of "age", "depth").
  --maxcdi VAL          maximum value for maximum community determined intensity reported by dyfi [0, 12].
  --maxgap VAL          limit to events with no more than this azimuthal gap [0, 360].
  --maxmmi VAL          maximum value for maximum modified mercalli intensity reported by shakemap [0, 12].
  --maxsig VAL          limit to events with no more than this significance.
  --mincdi VAL          minimum value for maximum community determined intensity reported by dyfi [0, 12].
  --minfelt VAL         limit to events with this many dyfi responses.
  --mingap VAL          limit to events with no less than this azimuthal gap [0, 360].
  --minsig VAL          limit to events with no less than this significance.
  --producttype VAL     limit to events that have this type of product associated.
  --productcode VAL     return the event that is associated with the productcode.
  --reviewstatus VAL    limit to events with a specific review status (one of "all", "automatic", or
                        "reviewed").Runquaker downloadand specify the parameters as keyword arguments and pipe the output to any
location:$quakerdownload--formatcsv--starttime2022-08-01--endtime2022-09-01>earthquake_data.csvFor more details on the available query parameters, usequaker --helpor view theUSGS documentation.Using the python API is also fairly straight-forward:>>>fromquakerimportQuery,Client>>>client=Client()# An empty query defaults to all events in the last 30 days>>>events_from_last_30_days=Query()>>>client.execute(events_from_last_30_days,output_file="./path/to/example/output_1.csv")# Large multi-page queries can also be handled>>>events_from_last_5_months=Query(...format="csv",...starttime="2022-05-01",...endtime="2022-10-01",...)>>>client.execute(events_from_last_5_months,output_file="./path/to/example/output_2.csv")# Calling `client.execute` without an output file return results as a pandas DataFrame>>>results=client.execute(events_from_last_5_months)# You can filter results by location using the API>>>fields={..."format":"csv",..."starttime":"2022-08-01",..."endtime":"2022-09-01",..."latitude":35.652832,..."longitude":139.839478,..."maxradiuskm":120.0,..."minmagnitude":3.0,...}>>>events_in_august_in_120km_within_tokyo_above_mag_3=Query(**fields)>>>client.execute(...events_in_august_in_120km_within_tokyo_above_mag_3,...output_file="./path/to/example/output_3.csv"...)# See `help(Query)` and https://earthquake.usgs.gov/fdsnws/event/1/ for more detailsContributingThis is a small personal project, but pull requests are most welcome!Code is styled using[black](https://github.com/psf/black)(pip install black)Code is linted withpylint(pip install pylint)Requirements are managed usingpip-tools(runpip install pip-toolsif needed)Add dependencies by adding packages tosetup.pyand runningpip-compileSemantic versioningis used in this repoMajor version: rare, substantial changes that break backward compatibilityMinor version: most changes - new features, models or improvementsPatch version: small bug fixes and documentation-only changesVirtual environment handling bypoetryis preferred:# in the project directory$poetryinstall
$poetryshell