Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Here's the raw version:
- def continuous(data_dict, fname, chunk_size=None):
- # Create netCDF4 dataset
- ds = Dataset(fname, 'w')
- create_variables(ds)
- # Figure out how to chunk
- num_points = list(data_dict.values())[0].size
- if chunk_size is None:
- chunk_size = num_points
- num_chunks = (num_points + chunk_size - 1) // chunk_size
- for i in range(num_chunks):
- chunk_slice = slice(i * chunk_size, min((i + 1) * chunk_size, num_points))
- for name in ('lon', 'lat', 'temperature'):
- ds.variables[name][chunk_slice] = data_dict[name][chunk_slice]
- #
- # Imagine multiple functions needing that chunking logic
- #
- # Instead, can factor out common loop setup and iteration
- def chunker(data_dict, chunk_size):
- num_points = list(data_dict.values())[0].size
- if chunk_size is None:
- chunk_size = num_points
- num_chunks = (num_points + chunk_size - 1) // chunk_size
- for i in range(num_chunks):
- yield slice(i * chunk_size, min((i + 1) * chunk_size, num_points))
- def continuous(data_dict, fname, chunk_size=None):
- # Create netCDF4 dataset
- ds = Dataset(fname, 'w')
- create_variables(ds)
- for chunk in chunker(data_dict, chunk_size):
- for name in ('lon', 'lat', 'temperature'):
- ds.variables[name][chunk] = data_dict[name][chunk]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement