def _load_meta(filename, ftype, **kwargs): if ftype == 'netcdf': return load_netcdf_meta(filename) elif ftype == 'hdf5': return load_hdf5_meta(filename) elif ftype == 'hdf4': return load_hdf4_meta(filename) elif ftype == 'tif': return load_dir_of_tifs_meta(filename, **kwargs) elif ftype == 'hdf': try: return load_hdf4_meta(filename, **kwargs) except Exception as e: logger.info('NOTE: guessed HDF4 type. Failed: {}. \nTrying HDF5'.format(repr(e))) return load_hdf5_meta(filename, **kwargs)
def test_load_subdataset(): import gdal f = HDF5_FILES[0] _, layer_specs = get_layer_specs(f) data_file = gdal.Open(f) meta = load_hdf5_meta(f) data_array = load_subdataset(data_file.GetSubDatasets()[0][0], meta['layer_meta'][0], layer_specs[0]) assert data_array.data is not None
def test_load_subdataset(): f = HDF5_FILES[0] _ , band_specs = get_band_specs(f) data_file = gdal.Open(f) meta = load_hdf5_meta(f) data_array = load_subdataset(data_file.GetSubDatasets()[0][0], meta['band_meta'][0], band_specs[0]) assert 'canvas' in data_array.attrs.keys() assert data_array.data is not None
def test_reader_kwargs(): sub_dataset_names, band_specs = get_band_specs(HDF5_FILES[0]) band_specs_kwargs = [] for b in band_specs: b = attr.asdict(b) b['buf_xsize'], b['buf_ysize'] = 200, 300 band_specs_kwargs.append(BandSpec(**b)) meta = load_hdf5_meta(HDF5_FILES[0]) es = load_hdf5_array(HDF5_FILES[0], meta, band_specs_kwargs) for b in es.band_order: assert getattr(es, b).values.shape == (300, 200)
def test_read_array(filename): sub_dataset_names, band_specs = get_band_specs(filename) meta = load_hdf5_meta(filename) es = load_hdf5_array(filename, meta, band_specs) assert len(es.data_vars) == len(sub_dataset_names) for band in es.data_vars: sample = getattr(es, band) assert sample.y.size == 1800 assert sample.x.size == 3600 assert len(es.data_vars) == len(band_specs) assertions_on_band_metadata(sample.attrs)
def test_reader_kwargs(): sub_dataset_names, layer_specs = get_layer_specs(HDF5_FILES[0]) layer_specs_kwargs = [] for b in layer_specs: b = b.get_params() b['buf_xsize'], b['buf_ysize'] = 200, 300 layer_specs_kwargs.append(LayerSpec(**b)) meta = load_hdf5_meta(HDF5_FILES[0]) dset = load_hdf5_array(HDF5_FILES[0], meta, layer_specs_kwargs) for b in dset.layer_order: assert getattr(dset, b).values.shape == (300, 200)
def test_read_array(filename): sub_dataset_names, layer_specs = get_layer_specs(filename) meta = load_hdf5_meta(filename) dset = load_hdf5_array(filename, meta, layer_specs) assert len(dset.data_vars) == len(sub_dataset_names) for layer in dset.data_vars: sample = getattr(dset, layer) assert sample.y.size == 1800 assert sample.x.size == 3600 assert len(dset.data_vars) == len(layer_specs) assertions_on_layer_metadata(sample.attrs)
def test_read_meta(hdf): meta = load_hdf5_meta(hdf) assertions_on_metadata(meta)