示例#1
0
    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
示例#2
0
    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
示例#3
0
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
示例#4
0
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
示例#5
0
    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()
示例#6
0
 def setUp(self):
     self.grid = grids.genreg_grid(1, 1)
示例#7
0
 def setUp(self):
     self.grid = grids.genreg_grid(1, 1)