def test_grid_wind_curv(): # curvlinear grid curv = Grid(wind_file, topology_file, grid_type=2) time = date_to_sec(datetime(2006, 3, 31, 21)) vel = curv.get_value(time, (-122.934656, 38.27594)) print "Curv grid - vel: {0}\n".format(vel) assert vel.item() != 0
def __init__(self, wind_file=None, topology_file=None, grid_type=1, drift_angle=0, extrapolation_is_allowed=False, time_offset=0, **kwargs): """ :param wind_file: file containing wind data on a grid :param topology_file: Default is None. When exporting topology, it is stored in this file :param wind_scale: Value to scale wind data :param extrapolate: Allow current data to be extrapolated before and after file data :param time_offset: Time zone shift if data is in GMT Pass optional arguments to base class uses super: super(ShipDriftMover,self).__init__(\*\*kwargs) """ if not os.path.exists(wind_file): raise ValueError( 'Path for wind file does not exist: {0}'.format(wind_file)) if topology_file is not None: if not os.path.exists(topology_file): raise ValueError( 'Path for Topology file does not exist: {0}'.format( topology_file)) # is wind_file and topology_file is stored with cy_gridwind_mover? self.wind_file = wind_file self.topology_file = topology_file self.name = os.path.split(wind_file)[1] self.drift_angle = drift_angle self._wind_scale = kwargs.pop('wind_scale', 1) self.grid_type = grid_type self.grid = Grid(wind_file, topology_file, grid_type) self.mover = Mover() super(ShipDriftMover, self).__init__(**kwargs) # have to override any uncertainty # self.grid.load_data(wind_file, topology_file) self.model_time = 0 self.positions = np.zeros((0, 3), dtype=world_point_type) self.delta = np.zeros((0, 3), dtype=world_point_type) self.status_codes = np.zeros((0, 1), dtype=status_code_type) self.array_types.update( {'windages', 'windage_range', 'windage_persist'})
def test_grid_wind_rect(): ''' check TimeGridWindRect correctly parses data ''' idx = 5 file_ = testdata['GridWindMover']['wind_rect'] with nc.Dataset(file_) as data: time = nc.num2date(data.variables['time'][idx], units=data.variables['time'].units) long_lat = (data.variables['lon'][idx], data.variables['lat'][idx]) exp_vel = (data.variables['air_u'][idx][idx][idx], data.variables['air_v'][idx][idx][idx]) rect = Grid(file_) time = date_to_sec(time) vel = rect.get_value(time, long_lat) print "\nRect grid - vel: {0}".format(vel) print "Rect grid - expected_vel: {0}".format(exp_vel) assert (vel.item() == exp_vel)