本文整理汇总了Python中landlab.HexModelGrid.set_closed_boundaries_at_grid_edges方法的典型用法代码示例。如果您正苦于以下问题:Python HexModelGrid.set_closed_boundaries_at_grid_edges方法的具体用法?Python HexModelGrid.set_closed_boundaries_at_grid_edges怎么用?Python HexModelGrid.set_closed_boundaries_at_grid_edges使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类landlab.HexModelGrid
的用法示例。
在下文中一共展示了HexModelGrid.set_closed_boundaries_at_grid_edges方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: CTSModel
# 需要导入模块: from landlab import HexModelGrid [as 别名]
# 或者: from landlab.HexModelGrid import set_closed_boundaries_at_grid_edges [as 别名]
#.........这里部分代码省略.........
"""Setup one or more closed boundaries for a hex grid.
Parameters
----------
closed_boundaries : 4-element tuple of bool\
Whether right, top, left, and bottom edges have closed nodes
Examples
--------
>>> from grainhill import CTSModel
>>> cm = CTSModel(closed_boundaries=(True, True, True, True))
>>> cm.grid.status_at_node
array([4, 4, 4, 4, 4, 4, 0, 4, 0, 0, 4, 0, 4, 0, 0, 4, 0, 4, 0, 0, 4, 4,
4, 4, 4], dtype=uint8)
"""
g = self.grid
if closed_boundaries[0]:
g.status_at_node[g.nodes_at_right_edge] = CLOSED_BOUNDARY
if closed_boundaries[1]:
g.status_at_node[g.nodes_at_top_edge] = CLOSED_BOUNDARY
if closed_boundaries[2]:
g.status_at_node[g.nodes_at_left_edge] = CLOSED_BOUNDARY
if closed_boundaries[3]:
g.status_at_node[g.nodes_at_bottom_edge] = CLOSED_BOUNDARY
def create_grid_and_node_state_field(self, num_rows, num_cols,
grid_orientation, grid_shape,
cts_type, closed_bounds):
"""Create the grid and the field containing node states."""
if cts_type == 'raster' or cts_type == 'oriented_raster':
from landlab import RasterModelGrid
self.grid = RasterModelGrid(shape=(num_rows, num_cols),
spacing=1.0)
self.grid.set_closed_boundaries_at_grid_edges(closed_bounds[0],
closed_bounds[1],
closed_bounds[2],
closed_bounds[3])
else:
from landlab import HexModelGrid
self.grid = HexModelGrid(num_rows, num_cols, 1.0,
orientation=grid_orientation,
shape=grid_shape)
if True in closed_bounds:
self._set_closed_boundaries_for_hex_grid(closed_bounds)
self.grid.add_zeros('node', 'node_state', dtype=int)
def node_state_dictionary(self):
"""Create and return a dictionary of all possible node (cell) states.
This method creates a default set of states (just two); it is a
template meant to be overridden.
"""
ns_dict = { 0 : 'on',
1 : 'off'}
return ns_dict
def transition_list(self):
"""Create and return a list of transition objects.
This method creates a default set of transitions (just two); it is a
template meant to be overridden.
"""
xn_list = []
xn_list.append(Transition((0, 1, 0), (1, 0, 0), 1.0))
xn_list.append(Transition((1, 0, 0), (0, 1, 0), 1.0))
return xn_list
def write_output(self, grid, outfilename, iteration):
"""Write output to file (currently netCDF)."""
filename = outfilename + str(iteration).zfill(4) + '.nc'
save_grid(grid, filename)
def initialize_node_state_grid(self):
"""Initialize values in the node-state grid.
This method should be overridden. The default is random "on" and "off".
"""
num_states = 2
for i in range(self.grid.number_of_nodes):
self.grid.at_node['node_state'][i] = random.randint(num_states)
return self.grid.at_node['node_state']
def initialize_plotting(self, **kwds):
"""Create and configure CAPlotter object."""
self.ca_plotter = CAPlotter(self.ca, **kwds)
self.ca_plotter.update_plot()
axis('off')
def run_for(self, dt):
self.ca.run(self.ca.current_time + dt, self.ca.node_state)