API Documentation¶
A pure Python implementation of the OPeNDAP server protocol.
This module allows you to serve arbitrary data structures through the web
framework of your choice as OPeNDAP data objects. It implements just the bare
minimum of the DAP 2.0 protocol: DDS, DAS, and DODS responses and slicing. Array
data needs to be supplied as numpy.ndarray
.
The classes defined here allow the user to construct a data model in a flexible way, by describing the data hierarchy using data types defined by DAP.
This library only implements the server side encoding. It is tested to serve clients using the netCDF4 library. PyDAP client libraries are not supported.
-
class
opendap_protocol.protocol.
Byte
(value=None, name=None, parent=None)[source]¶ Bases:
opendap_protocol.protocol.DAPAtom
-
dtype
¶ alias of
numpy.uint8
-
str
= 'B'¶
-
-
class
opendap_protocol.protocol.
Config
(DASK_ENCODE_CHUNK_SIZE: int = 20000000.0)[source]¶ Bases:
object
-
DASK_ENCODE_CHUNK_SIZE
= 20000000.0¶
-
-
class
opendap_protocol.protocol.
DAPAtom
(value=None, name=None, parent=None)[source]¶ Bases:
opendap_protocol.protocol.DAPObject
A class for handling DAP atomic variables.
-
str
= None¶
-
-
class
opendap_protocol.protocol.
DAPDataObject
(name='', parent=None, *args, **kwargs)[source]¶ Bases:
opendap_protocol.protocol.DAPObject
A generic class for typed non-atomic objects holding actual data (i.e. Array and Grid).
-
class
opendap_protocol.protocol.
DAPObject
(name='', parent=None, *args, **kwargs)[source]¶ Bases:
object
A generic DAP object class.
-
data_path
¶
-
indent
¶
-
-
class
opendap_protocol.protocol.
Dataset
(name='', parent=None, *args, **kwargs)[source]¶ Bases:
opendap_protocol.protocol.Structure
Class representing a DAP dataset.
-
class
opendap_protocol.protocol.
Float32
(value=None, name=None, parent=None)[source]¶ Bases:
opendap_protocol.protocol.DAPAtom
-
dtype
¶ alias of
numpy.float32
-
str
= '>f4'¶
-
-
class
opendap_protocol.protocol.
Float64
(value=None, name=None, parent=None)[source]¶ Bases:
opendap_protocol.protocol.DAPAtom
-
dtype
¶ alias of
numpy.float64
-
str
= '>f8'¶
-
-
class
opendap_protocol.protocol.
Int16
(value=None, name=None, parent=None)[source]¶ Bases:
opendap_protocol.protocol.DAPAtom
-
dtype
¶ alias of
numpy.int16
-
str
= '>i4'¶
-
-
class
opendap_protocol.protocol.
Int32
(value=None, name=None, parent=None)[source]¶ Bases:
opendap_protocol.protocol.DAPAtom
-
dtype
¶ alias of
numpy.int32
-
str
= '>i4'¶
-
-
class
opendap_protocol.protocol.
Sequence
(*args, **kwargs)[source]¶ Bases:
opendap_protocol.protocol.DAPObject
Class representing a DAP sequence.
-
end_of_seq
= b'\xa5\x00\x00\x00'¶
-
start_of_inst
= b'Z\x00\x00\x00'¶
-
-
class
opendap_protocol.protocol.
SequenceInstance
(name='', parent=None, *args, **kwargs)[source]¶ Bases:
opendap_protocol.protocol.DAPObject
Class representing a data item that will be added to a sequence.
-
data_path
¶
-
validates
(schema)[source]¶ Validate the sequence instance against a sequence schema
Parameters: schema – A SequenceSchema
instance.
-
-
class
opendap_protocol.protocol.
SequenceSchema
(name='', parent=None, *args, **kwargs)[source]¶ Bases:
opendap_protocol.protocol.DAPObject
Class holding a schema against which SequenceItems are validated.
-
class
opendap_protocol.protocol.
String
(value=None, name=None, parent=None)[source]¶ Bases:
opendap_protocol.protocol.DAPAtom
-
dtype
¶ alias of
numpy.str_
-
str
= 'S'¶
-
-
class
opendap_protocol.protocol.
Structure
(name='', parent=None, *args, **kwargs)[source]¶ Bases:
opendap_protocol.protocol.DAPObject
Class representing a DAP structure.
-
class
opendap_protocol.protocol.
UInt16
(value=None, name=None, parent=None)[source]¶ Bases:
opendap_protocol.protocol.DAPAtom
-
dtype
¶ alias of
numpy.uint16
-
str
= '>u4'¶
-
-
class
opendap_protocol.protocol.
UInt32
(value=None, name=None, parent=None)[source]¶ Bases:
opendap_protocol.protocol.DAPAtom
-
dtype
¶ alias of
numpy.uint32
-
str
= '>u4'¶
-
-
class
opendap_protocol.protocol.
URL
(value=None, name=None, parent=None)[source]¶ Bases:
opendap_protocol.protocol.String
-
dtype
¶ alias of
numpy.str_
-
str
= 'S'¶
-
-
opendap_protocol.protocol.
dods_encode
(data, dtype)[source]¶ This is the fast XDR conversion. A 100x100 array takes around 40 micro- seconds. This is a speedup of factor 100.
-
opendap_protocol.protocol.
meets_constraint
(constraint_expr, data_path)[source]¶ Parse the constraint expression and check if data_path meets the criteria.
Parameters: - constraint_expr – (string) A DAP constraint string
- data_path – (string) Path of a DAP object within the dataset
Returns: a boolean
-
opendap_protocol.protocol.
parse_slice
(token)[source]¶ Parse a single slice string
Parameters: token – A string containing a number [3], a range [3:7] or a colon [:] Returns: An integer for simple numbers, or a slice object