本文整理汇总了Python中affine.Affine.from_gdal方法的典型用法代码示例。如果您正苦于以下问题:Python Affine.from_gdal方法的具体用法?Python Affine.from_gdal怎么用?Python Affine.from_gdal使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类affine.Affine
的用法示例。
在下文中一共展示了Affine.from_gdal方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: list_to_affine
# 需要导入模块: from affine import Affine [as 别名]
# 或者: from affine.Affine import from_gdal [as 别名]
def list_to_affine(xform_mat):
"""Create an Affine from a list or array-formatted [a, b, d, e, xoff, yoff]
Arguments
---------
xform_mat : `list` or :class:`numpy.array`
A `list` of values to convert to an affine object.
Returns
-------
aff : :class:`affine.Affine`
An affine transformation object.
"""
# first make sure it's not in gdal order
if len(xform_mat) > 6:
xform_mat = xform_mat[0:6]
if rasterio.transform.tastes_like_gdal(xform_mat):
return Affine.from_gdal(*xform_mat)
else:
return Affine(*xform_mat)
示例2: get_geo_transform
# 需要导入模块: from affine import Affine [as 别名]
# 或者: from affine.Affine import from_gdal [as 别名]
def get_geo_transform(raster_src):
"""Get the geotransform for a raster image source.
Arguments
---------
raster_src : str, :class:`rasterio.DatasetReader`, or `osgeo.gdal.Dataset`
Path to a raster image with georeferencing data to apply to `geom`.
Alternatively, an opened :class:`rasterio.Band` object or
:class:`osgeo.gdal.Dataset` object can be provided. Required if not
using `affine_obj`.
Returns
-------
transform : :class:`affine.Affine`
An affine transformation object to the image's location in its CRS.
"""
if isinstance(raster_src, str):
affine_obj = rasterio.open(raster_src).transform
elif isinstance(raster_src, rasterio.DatasetReader):
affine_obj = raster_src.transform
elif isinstance(raster_src, gdal.Dataset):
affine_obj = Affine.from_gdal(*raster_src.GetGeoTransform())
return affine_obj
示例3: clip
# 需要导入模块: from affine import Affine [as 别名]
# 或者: from affine.Affine import from_gdal [as 别名]
def clip(self, shp, keep=False, *args, **kwargs):
'''
Clip raster using shape, where shape is either a GeoPandas DataFrame, shapefile,
or some other geometry format used by python-raster-stats
Returns list of GeoRasters or Pandas DataFrame with GeoRasters and additional information
Usage:
clipped = geo.clip(shape, keep=False)
where:
keep: Boolean (Default False), returns Georasters and Geometry information
'''
df = pd.DataFrame(zonal_stats(shp, self.raster, nodata=self.nodata_value, all_touched=True,
raster_out=True, affine=Affine.from_gdal(*self.geot),
geojson_out=keep,))
if keep:
df['GeoRaster'] = df.properties.apply(lambda x: GeoRaster(x['mini_raster_array'],
Affine.to_gdal(x['mini_raster_affine']),
nodata_value=x['mini_raster_nodata'],
projection=self.projection,
datatype=self.datatype))
cols = list(set([i for i in df.properties[0].keys()]).intersection(set(shp.columns)))
df2 = pd.DataFrame([df.properties.apply(lambda x: x[i]) for i in cols
]).T.merge(df[['GeoRaster']], left_index=True, right_index=True,)
df2.columns = cols+['GeoRaster']
df2 = df2.merge(df[['id']], left_index=True, right_index=True)
df2.set_index('id', inplace=True)
return df2
else:
df['GeoRaster'] = df.apply(lambda x: GeoRaster(x.mini_raster_array,
Affine.to_gdal(x.mini_raster_affine),
nodata_value=x.mini_raster_nodata,
projection=self.projection,
datatype=self.datatype), axis=1)
return df['GeoRaster'].values
示例4: stats
# 需要导入模块: from affine import Affine [as 别名]
# 或者: from affine.Affine import from_gdal [as 别名]
def stats(self, shp, stats='mean', add_stats=None, raster_out=True, *args, **kwargs):
'''
Compute raster statistics for a given geometry in shape, where shape is either
a GeoPandas DataFrame, shapefile, or some other geometry format used by
python-raster-stats. Runs python-raster-stats in background
(additional help and info can be found there)
Returns dataframe with statistics and clipped raster
Usage:
df = geo.stats(shape, stats=stats, add_stats=add_stats)
where:
raster_out: If True (Default), returns clipped Georasters
'''
df = pd.DataFrame(zonal_stats(shp, self.raster, nodata=self.nodata_value,
all_touched=True, raster_out=raster_out,
affine=Affine.from_gdal(*self.geot),
geojson_out=True, stats=stats, add_stats=add_stats))
df['GeoRaster'] = df.properties.apply(lambda x: GeoRaster(x['mini_raster_array'],
Affine.to_gdal(x['mini_raster_affine']),
nodata_value=x['mini_raster_nodata'],
projection=self.projection,
datatype=self.datatype))
statcols = list(set([i for i in df.properties[0].keys()]).difference(set(shp.columns)))
cols = shp.columns.tolist()+statcols
cols = [i for i in cols if i != 'geometry' and i.find('mini_raster') == -1]
df2 = pd.DataFrame([df.properties.apply(lambda x: x[i]) for i in cols]).T
df2.columns = cols
df2 = df2.merge(df[['id', 'GeoRaster']], left_index=True, right_index=True)
df2.set_index('id', inplace=True)
return df2
示例5: from_georef
# 需要导入模块: from affine import Affine [as 别名]
# 或者: from affine.Affine import from_gdal [as 别名]
def from_georef(cls, georef):
tfm = Affine.from_gdal(georef["translateX"], georef["scaleX"], georef["shearX"],
georef["translateY"], georef["shearY"], georef["scaleY"])
return cls(tfm, proj=georef["spatialReferenceSystemCode"])
示例6: get_affine
# 需要导入模块: from affine import Affine [as 别名]
# 或者: from affine.Affine import from_gdal [as 别名]
def get_affine(src):
aff = None
# See https://github.com/mapbox/rasterio/issues/86
with warnings.catch_warnings():
warnings.simplefilter("ignore")
aff = src.transform
if isinstance(aff,list):
aff = Affine.from_gdal(*aff)
return aff
示例7: test_reproject
# 需要导入模块: from affine import Affine [as 别名]
# 或者: from affine.Affine import from_gdal [as 别名]
def test_reproject():
from rasterio.warp import reproject
from rasterio.enums import Resampling
with rasterio.Env():
# As source: a 1024 x 1024 raster centered on 0 degrees E and 0
# degrees N, each pixel covering 15".
rows, cols = src_shape = (1024, 1024)
# decimal degrees per pixel
d = 1.0 / 240
# The following is equivalent to
# A(d, 0, -cols*d/2, 0, -d, rows*d/2).
src_transform = rasterio.Affine.translation(
-cols*d/2,
rows*d/2) * rasterio.Affine.scale(d, -d)
src_crs = {'init': 'EPSG:4326'}
source = np.ones(src_shape, np.uint8) * 255
# Destination: a 2048 x 2048 dataset in Web Mercator (EPSG:3857)
# with origin at 0.0, 0.0.
dst_shape = (2048, 2048)
dst_transform = Affine.from_gdal(
-237481.5, 425.0, 0.0, 237536.4, 0.0, -425.0)
dst_crs = {'init': 'EPSG:3857'}
destination = np.zeros(dst_shape, np.uint8)
reproject(
source,
destination,
src_transform=src_transform,
src_crs=src_crs,
dst_transform=dst_transform,
dst_crs=dst_crs,
resampling=Resampling.nearest)
# Assert that the destination is only partly filled.
assert destination.any()
assert not destination.all()
# Testing upsample function