podpac.Node
- class podpac.Node(**kwargs: Any)[source]
Bases:
HasTraits
The base class for all Nodes, which defines the common interface for everything.
- cache_output
Should the node’s output be cached? If not provided or None, uses default based on settings (CACHE_NODE_OUTPUT_DEFAULT for general Nodes, and CACHE_DATASOURCE_OUTPUT_DEFAULT for DataSource nodes). If True, outputs will be cached and retrieved from cache. If False, outputs will not be cached OR retrieved from cache (even if they exist in cache).
- Type:
bool
- force_eval
Default is False. Should the node’s cached output be updated from the source data? If True it ignores the cache when computing outputs but puts results into the cache (thereby updating the cache)
- Type:
bool
- cache_ctrl
Class that controls caching. If not provided, uses default based on settings.
- Type:
podpac.core.cache.cache.CacheCtrl
- dtype
The numpy datatype of the output. Currently only
float
is supported.- Type:
type
- style
Object discribing how the output of a node should be displayed. This attribute is planned for deprecation in the future.
- Type:
podpac.Style
- units
The units of the output data. Must be pint compatible.
- Type:
str
- outputs
For multiple-output nodes, the names of the outputs. Default is
None
for standard nodes.- Type:
list
- output
For multiple-output nodes only, specifies a particular output to evaluate, if desired. Must be one of
outputs
.- Type:
str
Notes
- Additional attributes are available for debugging after evaluation, including:
_requested_coordinates
: the requested coordinates of the most recent call to eval_output
: the output of the most recent call to eval_from_cache
: whether the most recent call to eval used the cache_multi_threaded
: whether the most recent call to eval was executed using multiple threads
Alternative Constructors
from_definition
(definition)Create podpac Node from a dictionary definition.
from_json
(s)Create podpac Node from a JSON definition.
Methods
__init__
(**kwargs)Do not overwrite me
create_output_array
(coords[, data, attrs, ...])Initialize an output data array
eval
(coordinates, **kwargs)Evaluate the node at the given coordinates.
eval_group
(group)Evaluate the node for each of the coordinates in the group.
Get all available coordinates for the Node.
from_name_params
(name[, params])Create podpac Node from a WMS/WCS request.
from_url
(url)Create podpac Node from a WMS/WCS request.
get_bounds
([crs])Get the full available coordinate bounds for the Node.
get_cache
(key[, coordinates])Get cached data for this node.
get_ui_spec
([help_as_html])Get spec of node attributes for building a ui
has_cache
(key[, coordinates])Check for cached data for this node.
init
()Overwrite this method if a node needs to do any additional initialization after the standard initialization.
load
(path)Create podpac Node from file.
probe
([lat, lon, time, alt, crs])Evaluates every part of a node / pipeline at a point and records which nodes are actively being used.
put_cache
(data, key[, coordinates, expires, ...])Cache data for this node.
rem_cache
(key[, coordinates, mode])Clear cached data for this node.
save
(path)Write node to file.
trait_defaults
(*names, **metadata)Return a trait's default value or a dictionary of them
trait_has_value
(name)Returns True if the specified trait has a value.
trait_is_defined
(name)trait_values
(**metadata)A
dict
of trait names and their values.Attributes
List of node attributes
Default reference/name in node definitions
A trait whose value must be an instance of a specified class.
A boolean (True, False) trait.
An enum whose value must be in a given sequence.
A boolean (True, False) trait.
Definition for this node in JSON format.
Definition for this node in JSON format, with indentation suitable for display.
A trait for unicode strings.
An instance of a Python list.
A trait whose value must be an instance of a specified class.
A trait for unicode strings.
- Members:
- property attrs
List of node attributes
- property base_ref
Default reference/name in node definitions
- Returns:
Name of the node in node definitions
- Return type:
str
- cache_ctrl
A trait whose value must be an instance of a specified class.
The value can also be an instance of a subclass of the specified class.
Subclasses can declare default classes by overriding the klass attribute
- cache_output
A boolean (True, False) trait.
- create_output_array(coords, data=nan, attrs=None, outputs=None, **kwargs)[source]
Initialize an output data array
- Parameters:
coords (podpac.Coordinates) – Input to UnitsDataArray (i.e. an xarray coords dictionary/list)
data (None, number, or array-like (optional)) –
- How to initialize the array. Options are:
nan: uses np.full(…, np.nan) (Default option) empty: uses np.empty zeros: uses np.zeros() ones: uses np.ones full: uses np.full(…, fillval) data: uses the fillval as the input array
attrs (dict) – Attributes to add to output – UnitsDataArray.create uses the ‘crs’ portion contained in here
outputs (list[string], optional) – Default is self.outputs. List of strings listing the outputs
**kwargs – Dictioary of any additional keyword arguments that will be passed to UnitsDataArray.
- Returns:
Unit-aware xarray DataArray of the desired size initialized using the method specified.
- Return type:
podpac.UnitsDataArray
- property definition
- dtype
An enum whose value must be in a given sequence.
- eval(coordinates, **kwargs)[source]
Evaluate the node at the given coordinates.
- Parameters:
coordinates (podpac.Coordinates) – The set of coordinates requested by a user. The Node will be evaluated using these coordinates.
**kwargs (**dict) – Additional key-word arguments passed down the node pipelines, used internally
- Returns:
output
podpac.UnitsDataArray
– Unit-aware xarray DataArray containing the results of the node evaluation.
- eval_group(group)[source]
Evaluate the node for each of the coordinates in the group.
- Parameters:
group (podpac.CoordinatesGroup) – Group of coordinates to evaluate.
- Returns:
outputs – evaluation output, list of UnitsDataArray objects
- Return type:
list
- find_coordinates()[source]
Get all available coordinates for the Node. Implemented in child classes.
- Returns:
coord_list – list of available coordinates (Coordinates objects)
- Return type:
list
- force_eval
A boolean (True, False) trait.
- classmethod from_definition(definition)[source]
Create podpac Node from a dictionary definition.
- Parameters:
d (dict) – node definition
- Returns:
podpac Node
- Return type:
See also
definition
node definition as a dictionary
from_json
create podpac node from a JSON definition
load
create a node from file
- classmethod from_json(s)[source]
Create podpac Node from a JSON definition.
- Parameters:
s (str) – JSON-formatted node definition
- Returns:
podpac Node
- Return type:
- classmethod from_name_params(name, params=None)[source]
Create podpac Node from a WMS/WCS request.
- Parameters:
name (str) – The name of the PODPAC Node / Layer
params (dict, optional) – Default is None. Dictionary of parameters to modify node attributes, style, or completely/partially define the node. This dictionary can either be a Node.definition or Node.definition[‘attrs’]. Node, the specified name always take precidence over anything defined in params (e.g. params[‘node’] won’t be used).
- Returns:
A full Node with sub-nodes based on the definition of the node from the node name and parameters
- Return type:
- classmethod from_url(url)[source]
Create podpac Node from a WMS/WCS request.
- Parameters:
url (str, dict) – The raw WMS/WCS request url, or a dictionary of query parameters
- Returns:
A full Node with sub-nodes based on the definition of the node from the URL
- Return type:
Notes
The request can specify the PODPAC node by four different mechanism:
Direct node name: PODPAC will look for an appropriate node in podpac.datalib
JSON definition passed using the ‘PARAMS’ query string: Need to specify the special LAYER/COVERAGE value of “%PARAMS%”
By pointing at the JSON definition retrievable with a http GET request: e.g. by setting LAYER/COVERAGE value to https://my-site.org/pipeline_definition.json
By pointing at the JSON definition retrievable from an S3 bucket that the user has access to: e.g by setting LAYER/COVERAGE value to s3://my-bucket-name/pipeline_definition.json
- get_bounds(crs='default')[source]
Get the full available coordinate bounds for the Node.
- Parameters:
crs (str) – Desired CRS for the bounds. If not specified, the default CRS in the podpac settings is used. Optional.
- Returns:
bounds (dict) – Bounds for each dimension. Keys are dimension names and values are tuples (min, max).
crs (str) – The CRS for the bounds.
- get_cache(key, coordinates=None)[source]
Get cached data for this node.
- Parameters:
key (str) – Key for the cached data, e.g. ‘output’
coordinates (podpac.Coordinates, optional) – Coordinates for which the cached data should be retrieved. Omit for coordinate-independent data.
- Returns:
data – The cached data.
- Return type:
any
- Raises:
NodeException – Cached data not found.
- classmethod get_ui_spec(help_as_html=False)[source]
Get spec of node attributes for building a ui
- Parameters:
help_as_html (bool, optional) – Default is False. If True, the docstrings will be converted to html before storing in the spec.
- Returns:
Spec for this node that is readily json-serializable
- Return type:
dict
- has_cache(key, coordinates=None)[source]
Check for cached data for this node.
- Parameters:
key (str) – Key for the cached data, e.g. ‘output’
coordinates (podpac.Coordinates, optional) – Coordinates for which the cached data should be retrieved. Omit for coordinate-independent data.
- Returns:
True if there is cached data for this node, key, and coordinates.
- Return type:
bool
- property hash
- init()[source]
Overwrite this method if a node needs to do any additional initialization after the standard initialization.
- property json
Definition for this node in JSON format.
- property json_pretty
Definition for this node in JSON format, with indentation suitable for display.
- classmethod load(path)[source]
Create podpac Node from file.
- Parameters:
path (str) – path to text file containing a JSON-formatted node definition
- Returns:
podpac Node
- Return type:
See also
save
save a node to file
- output
A trait for unicode strings.
- outputs
An instance of a Python list.
- probe(lat=None, lon=None, time=None, alt=None, crs=None)[source]
Evaluates every part of a node / pipeline at a point and records which nodes are actively being used.
- Parameters:
lat (float, optional) – Default is None. The latitude location
lon (float, optional) – Default is None. The longitude location
time (float, np.datetime64, optional) – Default is None. The time
alt (float, optional) – Default is None. The altitude location
crs (str, optional) – Default is None. The CRS of the request.
- Returns:
- A dictionary that contains the following for each node:
”active”: bool, # If the node is being used or not
”value”: float, # The value of the node evaluated at that point
”inputs”: list, # List of names of input nodes (based on definition)
”name”: str, # node.style.name or self.base_ref if the style name is empty
”node_hash”: str, # The node’s hash
- Return type:
dict
- put_cache(data, key, coordinates=None, expires=None, overwrite=True)[source]
Cache data for this node.
- Parameters:
data (any) – The data to cache.
key (str) – Unique key for the data, e.g. ‘output’
coordinates (podpac.Coordinates, optional) – Coordinates that the cached data depends on. Omit for coordinate-independent data.
expires (float, datetime, timedelta) – Expiration date. If a timedelta is supplied, the expiration date will be calculated from the current time.
overwrite (bool, optional) – Overwrite existing data, default True.
- Raises:
NodeException – Cached data already exists (and overwrite is False)
- rem_cache(key, coordinates=None, mode='all')[source]
Clear cached data for this node.
- Parameters:
key (str) – Delete cached objects with this key. If ‘*’, cached data is deleted for all keys.
coordinates (podpac.Coordinates, str, optional) – Default is None. Delete cached objects for these coordinates. If ‘*’, cached data is deleted for all coordinates, including coordinate-independent data. If None, will only affect coordinate-independent data.
mode (str, optional) – Specify which cache stores are affected. Default ‘all’.
See also
None
- save(path)[source]
Write node to file.
- Parameters:
path (str) – path to write to
See also
load
load podpac Node from file.
- style
A trait whose value must be an instance of a specified class.
The value can also be an instance of a subclass of the specified class.
Subclasses can declare default classes by overriding the klass attribute
- units
A trait for unicode strings.