There are two prototypes for this function. The first lets the user specify the GDALDataType
for the created dataset. The second uses a GDALDatatype
that matches template parameter T
.
template<class T>
gdal_raster_view<T> create(const filesystem::path& path, int rows, int cols, GDALDataType data_type);
template<class T>
gdal_raster_view<T> create(const filesystem::path& path, int rows, int cols);
Uses GDAL to create a single-band raster dataset of given dimensions at a file location specified by the path
parameter. The user specifies the dimensions and datatype of the raster, but all other creation settings are fixed. This means:
- the dataformat is GTiff
- the file is tiled
- the block size is 256 x 256
- the compression option is set to deflate
- the interleave option is set to band
<pronto/raster/io.h> (open in Github)
If the data_type parameter is not used, T
must be one of the supported data types ( unsigned char, unsigned int, int, float, double).
If the data_type parameter is used it must be corresponding to one of the supported data types, AND the associated data type must be castable to T.
The path parameter must be a valid path and must include the desired file extension (i.e. ".tif" or ".tiff"). Rows and cols must be greater than 0. When used, the data_type parameter must correspond to one of the supported data types.
The cost of the operation is governed by the filesystem that has to create the tiff file.
//example_create.cpp
#include <pronto/raster/io.h>
#include <pronto/raster/plot_raster.h>
namespace pr = pronto::raster;
int main()
{
auto raster = pr::create<int>("test.tif", 3, 4, GDT_Byte);
int i = 0;
for (auto&& v : raster) {
i = (i + 3) % 7;
v = i;
}
plot_raster(raster);
return 0;
}
Output
Rows: 3, Cols: 4.
3 6 2 5
1 4 0 3
6 2 5 1
If you would like to create raster data sets with different settings, use GDAL directly in conjunction with make_gdalrasterband_view.