def __init__(self, angle=None, **kwargs): """ :param angle: scalar field of cell rotation angles (for rotated/distorted grids) """ if 'variables' in kwargs: variables = kwargs['variables'] if len(variables) == 2: variables.append( TimeseriesData(name='constant w', data=[0.0], time=Time.constant_time(), units='m/s')) kwargs['variables'] = variables if angle is None: df = None if kwargs.get('dataset', None) is not None: df = kwargs['dataset'] elif kwargs.get('grid_file', None) is not None: df = gridded.utilities.get_dataset(kwargs['grid_file']) if df is not None and 'angle' in df.variables.keys(): # Unrotated ROMS Grid! self.angle = Variable(name='angle', units='radians', time=Time.constant_time(), grid=kwargs['grid'], data=df['angle']) else: self.angle = None else: self.angle = angle super(VelocityGrid, self).__init__(**kwargs)
def constant( cls, name=None, units=None, data=None, ): if any(var is None for var in (name, data, units)): raise ValueError("name, data, or units may not be None") if not isinstance(data, Number): raise TypeError('{0} data must be a number'.format(name)) t = Time.constant_time() return cls(name=name, units=units, time=t, data=[data])
def __init__(self, angle=None, **kwargs): """ :param angle: scalar field of cell rotation angles (for rotated/distorted grids) """ if 'variables' in kwargs: variables = kwargs['variables'] if len(variables) == 2: variables.append(TimeseriesData(name='constant w', data=[0.0], time=Time.constant_time(), units='m/s')) kwargs['variables'] = variables if angle is None: df = None if kwargs.get('dataset', None) is not None: df = kwargs['dataset'] elif kwargs.get('grid_file', None) is not None: df = gridded.utilities.get_dataset(kwargs['grid_file']) if df is not None and 'angle' in df.variables.keys(): # Unrotated ROMS Grid! self.angle = Variable(name='angle', units='radians', time=Time.constant_time(), grid=kwargs['grid'], data=df['angle']) else: self.angle = None else: self.angle = angle super(VelocityGrid, self).__init__(**kwargs)
from gnome.outputters import Renderer from gnome.outputters import NetCDFOutput from gnome.tamoc import tamoc_spill # define base directory base_dir = os.path.dirname(__file__) x, y = np.mgrid[-30:30:61j, -30:30:61j] y = np.ascontiguousarray(y.T) x = np.ascontiguousarray(x.T) # y += np.sin(x) / 1 # x += np.sin(x) / 5 g = Grid_S(node_lon=x, node_lat=y) g.build_celltree() t = Time.constant_time() angs = -np.arctan2(y, x) mag = np.sqrt(x ** 2 + y ** 2) vx = np.cos(angs) * mag vy = np.sin(angs) * mag vx = vx[np.newaxis, :] * 5 vy = vy[np.newaxis, :] * 5 vels_x = Variable(name='v_x', units='m/s', time=t, grid=g, data=vx) vels_y = Variable(name='v_y', units='m/s', time=t, grid=g, data=vy) vg = GridCurrent(variables=[vels_y, vels_x], time=t, grid=g, units='m/s') def make_model(images_dir=os.path.join(base_dir, 'images')): print 'initializing the model'