def test_io_sections_property(): ds = DataStore({ 'st': (['x', 'time'], np.ones((5, 5))), 'ast': (['x', 'time'], np.ones((5, 5))), 'probe1Temperature': (['time'], range(5)), 'probe2Temperature': (['time'], range(5)) }, coords={ 'x': range(5), 'time': range(5)}) sections = { 'probe1Temperature': [slice(7.5, 17.), slice(70., 80.)], # cold bath 'probe2Temperature': [slice(24., 34.), slice(85., 95.)], # warm bath } ds.sections = sections with tempfile.NamedTemporaryFile() as tmp: ds.to_netcdf(path=tmp.name) ds2 = open_datastore(tmp.name) assert ds.sections == ds2.sections pass
def test_io_sections_property(): ds = DataStore( { 'st': (['x', 'time'], np.ones((100, 5))), 'ast': (['x', 'time'], np.ones((100, 5))), 'probe1Temperature': (['time'], range(5)), 'probe2Temperature': (['time'], range(5)) }, coords={ 'x': ('x', range(100), { 'units': 'm' }), 'time': range(5) }) sections = { 'probe1Temperature': [slice(7.5, 17.), slice(70., 80.)], # cold bath 'probe2Temperature': [slice(24., 34.), slice(85., 95.)], # warm bath } ds['x'].attrs['units'] = 'm' ds.sections = sections # Create a temporary file to write data to. # 'with' method is used so the file is closed by tempfile # and free to be overwritten. with tempfile.NamedTemporaryFile('w') as tmp: temppath = tmp.name # Write the datastore to the temp file ds.to_netcdf(path=temppath) try: ds2 = open_datastore(temppath) except ValueError as e: if str(e) != 'cannot guess the engine, try passing one explicitly': raise else: warnings.warn('Could not guess engine, defaulted to netcdf4') ds2 = open_datastore(temppath, engine='netcdf4') assert ds.sections == ds2.sections # Close the datastore so the temp file can be removed ds2.close() ds2 = None # Remove the temp file once the test is done if os.path.exists(temppath): os.remove(temppath) pass
def test_io_sections_property(): ds = DataStore( { 'st': (['x', 'time'], np.ones((100, 5))), 'ast': (['x', 'time'], np.ones((100, 5))), 'probe1Temperature': (['time'], range(5)), 'probe2Temperature': (['time'], range(5)) }, coords={ 'x': ('x', range(100), { 'units': 'm' }), 'time': range(5) }) sections = { 'probe1Temperature': [slice(7.5, 17.), slice(70., 80.)], # cold bath 'probe2Temperature': [slice(24., 34.), slice(85., 95.)], # warm bath } ds['x'].attrs['units'] = 'm' ds.sections = sections # Create a temporary file to write data to. # 'with' method is used so the file is closed by tempfile # and free to be overwritten. with tempfile.NamedTemporaryFile('w') as tmp: temppath = tmp.name # Write the datastore to the temp file ds.to_netcdf(path=temppath) ds2 = open_datastore(temppath) assert ds.sections == ds2.sections # Close the datastore so the temp file can be removed ds2.close() ds2 = None # Remove the temp file once the test is done if os.path.exists(temppath): os.remove(temppath) pass