deltametrics.section.RadialSection¶
-
class
deltametrics.section.
RadialSection
(*args, azimuth=None, origin=None, length=None, **kwargs)¶ Radial section object.
Section drawn as a radial cut, located a along the line starting from origin and proceeding away in direction specified by azimuth. Specify the location of the radial section with :obj`azimuth` and
origin
keyword parameter options. The radial section trace is interpolated to the nearest integer model domain cells, following the a line-walking algorithm (line_to_cells
).Important
The origin parameter must be specified as cell indices (not actual x and y coordinate values). This is a needed patch.
Important
The origin attempts to detect the land width from bed elevation changes, but should use the value of
L0
recorded in the netcdf file, or defined in the cube.Important
This Section type will only work for deltas with an inlet along the
y=0
line. For other delta configurations, specify a radial section by defining two end points and instantiating a Section with thePathSection
.- Parameters
*args (
DataCube
or StratigraphyCube) – The Cube object to link for underlying data. This option should be ommitted if using theregister_section
method of a Cube.azimuth (
float
, int, optional) – The azimuth of the section, directed away from the origin. If no value is given, the azimuth defaults to90
.origin (
tuple
or list of int, optional) – The origin of the radial section. This is the “start” of the radial line. If no value is given, the origin defaults to the center of the x-direction of the model domain, and offsets into the domain a distance ofy == L0
, if these values can be determined. I.e., the origin defaults to be centered over the channel inlet. If no value is given and these values cannot be determined, the origin defaults to(0, 0)
.length (
float
, int, optional) – The length of the section (note this must be given in pixel length). If no value is given, the length defaults to the length required to reach a model boundary (if a connection to underlying Cube exists). Otherwise, length is set to1
.**kwargs – Keyword arguments are passed to BaseSection.__init__(). Supported options are name.
- Returns
section – RadialSection object with specified parameters. The section is automatically connected to the underlying Cube data source if the
register_section
method of a Cube is used to set up the section, or the Cube is passed as the first positional argument during instantiation.- Return type
Examples
To create a RadialSection that is registered to a DataCube at specified origin coordinate, and spans the entire model domain:
>>> rcm8cube = dm.sample_data.rcm8() >>> rcm8cube.register_section('radial', dm.section.RadialSection(azimuth=45)) >>> >>> # show the location and the "velocity" variable >>> fig, ax = plt.subplots(2, 1, figsize=(8, 4)) >>> rcm8cube.show_plan('eta', t=-1, ax=ax[0], ticks=True) >>> rcm8cube.sections['radial'].show_trace('r--', ax=ax[0]) >>> rcm8cube.sections['radial'].show('velocity', ax=ax[1]) >>> plt.show()
-
__init__
(*args, azimuth=None, origin=None, length=None, **kwargs)¶ Identify coordinates defining the section.
- Parameters
CubeInstance (
Cube
subclass instance, optional) – Connect to this cube. No connection is made if cube is not provided.
Notes
If no arguments are passed, an empty section not connected to any cube is returned. This cube will will need to be manually connected to have any functionality (via the
connect()
method).
Methods
__init__
(*args[, azimuth, origin, length])Identify coordinates defining the section.
connect
(CubeInstance[, name])Connect this Section instance to a Cube instance.
show
(SectionAttribute[, style, data, label, …])Show the section.
show_trace
(*args[, ax])Plot section trace (x-y plane path).
Attributes
name
Along-section coordinate.
Section shape.
Stratigraphic attributes data object.
Coordinates of the section in the x-y plane.
List of variables.
Up-section (vertical) coordinate.
-
__getitem__
(var)¶ Get a slice of the section.
Slicing the section instance creates a
SectionVariable
instance from data for variablevar
.Note
We only support slicing by string.
- Parameters
var (
str
) – Which variable to slice.- Returns
SectionVariable – SectionVariable instance for variable
var
.- Return type
SectionVariable
instance
-
connect
(CubeInstance, name=None)¶ Connect this Section instance to a Cube instance.
-
s
¶ Along-section coordinate.
-
shape
¶ Section shape.
Simply a tuple equivalent to
(len(z), len(s))
-
show
(SectionAttribute, style='shaded', data=None, label=False, colorbar=True, colorbar_label=False, ax=None)¶ Show the section.
Method enumerates convenient routines for visualizing sections of data and stratigraphy. Includes support for multiple data style and mutuple data choices as well.
Note
The colors for style=’lines’ are determined from the left-end edge node, and colors for the style=’shaded’ mesh are determined from the lower-left-end edge node of the quad.
- Parameters
SectionAttribute (
str
) – Which attribute to show.style (
str
, optional) – What style to display the section with. Choices are ‘mesh’ or ‘line’.data (
str
, optional) – Argument passed toget_display_arrays
orget_display_lines
. Supported options are ‘spacetime’, ‘preserved’, and ‘stratigraphy’. Default is to display full spacetime plot for section generated from a DataCube, and stratigraphy for a StratigraphyCube section.label (
bool
, str, optional) – Display a label of the variable name on the plot. Default is False, display nothing. Iflabel=True
, the label name from theVariableSet
is used. Other arguments are attempted to coerce to str, and the literal is diplayed.colorbar (
bool
, optional) – Whether a colorbar is appended to the axis.colorbar_label (
bool
, str, optional) – Display a label of the variable name along the colorbar. Default is False, display nothing. Iflabel=True
, the label name from theVariableSet
is used. Other arguments are attempted to coerce to str, and the literal is diplayed.ax (
Axes
object, optional) – A matplotlib Axes object to plot the section. Optional; if not provided, a call is made toplt.gca()
to get the current (or create a new) Axes object.
Examples
Example 1: Display the velocity spacetime section of a DataCube.
>>> rcm8cube = dm.sample_data.rcm8() >>> rcm8cube.register_section('demo', dm.section.StrikeSection(y=5)) >>> rcm8cube.sections['demo'].show('velocity')
Note that the last line above is functionally equivalent to
rcm8cube.show_section('demo', 'velocity')
.Example 2: Display a section, with “quick” stratigraphy, as the depth attribute, displaying several different section styles.
>>> rcm8cube = dm.sample_data.rcm8() >>> rcm8cube.stratigraphy_from('eta') >>> rcm8cube.register_section('demo', dm.section.StrikeSection(y=5)) >>> fig, ax = plt.subplots(4, 1, sharex=True, figsize=(6, 9)) >>> rcm8cube.sections['demo'].show('depth', data='spacetime', ... ax=ax[0], label='spacetime') >>> rcm8cube.sections['demo'].show('depth', data='preserved', ... ax=ax[1], label='preserved') >>> rcm8cube.sections['demo'].show('depth', data='stratigraphy', ... ax=ax[2], label='quick stratigraphy') >>> rcm8cube.sections['demo'].show('depth', style='lines', data='stratigraphy', ... ax=ax[3], label='quick stratigraphy')
-
show_trace
(*args, ax=None, **kwargs)¶ Plot section trace (x-y plane path).
Plot the section trace (
trace
) onto an x-y planview.- Parameters
*args – Passed to matplotlib
plot()
.ax (
Axes
object, optional) – A matplotlib Axes object to plot the trace. Optional; if not provided, a call is made toplt.gca()
to get the current (or create a new) Axes object.**kwargs – Passed to matplotlib
plot()
.
-
strat_attr
¶ Stratigraphic attributes data object.
- Raises
NoStratigraphyError – If no stratigraphy information is found for the section.
-
trace
¶ Coordinates of the section in the x-y plane.
-
variables
¶ List of variables.
-
z
¶ Up-section (vertical) coordinate.