def test_part_uri(): base = 'file:///foo.txt' for i in range(10): assert get_part_from_uri(mk_part_uri(base, i)) == i assert get_part_from_uri('file:///f.txt') is None assert get_part_from_uri('file:///f.txt#something_else') is None assert get_part_from_uri('file:///f.txt#part=aa') == 'aa' assert get_part_from_uri('file:///f.txt#part=111') == 111
def __init__(self, band: BandInfo): """ Initialise for reading from a Data Cube Dataset. :param dataset: dataset to read from :param measurement_id: measurement to read. a single 'band' or 'slice' """ self._band_info = band self._netcdf = ('netcdf' in band.format.lower()) self._part = get_part_from_uri(band.uri) filename = _url2rasterio(band.uri, band.format, band.layer) super(RasterDatasetDataSource, self).__init__(filename, nodata=band.nodata)
def __init__(self, band: BandInfo): """ Initialise for reading from a Data Cube Dataset. :param dataset: dataset to read from :param measurement_id: measurement to read. a single 'band' or 'slice' """ self._band_info = band self._hdf = _is_hdf(band.format) self._part = get_part_from_uri(band.uri) filename = _url2rasterio(band.uri, band.format, band.layer) lock = HDF5_LOCK if self._hdf else None super(RasterDatasetDataSource, self).__init__(filename, nodata=band.nodata, lock=lock)
def _rio_band_idx(band: BandInfo, src: DatasetReader) -> int: if band.band is not None: return band.band if not _is_netcdf(band.format): return 1 bidx = get_part_from_uri(band.uri) if bidx is not None: return bidx if src.count == 1: # Single-slice netcdf file return 1 return _find_netcdf_band_by_time(src, band.center_time)
def _rio_band_idx(band: BandInfo, src: DatasetReader) -> int: if band.band is not None: return band.band if not _is_netcdf(band.format): return 1 bidx = get_part_from_uri(band.uri) if bidx is not None: return bidx if src.count == 1: # Single-slice netcdf file return 1 raise DeprecationWarning("Stacked netcdf without explicit time index is not supported anymore")
def __init__(self, dataset, measurement_id): """ Initialise for reading from a Data Cube Dataset. :param Dataset dataset: dataset to read from :param str measurement_id: measurement to read. a single 'band' or 'slice' """ self._dataset = dataset self._measurement = dataset.measurements[measurement_id] self._netcdf = ('netcdf' in dataset.format.lower()) url = _resolve_url(_choose_location(dataset), self._measurement['path']) self._part = get_part_from_uri(url) filename = _url2rasterio(url, dataset.format, self._measurement.get('layer')) nodata = dataset.type.measurements[measurement_id].get('nodata') super(RasterDatasetDataSource, self).__init__(filename, nodata=nodata)