PostGIS 3.7.0dev-r@@SVN_REVISION@@
Loading...
Searching...
No Matches

◆ test_gdal_rasterize()

static void test_gdal_rasterize ( )
static

Definition at line 50 of file cu_gdal.c.

50 {
52 char srs[] = "PROJCS[\"unnamed\",GEOGCS[\"unnamed ellipse\",DATUM[\"unknown\",SPHEROID[\"unnamed\",6370997,0]],PRIMEM[\"Greenwich\",0],UNIT[\"degree\",0.0174532925199433]],PROJECTION[\"Lambert_Azimuthal_Equal_Area\"],PARAMETER[\"latitude_of_center\",45],PARAMETER[\"longitude_of_center\",-100],PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"Meter\",1],AUTHORITY[\"EPSG\",\"2163\"]]";
53 const char wkb_hex[] = "010300000001000000050000000000000080841ec100000000600122410000000080841ec100000000804f22410000000040e81dc100000000804f22410000000040e81dc100000000600122410000000080841ec10000000060012241";
54 const char *pos = wkb_hex;
55 unsigned char *wkb = NULL;
56 int wkb_len = 0;
57 int i;
58 double scale_x = 100;
59 double scale_y = -100;
60
61 rt_pixtype pixtype[] = {PT_8BUI};
62 double init[] = {0};
63 double value[] = {1};
64 double nodata[] = {0};
65 uint8_t nodata_mask[] = {1};
66
67 /* hex to byte */
68 wkb_len = (int) ceil(((double) strlen(wkb_hex)) / 2);
69 wkb = (unsigned char *) rtalloc(sizeof(unsigned char) * wkb_len);
70 for (i = 0; i < wkb_len; i++) {
71 int b = 0;
72 sscanf(pos, "%2x", &b);
73 wkb[i] = (unsigned char)b;
74 pos += 2;
75 }
76
78 wkb,
79 wkb_len, srs,
80 1, pixtype,
81 init, value,
82 nodata, nodata_mask,
83 NULL, NULL,
84 &scale_x, &scale_y,
85 NULL, NULL,
86 NULL, NULL,
87 NULL, NULL,
88 NULL
89 );
90
91 CU_ASSERT(raster != NULL);
92 CU_ASSERT_EQUAL(rt_raster_get_width(raster), 100);
93 CU_ASSERT_EQUAL(rt_raster_get_height(raster), 100);
94 CU_ASSERT_NOT_EQUAL(rt_raster_get_num_bands(raster), 0);
95 CU_ASSERT_DOUBLE_EQUAL(rt_raster_get_x_offset(raster), -500000, DBL_EPSILON);
96 CU_ASSERT_DOUBLE_EQUAL(rt_raster_get_y_offset(raster), 600000, DBL_EPSILON);
97
98 rtdealloc(wkb);
99 cu_free_raster(raster);
100}
void * rtalloc(size_t size)
Wrappers used for managing memory.
Definition rt_context.c:191
double rt_raster_get_x_offset(rt_raster raster)
Get raster x offset, in projection units.
Definition rt_raster.c:217
rt_pixtype
Definition librtcore.h:188
@ PT_8BUI
Definition librtcore.h:193
rt_raster rt_raster_gdal_rasterize(const unsigned char *wkb, uint32_t wkb_len, const char *srs, uint32_t num_bands, rt_pixtype *pixtype, double *init, double *value, double *nodata, uint8_t *hasnodata, int *width, int *height, double *scale_x, double *scale_y, double *ul_xw, double *ul_yw, double *grid_xw, double *grid_yw, double *skew_x, double *skew_y, char **options)
Return a raster of the provided geometry.
Definition rt_raster.c:2502
uint16_t rt_raster_get_num_bands(rt_raster raster)
Definition rt_raster.c:376
uint16_t rt_raster_get_height(rt_raster raster)
Definition rt_raster.c:133
uint16_t rt_raster_get_width(rt_raster raster)
Definition rt_raster.c:125
void rtdealloc(void *mem)
Definition rt_context.c:206
double rt_raster_get_y_offset(rt_raster raster)
Get raster y offset, in projection units.
Definition rt_raster.c:226
int value
Definition genraster.py:62
raster
Be careful!! Zeros function's input parameter can be a (height x width) array, not (width x height): ...
Definition rtrowdump.py:125
void cu_free_raster(rt_raster raster)

References cu_free_raster(), PT_8BUI, rt_raster_gdal_rasterize(), rt_raster_get_height(), rt_raster_get_num_bands(), rt_raster_get_width(), rt_raster_get_x_offset(), rt_raster_get_y_offset(), rtalloc(), and rtdealloc().

Referenced by gdal_suite_setup().

Here is the call graph for this function:
Here is the caller graph for this function: