/dapclient

Client only fork of pydap to use Data Access Protocol to access scientific data on the internet

Primary LanguagePythonOtherNOASSERTION

Tests Test Coverage Latest release BSD-3 clause license dapclient downloads PyPI - Python Version

dapclient - Quick Guide

dapclient is a client-only fork of the venerable pydap. It implements the Opendap/DODS protocol. You can use dapclient to access scientific data on the internet without having to download it; instead, you work with special array and iterable objects that download data on-the-fly as necessary, saving bandwidth and time.

Why fork pydap?

  • Simplify the codebase by remove the server side code
  • Update the code to use modern python 3.8+
  • Up-to-date pypi and conda packages

This version has no additional features, and it only has a few tests. My immediate goal is to have pip and conda packages to support my tsgettoolbox package. I will add tests and features as time (and pull requests!) allow.

Quickstart

You can install the latest version using [pip](http://pypi.python.org/pypi/pip) or conda.

$ pip install dapclient

Also maintained on the conda-forge channel [conda channel](https://anaconda.org/conda-forge/dapclient):

$ conda install -c conda-forge dapclient

This will install dapclient together with all the required dependencies. You can now open any remotely served dataset, and dapclient will download the accessed data on-the-fly as needed:

>>> from dapclient.client import open_url
>>> dataset = open_url('http://test.opendap.org/dap/data/nc/coads_climatology.nc')
>>> var = dataset['SST']
>>> var.shape
(12, 90, 180)
>>> var.dtype
dtype('>f4')
>>> data = var[0,10:14,10:14]  # this will download data from the server
>>> data
<GridType with array 'SST' and maps 'TIME', 'COADSY', 'COADSX'>
>>> print(data.data)
[array([[[ -1.26285708e+00,  -9.99999979e+33,  -9.99999979e+33, -9.99999979e+33],
        [ -7.69166648e-01,  -7.79999971e-01,  -6.75454497e-01, -5.95714271e-01],
        [  1.28333330e-01,  -5.00000156e-02,  -6.36363626e-02, -1.41666666e-01],
        [  6.38000011e-01,   8.95384610e-01,   7.21666634e-01, 8.10000002e-01]]], dtype=float32),
           array([ 366.]),
           array([-69., -67., -65., -63.]),
           array([ 41.,  43.,  45.,  47.])]

For more information, please check the documentation on [using dapclient as a client](https://timcera.bitbucket.io/dapclient/client.html).