NAME

Geo::GDAL::FFI::Dataset - A GDAL dataset

SYNOPSIS

DESCRIPTION

A collection of raster bands or vector layers. Obtain a dataset object by opening it with the Open method of Geo::GDAL::FFI object or by creating it with the Create method of a Driver object.

METHODS

GetDriver

my $driver = $dataset->GetDriver;

GetWidth

my $w = $dataset->GetWidth;

GetHeight

my $h = $dataset->GetHeight;

GetSize

my @size = $dataset->GetSize;

Returns the size (width, height) of the bands of this raster dataset.

GetBand

my $band = $dataset->GetBand($i);

Get the ith (by default the first) band of a raster dataset.

GetBands

my @bands = $dataset->GetBands;

Returns a list of Band objects representing the bands of this raster dataset.

CreateLayer

my $layer = $dataset->CreateLayer({Name => 'layer', ...});

Create a new vector layer into this vector dataset.

Named arguments are the following.

Name

Optional, string, default is ''.

GeometryType

Optional, default is 'Unknown', the type of the first geometry field; note: if type is 'None', the layer schema does not initially contain any geometry fields.

SpatialReference

Optional, a SpatialReference object, the spatial reference for the first geometry field.

Options

Optional, driver specific options in an anonymous hash.

Fields

Optional, a reference to an array of Field objects or schemas, the fields to create into the layer.

GeometryFields

Optional, a reference to an array of GeometryField objects or schemas, the geometry fields to create into the layer; note that if this argument is defined then the arguments GeometryType and SpatialReference are ignored.

GetLayerCount my $count = $dataset->GetLayerCount();

GetLayer

my $layer = $dataset->GetLayer($name);

If $name is strictly an integer, then returns the (name-1)th layer in the dataset, otherwise returns the layer whose name is $name. Without arguments returns the first layer.

CopyLayer

my $copy = $dataset->CopyLayer($layer, $name, {DST_SRSWKT => 'WKT of a SRS', ...});

Copies the given layer into this dataset using the name $name and returns the new layer. The options hash is mostly driver specific.

ExecuteSQL $dataset->ExecuteSQL ($sql, $filter, $dialect);

#  build a spatial index
$dataset->ExecuteSQL (qq{CREATE SPATIAL INDEX ON "$some_layer_name"});

#  filter a data set using the SQLite dialect and a second geometry
my $filtered = $dataset->ExecuteSQL (
  qq{SELECT "$fld1", "$fld2" FROM "$some_layer_name"},
  $some_geometry,
  'SQLite',
);

Info

my $info = $dataset->Info($options);
my $info = $dataset->Info(['-json', '-stats']);

This is the same as gdalinfo utility. $options is a reference to an array. Valid options are as per the gdalinfo utility.

Translate

my $target = $source->Translate($path, $options, $progress, $progress_data);

Convert a raster dataset into another raster dataset. This is the same as the gdal_translate utility. $name is the name of the target dataset. $options is a reference to an array of switches.

Warp

my $result = $dataset->Warp($args);

$args is a hashref, keys may be Destination, Input, Options, Progress, ProgressData.

Valid options are as per the gdalwarp utility.

VectorTranslate

my $result = $dataset->VectorTranslate($args);

$args is a hashref, keys may be Destination, Input, Options, Progress, ProgressData.

Valid options are as per the ogr2ogr utility.

DEMProcessing

my $result = $dataset->DEMProcessing($path, $args);

$args is a hashref, keys may be Processing, ColorFilename, Options, Progress, ProgressData.

See also gdaldem.

NearBlack

my $result = $dataset->NearBlack($args);

$args is a hashref, keys may be Destination, Options, Progress, ProgressData.

Valid options are as per the nearblack utility.

Grid

my $result = $dataset->Grid($path, $options, $progress, $progress_data);

Valid options are as per the gdal_grid utility.

Rasterize

my $result = $dataset->Rasterize($args);
my $result = $dataset->Rasterize({Options => [-b => 1, -at]});

$args is a hashref, keys may be Destination, Options, Progress, ProgressData.

Valid options are as per the gdal_rasterize utility.

BuildVRT

my $result = $dataset->BuildVRT($path, $args);

$args is a hashref, keys may be Input, Options, Progress, ProgressData.

LICENSE

This software is released under the Artistic License. See perlartistic.

AUTHOR

Ari Jolma - Ari.Jolma at gmail.com

SEE ALSO

Geo::GDAL::FFI

Alien::gdal, FFI::Platypus, http://www.gdal.org