MCPcopy
hub / github.com/pydata/xarray / make_ds

Method make_ds

asv_bench/benchmarks/dataset_io.py:248–308  ·  view source on GitHub ↗
(self, nfiles=10)

Source from the content-addressed store, hash-verified

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"}

Callers

nothing calls this directly

Calls 4

randnFunction · 0.85
splitMethod · 0.80
linspaceMethod · 0.80
astypeMethod · 0.45

Tested by

no test coverage detected