def setUp(self): lat, lon = np.arange(180) - 90, np.arange(360) - 180 self.lats, self.lons = np.meshgrid(lat, lon) self.lats, self.lons = self.lats.flatten(), self.lons.flatten() self.cells = grids.lonlat2cell(self.lons, self.lats) self.subset = np.sort(np.random.choice(np.arange(self.lats.size), size=500, replace=False)) self.basic = grids.BasicGrid(self.lons, self.lats, subset=self.subset, shape=(360, 180)) self.basic_shape_gpis = grids.BasicGrid(self.lons, self.lats, gpis=np.arange(self.lats.size), subset=self.subset, shape=(360, 180)) self.basic_generated = grids.genreg_grid(1, 1) self.basic_irregular = grids.BasicGrid(np.random.random(360 * 180) * 360 - 180, np.random.random( 360 * 180) * 180 - 90, subset=self.subset) self.cellgrid = grids.CellGrid(self.lons, self.lats, self.cells, subset=self.subset) self.cellgrid_shape = grids.CellGrid(self.lons, self.lats, self.cells, subset=self.subset, shape=(360, 180)) self.testfile = tempfile.NamedTemporaryFile().name
def test_genreggrid(): """ Test generation of regular grids. """ grid = grids.genreg_grid() assert grid.shape == (360, 180) lon, lat = grid.gpi2lonlat(3) assert lon == -176.5 assert lat == 89.5
def test_genreggrid(): """ Test generation of regular grids. """ grid = grids.genreg_grid() assert grid.shape == (180, 360) lon, lat = grid.gpi2lonlat(3) assert lon == -176.5 assert lat == 89.5 lon, lat = grid.gpi2lonlat(360) assert lon == -179.5 assert lat == 88.5
def __init__(self, path, grid=None, times=None, time_bnds=None, reference_time=datetime(1900, 1, 1, 0, 0), resolution=(0.25, 0.25)): """ Cell Data Class uses xarray to write dictionaries of data to specified GPIS. Parameters ------- path : str Path to which the cell files are saved grid: regular grid, optional (default: None -> create one) Input regular grid on which the passed GPIs are, if not passed, we generate a regular grid with the passed resolution times: list, optional (default: None) Datetimes for which images are saved time_bnds : tuple, optional (default: None) NOT IMPLEMENTED Time boundaries, to use for each time. To not use boundaries pass None. First element are the boundary starts, second the ends. reference_time: datetime, optional (default: 1900-01-01 00:00) Reference for creating floats from datetimes resolution: tuple, optional (default: 0.25 * 0.25 Degree) Resolution of the regular grid (lat,lon) """ self.cell_files_path = path if not os.path.exists(self.cell_files_path): os.makedirs(self.cell_files_path) self.times = times self.time_bnds = time_bnds if self.time_bnds is not None: raise NotImplementedError self.reference_date = reference_time self.global_grid = grids.genreg_grid(*resolution).to_cell_grid(5.) if not grid: self.grid = self.global_grid else: self.grid = grid self._reset()
def setUp(self): self.grid = grids.genreg_grid(1, 1)