10.1.0 • Public • Published


A JavaScript OPeNDAP client.


For use with Node.js, simply install using npm:

$ npm install jsdap

Precompiled files for drop in usage in the browser are provided on the downloads page.


The API exposes several simple loading functions, as well as the internal new request and handler functions for increased flexibility.

jsdap.loadDataAndDDS(url, onLoad, onError, onAbort, onProgress, onTimeout);

This reads the data from a .dods URL (http://example.com/dataset.dods?var2,var1&var3>0), returning an object with the dataset descriptor structure (DDS) for the given query as dds property, and a data property containing the requested data as an object or list depending on if the data is structured or flat.

jsdap.loadData = function(url, onLoad, onError, onAbort, onProgress, onTimeout);

This will return only the data from loadDataAndDDS (see above) and discard the DDS.

jsdap.loadDDS = function(url, onLoad, onError, onAbort, onProgress, onTimeout) {

This will load just the dataset descriptor structure (DDS) from a .dds OPeNDAP URL (http://example.com/dataset.das?var2,var1&var3>0).

jsdap.loadDataset(url, onLoad, onError, onAbort, onProgress, onTimeout);

This will load the metadata from an OPeNDAP url, and return it to your callback function as a JavaScript object identical to pydap's JSON response (http://pydap.org/2.x/responses/json.html) using loadDDS (see above) and loadDAS (see below).

jsdap.loadDAS = function(url, dds, onLoad, onError, onAbort, onProgress, onTimeout);

This will load just the dataset attributes structure (DAS) from a .das OPeNDAP url (http://example.com/dataset.das?var2,var1&var3>0) and is part of the loadDataset function.


More detailed examples can be found in the examples folder, examples/README.md covers how to run them.


Dods data is parsed using an ArrayBuffer, so IE 9 and below are not supported.


The source can be checked out from the git repository.

It is recommended to develop in a virtualenv with nodeenv installed:

$ virtualenv jsdap
$ cd jsdap
$ source bin/activate
$ pip install nodeenv

Install the latest node and set nodeenv to activate with the parent virtualenv:

$ nodeenv -p

Checkout the source and install the requirements in the nodeenv:

$ git clone git@bitbucket.org:jetfuse/jsdap.git
$ cd jsdap
$ npm install

You may wish to link eslint into your path for JavaScript linting, assuming development inside a nodeenv:

$ ln -s --relative node_modules/eslint/bin/eslint.js ../bin/eslint

Jsdap is composed of 3 separate files: parser.js, xdr.js, and api.js. They are located within the src directory.

Unit tests are written with Jasmine and run by the Karma test runner. Tests are run against Firefox, Chrome, and Node.js. They can be run using npm:

$ npm run test


Jsdap is (c) 2007--2009 Roberto De Almeida, licensed under the MIT license.





npm i @jeremybarbet/jsdap

DownloadsWeekly Downloads






Unpacked Size

966 kB

Total Files


Last publish


  • jeremy.barbet