Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
source2[rows // 2:, cols // 2:] = 100
kwargs = {
"count": 1,
"width": params.width,
"height": params.height,
"dtype": np.uint8,
"driver": "GTiff",
"crs": params.dst_crs,
"transform": params.dst_transform,
}
with rasterio.open(tiffname, "w", **kwargs) as dst:
reproject(
source1,
rasterio.band(dst, 1),
src_transform=params.src_transform,
src_crs=params.src_crs,
src_nodata=0.0,
dst_transform=params.dst_transform,
dst_crs=params.dst_crs,
dst_nodata=0.0,
)
reproject(
source2,
rasterio.band(dst, 1),
src_transform=params.src_transform,
src_crs=params.src_crs,
src_nodata=0.0,
dst_transform=params.dst_transform,
dst_crs=params.dst_crs,
lon_0=0.0,
x_0=0.0,
y_0=0,
k=1.0,
units='m',
nadgrids='@null',
wktext=True,
no_defs=True)
kwargs = src.meta.copy()
kwargs.update(
transform=DST_TRANSFORM,
crs=dst_crs)
with rasterio.open(tiffname, 'w', **kwargs) as dst:
for i in (1, 2, 3):
reproject(
rasterio.band(src, i),
rasterio.band(dst, i),
num_threads=2)
def rio_slurp_reproject(fname, gbox, dtype=None, dst_nodata=None, **kw):
"""
Read image with reprojection
"""
import rasterio
from rasterio.warp import reproject
_fix_resampling(kw)
with rasterio.open(str(fname), 'r') as src:
if src.count == 1:
shape = gbox.shape
src_band = rasterio.band(src, 1)
else:
shape = (src.count, *gbox.shape)
src_band = rasterio.band(src, tuple(range(1, src.count+1)))
if dtype is None:
dtype = src.dtypes[0]
if dst_nodata is None:
dst_nodata = src.nodata
if dst_nodata is None:
dst_nodata = 0
pix = np.full(shape, dst_nodata, dtype=dtype)
reproject(src_band, pix,
dst_nodata=dst_nodata,
dst_transform=gbox.transform,
dst_crs=str(gbox.crs),
**kw)
b=6378137,
lat_ts=0.0,
lon_0=0.0,
x_0=0.0,
y_0=0,
k=1.0,
units="m",
nadgrids="@null",
wktext=True,
no_defs=True,
)
kwargs = src.meta.copy()
kwargs.update(transform=DST_TRANSFORM, crs=dst_crs)
with rasterio.open(tiffname, "w", **kwargs) as dst:
for i in (1, 2, 3):
reproject(rasterio.band(src, i), rasterio.band(dst, i))
source=rasterio.band(input_data, band_idx),
destination=rasterio.band(dst, band_idx),
src_transform=input_data.transform,
src_crs=input_data.crs,
dst_transform=transform,
dst_crs=CRS.from_epsg(target_crs),
resampling=getattr(Resampling, resampling_method)
)
output = rasterio.open(dest_path)
input_data.close()
else:
output = np.zeros(shape=(height, width, input_data.count))
for band_idx in range(1, input_data.count + 1):
rasterio.warp.reproject(
source=rasterio.band(input_data, band_idx),
destination=output[:, :, band_idx-1],
src_transform=input_data.transform,
src_crs=input_data.crs,
dst_transform=transform,
dst_crs=CRS.from_epsg(target_crs),
resampling=getattr(Resampling, resampling_method)
)
elif isinstance(input_data, gdal.Dataset):
if dest_path is not None:
gdal.Warp(dest_path, input_data,
dstSRS='EPSG:' + str(target_crs))
output = gdal.Open(dest_path)
else:
raise ValueError('An output path must be provided for '
'reprojecting GDAL datasets.')
meta = deepcopy(self.meta)
meta['nodata'] = nodata
meta['width'] = dst_width
meta['height'] = dst_height
meta['transform'] = dst_transform
meta['crs'] = crs
if progress is True:
t = tqdm(total=self.count)
with rasterio.open(file_path, 'w', driver=driver, **meta) as dst:
for i, layer in enumerate(self.iloc):
reproject(
source=rasterio.band(layer.ds, layer.bidx),
destination=rasterio.band(dst, i+1),
resampling=rasterio.enums.Resampling[resampling],
num_threads=n_jobs,
warp_mem_lim=warp_mem_lim)
if progress is True:
t.update()
new_raster = self._newraster(file_path, self.names)
if tfile is not None:
for layer in new_raster.iloc:
layer.close = tfile.close
return new_raster
try:
west, south, east, north = transform_bounds(TILES_CRS, src.crs, ulx, lry, lrx, uly)
tile_window = window_from_bounds(west, south, east, north, transform=src.transform)
adjusted_tile_window = Window(
tile_window.col_off - 1, tile_window.row_off - 1,
tile_window.width + 2, tile_window.height + 2)
tile_window = adjusted_tile_window.round_offsets().round_shape()
# if no data in window, skip processing the tile
if not src.read_masks(1, window=tile_window).any():
return tile, None
except ValueError:
log.info("Tile %r will not be skipped, even if empty. This is harmless.", tile)
reproject(rasterio.band(src, tmp.indexes),
rasterio.band(tmp, tmp.indexes),
src_nodata=src_nodata,
dst_nodata=dst_nodata,
num_threads=1,
resampling=resampling)
return tile, memfile.read()
def _get_bands(inputs, sources, d, i=None):
"""Get a rasterio.Band object from calc's inputs"""
idx = d if d in dict(inputs) else int(d) - 1
src = sources[idx]
return (rasterio.band(src, i) if i else
[rasterio.band(src, j) for j in src.indexes])
kwargs = src.meta.copy()
kwargs.update({
'crs': dst_crs,
'transform': transform,
'width': width,
'height': height
})
satellite_img_name = get_file_name(geotiff_path)
out_file_name = "{}_wgs84.tif".format(satellite_img_name)
out_path = os.path.join(WGS84_DIR, out_file_name)
with rasterio.open(out_path, 'w', **kwargs) as dst:
for i in range(1, src.count + 1):
rasterio.warp.reproject(
source=rasterio.band(src, i),
destination=rasterio.band(dst, i),
src_transform=src.transform,
src_crs=src.crs,
dst_transform=transform,
dst_crs=dst_crs,
resampling=rasterio.warp.Resampling.nearest)
return rasterio.open(out_path), out_path