write/write.rs
1use wkb_raster::{Raster, RasterBand, RasterDataSource, InMemoryRasterData, Endian};
2
3fn main() {
4 // 2x2 image bytes, u8 format
5 let bytes = vec![
6 vec![34, 40],
7 vec![56, 0],
8 ];
9
10 let raster = Raster {
11 endian: Endian::Big, // note: currently Endian::Little is not supported in PostGIS
12 version: 0, // always set to 0
13 scale_x: 500.0, // pixel width in degrees
14 scale_y: 1.0, // pixel height in degrees
15 ip_x: 0.0, // upper left corner longitude in degrees
16 ip_y: 0.0, // upper left corner latitude in degrees
17 skew_x: 0.0, // rotation in degrees (0 to 360)
18 skew_y: 0.0, // rotation in degrees (0 to 360)
19 srid: 4326, // SRID EPSG identifier
20 width: 2, // pixel columns
21 height: 2, // rows
22 bands: vec![RasterBand {
23 is_nodata_value: false, // See documentation, usually false
24 data: RasterDataSource::InMemory(
25 InMemoryRasterData::UInt8 {
26 data: bytes,
27 nodata: None,
28 }
29 ),
30 }],
31 };
32
33 println!("{}", raster.to_wkb_string());
34}