# Pydap

Pydap is a pure Python library implementing the Data Access Protocol, also known as DODS or OPeNDAP. You can use Pydap as a client to access hundreds of scientific datasets in a transparent and efficient way through the internet; or as a server to easily distribute your data from a variety of formats.

## Quickstart

You can install the latest version (3.2) using pip. After installing pip you can install Pydap with this command:

    $ pip install Pydap

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

    >>> from pydap.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 Pydap as a client. Pydap also comes with a simple server, implemented as a WSGI application. To use it, you first need to install Pydap with the server extras dependencies. If you want to serve netCDF files, install Pydap with the `handlers.netcdf` extra:

    $ pip install Pydap[server,handlers.netcdf]

More handlers for different formats are available, if necessary. To run a simple standalone server just issue the command:

    $ pydap --data ./myserver/data/ --port 8001

This will start a standalone server running on http://localhost:8001/, serving netCDF files from `./myserver/data/`, similar to the test server at http://test.pydap.org/. Since the server uses the WSGI standard, it can easily be run behind Apache. The server documentation has more information on how to better deploy Pydap.

## Help

If you need any help with Pydap, please feel free to send an email to the mailing list.

## Documentation

- Using the client
  - Accessing gridded data
  - Accessing sequential data
  - Authentication
  - Advanced features
- Running a server
  - Running standalone
  - WSGI Application
  - Flask
  - Apache
  - uWSGI
  - Docker
- Handlers
  - Installing data handlers
- Responses
  - Installing additional responses
- Developer documentation
  - The DAP data model
  - Handlers
  - Responses
  - Templating
- License

# Indices and tables

- Index
- Module Index
- Search Page