Dataset
gma.gio.Dataset
[class] Dataset(data = None, shape = None, crs = None, geo_transform = None, dtype = None, nodata = None, metadata = {}, **kwargs):Create a Dataset object!
**Optional:
data = Dataset||ndarray||list||tuple||None. Default None.
Input data source. Can be a Dataset object, or a NumPy ndarray, list, tuple.
If data is None, a new Dataset will be created according to the shape parameter.
shape = tuple||None. Default None.
Shape of the new Dataset. If shape is a 2-tuple, it represents (rows, columns), and the number of bands is 1. If shape is a 3-tuple, it represents (bands, rows, columns).
If shape is None, data must be set.
crs = str||int||None. Default None.
The output coordinate system. Can be EPSG, WKT, Proj4, and other types of coordinate characters. Default(None) no coordinate system!
geo_transform = tuple||None. Default None.
Geo transformation of the output raster. The affine transformation is not specified by default (None).
dtype = str||None. Default None.
A code or string tag for the output raster data type.
Supported data types include:
'Unknown', 'Byte', 'UInt16', 'Int16', 'UInt32', 'Int32','Float32', 'Float64', 'CInt16', 'CInt32', 'CFloat32', 'CFloat64', ...
For more, see const.RaDT_*.
If dtype is None, the data type is determined by the data parameter.
nodata = float||None. Default None.
Invalid value for output raster. The default is not specified (None).
metadata = dict. Default {}.
Metadata to be added.
**kwargs:
Other parameters passed to _algos.geo.dataset.raster_translate.
Method
algebraic
[method] .algebraic(agg_fun, block = (None, 2048, 2048), sel_bands = None, scr_nodata = None, dst_nodata = None, **kwargs):
Perform algebraic operations on Dataset.
Parameters:
agg_fun: def.
Calculate functions. For Example:
def func(in_ar):
return in_ar[0] * 2.1
agg_fun = func
in_ar: Input NumPy arrays with block`s shape.
**Optional:
block = tuple. Default (None, 2048, 2048).
Block sizes for bands, rows, and columns. Use None to represent all.
sel_bands = list||None. Default None.
Extract band numbers. Selecting a subset of bands can reduce memory usage.
The default (None) is all bands.
scr_nodata = float. Default None.
Input nodata value. The default is not specified (None).
dst_nodata = float. Default None.
Output nodata value. The default is scr_nodata (None).
**kwargs:
Other parameters passed to driver.RasterDriver.create.
Returns:
Type: Dataset.
clip
[method] .clip(layer, **kwargs):
Clip off areas that are not covered by the method layer.
Parameters:
layer: Layer||Feature||Geometry||str.
A GMA item use for cliping!
**kwargs:
Other parameters passed to _algos.geo.dataset.raster_translate
Returns:
Type: Dataset.
extent
[method] .extent(**kwargs):
The extent of a geometry is the bounding rectangle.
**Optional:
**kwargs:
Other parameters passed to _aio.Layer.Layer.
Returns:
Type: Layer.
gen_lonlat
[method] .gen_lonlat(**kwargs):
Generate latitude and longitude raster.
Returns:
Type: Dataset.
Band 1 is longitude, Band 2 is latitude.
get_palette
[method] .get_palette(bid = 1):
Get palette of the band.
**Optional:
bid = int. Default 1.
Number of the element calculation band. Start with 1.
Returns:
Type: matplotlib. colors.ListedColormap or None.
isopleth
[method] .isopleth(interval = 50, base = 0, band = 1, **kwargs):
Generate a smooth curve formed by connecting points with equal quantity index values.
**Optional:
interval = float. Default 50.0.
Isopleth interval.
base = float. Default 0.0.
The offset from the zero point of the start of the interval.
band = int. Default 1.
The number of the band to be calculated starts from 1.
**kwargs:
Other parameters passed to _aio.layer.Layer.
Returns:
Type: Layer.
plot
[method] .plot(ax = None, bands = None, **kwargs):
Make plots of Dataset.
**Optional:
ax = None||matplotlib. ~.AxesSubplot. Default None.
A matplotlib subplot. If None, a default axes will be created.
bands = int||list||None. Default None.
The band ID to be plotted. For multi-band data, only 1, 3 (RGB), and 4 (RGBA) bands are supported for selection. Duplicate bands will only keep one. Default is the first four bands.
**kwargs:
Other parameters passed to matplotlib.image.AxesImage.
Returns:
matplotlib.~.AxesSubplot
reclassify
[method] .reclassify(remap, method = "Range", **kwargs):
Reclassifies (or changes) the values in a raster.
Parameters:
remap: dict.
Remap object. Used to remap an input value or range definition to a new value.
The format is {mapping1: value1, mapping2: value2, ...}.
Note: Items containing NAN will be rejected directly.
**Optional:
method = str. Default 'Range'.
Specifies how to reclassify the values of the input raster. May be: 'Range' or 'Unique'.
'Range': The data in the range will be mapped.
'Unique': Mapped strictly on a one-to-one basis.
For example:
Remap = {1000: 1, 2000: 2, 3000: 3} 1. ReClaMethod = 'Range'.
Data <= 1000: --> 1
1000 < Data <= 1000: --> 2
2000 < Data <= 3000: --> 3
Data > 3000: --> NoData
2. ReClaMethod = 'Unique'.
Data == 1000: --> 1
Data == 2000: --> 2
Data == 3000: --> 3
Other values: --> NoData
**kwargs:
Other parameters passed to _algos.geo.dataset.raster_translate
Returns:
Type: Dataset.
resample
[method] .resample(resolution, method = "Nearest", **kwargs):
Change the spatial resolution of the Dataset.
Parameters:
resolution: float||list.
Resampling resolution(X, Y).
**Optional:
method = str. Default 'Nearest'.
Resampling method. Supported resampling methods include:
'Nearest', 'Bilinear', 'Cubic', 'CubicSpline', 'Lanczos', 'Average', 'RMS', 'Mode'.
**kwargs:
Other parameters passed to _algos.geo.dataset.raster_translate
Returns:
Type: Dataset.
set_crs
[method] .set_crs(crs):
Set dataset's crs!
Parameters:
crs: str||int||None.
The output coordinate system. Can be EPSG, WKT, Proj4, and other types of coordinate characters. Default(None) no coordinate system!
set_gcps
[method] .set_gcps(gcps = [(0, 0, 0, 0, 0, '', '')], crs = None):
Set GCPs.
**Optional:
gcps = list[tuple]. Default [(0, 0, 0, 0, 0, '', '')].
list(4 foloat + 2str) of gcps values.
format:
[(x(float), y(float), z(float), pixel(float), line(float), info(str, opt), id(str, opt)), ...]
crs = str||int||None. Default None.
The gcps' coordinate system. Can be EPSG, WKT, Proj4, and other types of coordinate characters. Default(None) no coordinate system!
set_geo_transform
[method] .set_geo_transform(geo_transform):
Set dataset's geo transform!
Parameters:
geo_transform: tuple.
Geo transformation of the output raster(6 float of tuple). format:
[x min, x resolution, x rotation, y max, y rotation, y resolution]
set_metadata
[method] .set_metadata(metadata):
Set dataset's metadata!
Parameters:
metadata: dict.
Metadata to be added.
set_nodata
[method] .set_nodata(nodata, bids = None):
Set dataset's nodata value of band!
Parameters:
nodata: float.
Invalid value for output raster.
**Optional:
bids = int||lint of int||None. Default None.
Number of the element calculation band. Start with 1. None for all bands.
set_palette
[method] .set_palette(palette):
Set dataset's palette of band!
Parameters:
palette: dict||matplotlib. ~.cmap or a list of them.
Palette(color table) of raster bands.
For example:
1.dict({value: (R,G,B,A)}):
palette = {10:(200,50,100,255), 20:(200,50,100,255)}.
2.camp:
import matplotlib.colors as cor palette = cor.ListedColormap(['r', 'g', 'b'], N = 256)
set_statistics
[method] .set_statistics(statistics, bids = None):
Set dataset's statistics of band!
Parameters:
statistics: None||list of tuple(vmin||vmax||vmean||vstddev).
Statistics values. None for automatically compute statistics.
**Optional:
bids = int||lint of int||None. Default None.
Number of the element calculation band. Start with 1. None for all bands.
shift
[method] .shift(distance = 1):
Shift a distance of the dataset. **Warining: This method will modify the original data.
Parameters:
distance = float||list. Default 1.
X, Y shift distance. If a single value is provided, it is assumed that X = Y.
Returns:
Type: Dataset.
to_bytearray
[method] .to_bytearray(row_off = 0, column_off = 0, row_size = None, column_size = None, sel_bands = None):
Reads the raster dataset as a bytearray.
**Optional:
row_off = int. Default 0.
The starting row of the data to be read.
column_off = int. Default 0.
The starting column of the data to be read.
row_size = int. Default None.
The number of rows to read from the start row (the row width of the data window). The default (None) is all rows from the start row.
column_size = int. Default None.
The number of columns to read from the start column (the column width of the data window). Default (None) All columns from the start column.
sel_bands = int||list. Default None.
The band number or list of band numbers to be read. Default (None) All bands (numbering starts from 1).
Returns:
Type: bytearray.
to_crs
[method] .to_crs(crs, **kwargs):
Reproject to another coordinate system.
Parameters:
crs: str||int.
The output coordinate system. Can be EPSG, WKT, Proj4, and other types of coordinate characters.
**Optional:
**kwargs:
Other parameters passed to _algos.geo.dataset.raster_translate
Returns:
Type: Dataset.
to_dtype
[method] .to_dtype(dtype, **kwargs):
Convert the data type of raster.
Parameters:
dtype: str.
A code or string tag for the output raster data type.
Supported data types include:
'Unknown', 'Byte', 'UInt16', 'Int16', 'UInt32', 'Int32','Float32', 'Float64', 'CInt16', 'CInt32', 'CFloat32', 'CFloat64', ...
for more, see const.RaDT_*.
**Optional:
**kwargs:
Other parameters passed to _algos.geo.dataset.raster_translate
Returns:
Type: Dataset.
to_file
[method] .to_file(out_dst, driver = "GTiff", **kwargs):
Save Dataset as a raster file.
Parameters:
out_dst: str.
The output raster file path.
**Optional:
driver = str. Default 'GTiff'.
Output file driver. For other drivers, see gft.RasterSummary().CreatableFormats.
**kwargs:
Other parameters passed to _algos.geo.dataset.raster_translate.
to_layer
[method] .to_layer(field = None, band = 1, gtype = "Polygon", mask = False, **kwargs):
Translate Dataset to Layer!
**Optional:
field = str. Default None.
The name of the output vector field. None for band.
band = int. Default 1.
Number of the element calculation band. Start with 1.
gtype = str. Default 'Polygon'.
Geometry type! Can be 'Point', 'MultiPoint', 'Line', 'MultiLine', 'MultiPolygon' or 'Polygon'. The default (None) is the automatic geometry type.
mask = bool. Default False.
Whether to build mask layer(nodata:0, other:1).
**kwargs:
Other parameters passed to _algos.geo.layer.Layer.
Returns:
Type: Layer.
to_numpy
[method] .to_numpy(row_off = 0, column_off = 0, row_size = None, column_size = None, sel_bands = None, mask_nodata = False):
Reads the raster dataset as a 3-ndim Numpy array.
**Optional:
row_off = int. Default 0.
The starting row of the data to be read.
column_off = int. Default 0.
The starting column of the data to be read.
row_size = int. Default None.
The number of rows to read from the start row (the row width of the data window). The default (None) is all rows from the start row.
column_size = int. Default None.
The number of columns to read from the start column (the column width of the data window). Default (None) All columns from the start column.
sel_bands = int||list. Default None.
The band number or list of band numbers to be read. Default (None) All bands (numbering starts from 1).
mask_nodata = bool. Default False.
Whether to mask array with nodata value.
Returns:
Type: array.
write_array
[method] .write_array(ar, row_off = 0, column_off = 0, sel_bands = None):
Write array to dataset.
Parameters:
ar: np. ndarray.
The NumPy array that needs to be set.
**Optional:
row_off = int. Default 0.
The starting row of the data to be read.
column_off = int. Default 0.
The starting column of the data to be read.
sel_bands = int||list. Default None.
The band number or list of band numbers to be read. Default (None) All bands (numbering starts from 1).
Property
blocks
[property] .blocks
Fetch the natural block size of this band. --> list(x and y dimensions of block)
bounds
[property] .bounds
Bounds. --> tuple
compression
[property] .compression
Raster compression. --> str
crs
[property] .crs
Raster coordinate reference system. --> CoordinateReferenceSystem
driver
[property] .driver
Raster driver. --> RasterDriver
dtype
[property] .dtype
Raster data type. --> str
gcps
[property] .gcps
Raster GCPs. --> tuple
geo_transform
[property] .geo_transform
Raster geo transform. --> tuple
link
[property] .link
Layer path link. --> str
metadata
[property] .metadata
metadata. --> dict
name
[property] .name
Raster Name. --> str
nodata
[property] .nodata
Raster nodata values. --> float
resolution
[property] .resolution
X, Y resolution. --> tuple
shape
[property] .shape
Raster shape. --> tuple(band, rows, columns)
stats
[property] .stats
Get stats of all bands. --> dict