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).