podpac.datalib.SMAPSource

class podpac.datalib.SMAPSource(**kwargs)[source]

Bases: podpac.core.data.types.PyDAP

Accesses SMAP data given a specific openDAP URL. This is the base class giving access to SMAP data, and knows how to extract the correct coordinates and data keys for the soil moisture data.

auth_class

Class used to make an authenticated session from a username and password (both are defined in base class)

Type

EarthDataSession (Class object)

auth_session

Authenticated session used to make http requests usingNASA Earth Data Login credentials

Type

Instance(EarthDataSession)

date_file_url_re

Regular expression used to retrieve date from self.source (OpenDAP Url)

Type

SRE_Pattern

date_time_file_url_re

Regular expression used to retrieve date and time from self.source (OpenDAP Url)

Type

SRE_Pattern

layerkey

Key used to retrieve data from OpenDAP dataset. This specifies the key used to retrieve the data

Type

str

nan_vals

List of values that should be treated as no-data (these are replaced by np.nan)

Type

list

rootdatakey

String the prepends every or most keys for data in the OpenDAP dataset

Type

str

Methods

__init__(**kwargs)

Do not overwrite me

create_output_array(coords[, data])

Initialize an output data array

eval(coordinates[, output])

Evaluates this node using the supplied coordinates.

eval_group(group)

Evaluate the node for each of the coordinates in the group.

find_coordinates()

Get the available native coordinates for the Node.

get_available_times()

Retrieve the available times from the SMAP file.

get_cache(key[, coordinates])

Get cached data for this node.

get_data(coordinates, coordinates_index)

This method must be defined by the data source implementing the DataSource class.

get_native_coordinates()

Returns a Coordinates object that describes the native coordinates of the data source.

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.

put_cache(data, key[, coordinates, overwrite])

Cache data for this node.

rem_cache(key[, coordinates, mode])

Clear cached data for this node.

Attributes

auth_class

A trait whose value must be a subclass of a specified class.

auth_session

A trait whose value must be an instance of a specified class.

base_definition

Base node defintion for DataSource nodes.

base_ref

Default pipeline node reference/name in pipeline node definitions

cache_ctrl

A trait whose value must be an instance of a specified class.

cache_output

A boolean (True, False) trait.

cache_update

A boolean (True, False) trait.

coordinate_index_type

An enum whose value must be in a given sequence.

datakey

A trait for unicode strings.

dataset

A trait whose value must be an instance of a specified class.

date_file_url_re

date_time_file_url_re

definition

Full pipeline definition for this node.

dtype

A trait which allows any value.

hash

interpolation

A trait type representing a Union type.

interpolation_class

Get the interpolation class currently set for this data source.

interpolators

Return the interpolators selected for the previous node evaluation interpolation.

json

definition for this node in json format

json_pretty

keys

The list of available keys from the OpenDAP dataset.

latkey

The key used to retrieve the latitude

layerkey

A trait for unicode strings.

lonkey

The key used to retrieve the latitude

nan_vals

native_coordinates

A trait whose value must be an instance of a specified class.

password

A trait for unicode strings.

pipeline

Create a pipeline node from this node

product

Returns the SMAP product from the OpenDAP Url

rootdatakey

A trait for unicode strings.

source

A trait for unicode strings.

style

A trait whose value must be an instance of a specified class.

units

A trait for unicode strings.

username

A trait for unicode strings.

version

Returns the SMAP product version from the OpenDAP Url

Members

__init__(**kwargs)

Do not overwrite me

auth_class

A trait whose value must be a subclass of a specified class.

auth_session

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

date_file_url_re = re.compile('[0-9]{8}')
date_time_file_url_re = re.compile('[0-9]{8}T[0-9]{6}')
get_available_times()[source]

Retrieve the available times from the SMAP file. This is primarily based on the filename, but some products have multiple times stored in a single file.

Returns

Available times in the SMAP source

Return type

np.ndarray(dtype=np.datetime64)

get_data(coordinates, coordinates_index)[source]

This method must be defined by the data source implementing the DataSource class. When data source nodes are evaluated, this method is called with request coordinates and coordinate indexes. The implementing method can choose which input provides the most efficient method of getting data (i.e via coordinates or via the index of the coordinates).

Coordinates and coordinate indexes may be strided or subsets of the source data, but all coordinates and coordinate indexes will match 1:1 with the subset data.

This method may return a numpy array, an xarray DaraArray, or a podpac UnitsDataArray. If a numpy array or xarray DataArray is returned, podpac.data.DataSource.evaluate() will cast the data into a UnitsDataArray using the requested source coordinates. If a podpac UnitsDataArray is passed back, the podpac.data.DataSource.evaluate() method will not do any further processing. The inherited Node method create_output_array can be used to generate the template UnitsDataArray in your DataSource. See podpac.Node.create_output_array() for more details.

Parameters
  • coordinates (podpac.Coordinates) – The coordinates that need to be retrieved from the data source using the coordinate system of the data source

  • coordinates_index (List) – A list of slices or a boolean array that give the indices of the data that needs to be retrieved from the data source. The values in the coordinate_index will vary depending on the coordinate_index_type defined for the data source.

Returns

A subset of the returned data. If a numpy array or xarray DataArray is returned, the data will be cast into UnitsDataArray using the returned data to fill values at the requested source coordinates.

Return type

np.ndarray, xr.DataArray, podpac.UnitsDataArray

get_native_coordinates()[source]

Returns a Coordinates object that describes the native coordinates of the data source.

In most cases, this method is defined by the data source implementing the DataSource class. If method is not implemented by the data source, it will try to return self.native_coordinates if self.native_coordinates is not None.

Otherwise, this method will raise a NotImplementedError.

Returns

The coordinates describing the data source array.

Return type

podpac.Coordinates

Notes

Need to pay attention to: - the order of the dimensions - the stacking of the dimension - the type of coordinates

Coordinates should be non-nan and non-repeating for best compatibility

property latkey

The key used to retrieve the latitude

Returns

OpenDap dataset key for latitude

Return type

str

layerkey

A trait for unicode strings.

property lonkey

The key used to retrieve the latitude

Returns

OpenDap dataset key for longitude

Return type

str

nan_vals = [-9999.0]
property product

Returns the SMAP product from the OpenDAP Url

Returns

{product}

Return type

str

rootdatakey

A trait for unicode strings.

property version

Returns the SMAP product version from the OpenDAP Url

Returns

{version}

Return type

int