| 246 | number = 5 |
| 247 | |
| 248 | def make_ds(self, nfiles=10): |
| 249 | # multiple Dataset |
| 250 | self.ds = xr.Dataset() |
| 251 | self.nt = 1000 |
| 252 | self.nx = 90 |
| 253 | self.ny = 45 |
| 254 | self.nfiles = nfiles |
| 255 | |
| 256 | self.block_chunks = { |
| 257 | "time": self.nt / 4, |
| 258 | "lon": self.nx / 3, |
| 259 | "lat": self.ny / 3, |
| 260 | } |
| 261 | |
| 262 | self.time_chunks = {"time": int(self.nt / 36)} |
| 263 | |
| 264 | self.time_vars = np.split( |
| 265 | pd.date_range("1970-01-01", periods=self.nt, freq="D"), self.nfiles |
| 266 | ) |
| 267 | |
| 268 | self.ds_list = [] |
| 269 | self.filenames_list = [] |
| 270 | for i, times in enumerate(self.time_vars): |
| 271 | ds = xr.Dataset() |
| 272 | nt = len(times) |
| 273 | lons = xr.DataArray( |
| 274 | np.linspace(0, 360, self.nx), |
| 275 | dims=("lon",), |
| 276 | attrs={"units": "degrees east", "long_name": "longitude"}, |
| 277 | ) |
| 278 | lats = xr.DataArray( |
| 279 | np.linspace(-90, 90, self.ny), |
| 280 | dims=("lat",), |
| 281 | attrs={"units": "degrees north", "long_name": "latitude"}, |
| 282 | ) |
| 283 | ds["foo"] = xr.DataArray( |
| 284 | randn((nt, self.nx, self.ny), frac_nan=0.2), |
| 285 | coords={"lon": lons, "lat": lats, "time": times}, |
| 286 | dims=("time", "lon", "lat"), |
| 287 | name="foo", |
| 288 | attrs={"units": "foo units", "description": "a description"}, |
| 289 | ) |
| 290 | ds["bar"] = xr.DataArray( |
| 291 | randn((nt, self.nx, self.ny), frac_nan=0.2), |
| 292 | coords={"lon": lons, "lat": lats, "time": times}, |
| 293 | dims=("time", "lon", "lat"), |
| 294 | name="bar", |
| 295 | attrs={"units": "bar units", "description": "a description"}, |
| 296 | ) |
| 297 | ds["baz"] = xr.DataArray( |
| 298 | randn((self.nx, self.ny), frac_nan=0.2).astype(np.float32), |
| 299 | coords={"lon": lons, "lat": lats}, |
| 300 | dims=("lon", "lat"), |
| 301 | name="baz", |
| 302 | attrs={"units": "baz units", "description": "a description"}, |
| 303 | ) |
| 304 | |
| 305 | ds.attrs = {"history": "created for xarray benchmarking"} |