Ejemplo n.º 1
0
    def test_construction(self):

        u = GriddedProp(name='u',
                        units='m/s',
                        data=grid_u,
                        grid=test_grid,
                        time=grid_time,
                        data_file='tbofs_example.nc',
                        grid_file='tbofs_example.nc')
        with pytest.raises(ValueError):
            u = GriddedProp(
                name='u',
                units='m/s',
                data=None,  #NO DATA
                grid=test_grid,
                time=grid_time,
                data_file='tbofs_example.nc',
                grid_file='tbofs_example.nc')
        with pytest.raises(ValueError):
            u = GriddedProp(
                name='u',
                units='m/s',
                data=grid_u,
                grid=None,  #NO GRID
                time=grid_time,
                data_file='tbofs_example.nc',
                grid_file='tbofs_example.nc')
        with pytest.raises(ValueError):
            u = GriddedProp(
                name='u',
                units='m/s',
                data=u_data,  #BAD DATA SHAPE
                grid=test_grid,
                time=grid_time,
                data_file='tbofs_example.nc',
                grid_file='tbofs_example.nc')
        with pytest.raises(ValueError):
            u = GriddedProp(
                name='u',
                units='m/s',
                data=grid_u,
                grid=test_grid,
                time=dates2,  #BAD TIME SHAPE
                data_file='tbofs_example.nc',
                grid_file='tbofs_example.nc')

        topology = {'node_lon': 'lonc', 'node_lat': 'latc'}
        k = GriddedProp.from_netCDF(name='u',
                                    grid_file=curr_file,
                                    grid_topology=topology,
                                    data_file=curr_file,
                                    varname='water_u')
        assert k.name == u.name
        assert k.units == 'meter second-1'
        assert k.time == u.time
        assert k.data[0, 0, 0] == u.data[0, 0, 0]
Ejemplo n.º 2
0
 def __init__(self,
              name=None,
              units=None,
              time=None,
              variables=None,
              grid=None,
              grid_file=None,
              data_file=None,
              dataset=None):
     VelocityGrid.__init__(self,
                           name=name,
                           units=units,
                           time=time,
                           variables=variables,
                           grid=grid,
                           grid_file=grid_file,
                           data_file=data_file,
                           dataset=dataset)
     self.angle = None
     df = None
     if dataset is not None:
         df = dataset
     elif data_file is not None:
         df = _get_dataset(data_file)
     if df is not None and 'angle' in df.variables.keys():
         # Unrotated ROMS Grid!
         self.angle = GriddedProp(name='angle',
                                  units='radians',
                                  time=None,
                                  grid=self.grid,
                                  data=df['angle'])
Ejemplo n.º 3
0
def gp2():
    return GriddedProp(name='v;',
                       units='m/s',
                       time=grid_time,
                       data=grid_v,
                       data_file=curr_file,
                       grid=test_grid,
                       grid_file=curr_file)
Ejemplo n.º 4
0
 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(TimeSeriesProp(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 = _get_dataset(kwargs['grid_file'])
         if df is not None and 'angle' in df.variables.keys():
             # Unrotated ROMS Grid!
             self.angle = GriddedProp(name='angle', units='radians', time=None, grid=kwargs['grid'], data=df['angle'])
         else:
             self.angle = None
     else:
         self.angle = angle
     super(VelocityGrid, self).__init__(**kwargs)
Ejemplo n.º 5
0
vy = vy[np.newaxis, :] * 20
# vx = 1/x[np.newaxis,:]
# vy = 1/y[np.newaxis,:]
# vx[vx == np.inf] = 0
# vy[vy == np.inf] = 0
# vx = vx/mag *30
# vy = vy/mag *30
# v_x = vx.copy()
# v_y - vy.copy()
# sl = [0,0:30,31:61]
# v_x = vx[:,0] * np.cos(angs) - value[:,1] * np.sin(angs)
# y = value[:,0] * np.sin(angs) + value[:,1] * np.cos(angs)
# value[:,0] = x
# value[:,1] = y

vels_x = GriddedProp(name='v_x', units='m/s', time=[t], grid=g, data=vx)
vels_y = GriddedProp(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')
point = np.zeros((1, 2))
print vg.at(point, t)

# define base directory
base_dir = os.path.dirname(__file__)


def make_model():
    duration_hrs = 48
    time_step = 900
    num_steps = duration_hrs * 3600 / time_step
    mod = Model(start_time=t,
                duration=timedelta(hours=duration_hrs),
Ejemplo n.º 6
0
    pp.pprint(velfromsave)

    velfromsave.at(np.array([(0, 0)]), datetime(2000, 1, 1, 0, 0))

    url = (
        'http://geoport.whoi.edu/thredds/dodsC/clay/usgs/users/jcwarner/Projects/Sandy/triple_nest/00_dir_NYB05.ncml'
    )
    test_grid = pysgrid.load_grid(url)
    grid_u = test_grid.u
    grid_v = test_grid.v
    grid_time = test_grid.ocean_time._data

    u2 = GriddedProp('u',
                     'm/s',
                     time=grid_time,
                     data=grid_u,
                     grid=test_grid,
                     data_file=url,
                     grid_file=url)
    v2 = GriddedProp('v',
                     'm/s',
                     time=grid_time,
                     data=grid_v,
                     grid=test_grid,
                     data_file=url,
                     grid_file=url)

    print "got here"

    #     pp.pprint(vel2.serialize())