28 {
29
31 const char *hexwkb = NULL;
32 const char *out = NULL;
33 uint32_t len = 0;
34 int i = 0;
35
36
37
38
39
40 hexwkb =
41"01"
42"0000"
43"0000"
44"000000000000F03F"
45"0000000000000040"
46"0000000000000840"
47"0000000000001040"
48"0000000000001440"
49"0000000000001840"
50"0A000000"
51"0700"
52"0800"
53 ;
54
56 CU_ASSERT(raster != NULL);
67
69
70
71
72
73
74
75 CU_ASSERT_EQUAL(len, strlen(hexwkb));
76
77
78
80
81 {
82 void *serialized;
84
87
90 }
91
93
94
95
96
97
98 hexwkb =
99"00"
100"0000"
101"0000"
102"3FF0000000000000"
103"4000000000000000"
104"4008000000000000"
105"4010000000000000"
106"4014000000000000"
107"4018000000000000"
108"0000000A"
109"0007"
110"0008"
111 ;
112
114 CU_ASSERT(raster != NULL);
125
127
128
129
130
131
132
133 CU_ASSERT_EQUAL(len, strlen(hexwkb));
134
135
136
137
140
141
142
143
144
145 hexwkb =
146"01"
147"0000"
148"0100"
149"000000000000F03F"
150"0000000000000040"
151"0000000000000840"
152"0000000000001040"
153"0000000000001440"
154"0000000000001840"
155"0A000000"
156"0100"
157"0100"
158"40"
159"00"
160"01"
161 ;
162
164 CU_ASSERT(raster != NULL);
175 {
176 double val;
177 int failure;
179 CU_ASSERT(band != NULL);
184 CU_ASSERT_DOUBLE_EQUAL(val, 0, DBL_EPSILON);
186 CU_ASSERT_EQUAL(failure,
ES_NONE);
187 CU_ASSERT_DOUBLE_EQUAL(val, 1, DBL_EPSILON);
188 }
189
191
192
193
194
195 CU_ASSERT_EQUAL(len, strlen(hexwkb));
196
197
198
199
202
203
204
205
206
207 hexwkb =
208"01"
209"0000"
210"0100"
211"000000000000F03F"
212"0000000000000040"
213"0000000000000840"
214"0000000000001040"
215"0000000000001440"
216"0000000000001840"
217"0A000000"
218"0300"
219"0200"
220"43"
221"FF"
222"FF"
223"00"
224"01"
225"7F"
226"0A"
227"02"
228 ;
229
231 CU_ASSERT(raster != NULL);
242 {
243 double val;
244 int failure;
245
247 CU_ASSERT(band != NULL);
252 CU_ASSERT_DOUBLE_EQUAL(val, -1, DBL_EPSILON);
253
255 CU_ASSERT_EQUAL(failure,
ES_NONE);
256 CU_ASSERT_DOUBLE_EQUAL(val, -1, DBL_EPSILON);
257
259 CU_ASSERT_EQUAL(failure,
ES_NONE);
260 CU_ASSERT_DOUBLE_EQUAL(val, 0, DBL_EPSILON);
261
263 CU_ASSERT_EQUAL(failure,
ES_NONE);
264 CU_ASSERT_DOUBLE_EQUAL(val, 1, DBL_EPSILON);
265
267 CU_ASSERT_EQUAL(failure,
ES_NONE);
268 CU_ASSERT_DOUBLE_EQUAL(val, 127, DBL_EPSILON);
269
271 CU_ASSERT_EQUAL(failure,
ES_NONE);
272 CU_ASSERT_DOUBLE_EQUAL(val, 10, DBL_EPSILON);
273
275 CU_ASSERT_EQUAL(failure,
ES_NONE);
276 CU_ASSERT_DOUBLE_EQUAL(val, 2, DBL_EPSILON);
277 }
278
280
281
282
283
284 CU_ASSERT_EQUAL(len, strlen(hexwkb));
285
286
287
288
290
291 {
292 void *serialized;
294
297
300
301 }
302
304
305
306
307
308
309 hexwkb =
310"01"
311"0000"
312"0100"
313"000000000000F03F"
314"0000000000000040"
315"0000000000000840"
316"0000000000001040"
317"0000000000001440"
318"0000000000001840"
319"0A000000"
320"0300"
321"0200"
322"05"
323"FFFF"
324"FFFF"
325"0000"
326"F0FF"
327"7F00"
328"0A00"
329"0200"
330 ;
331
333 CU_ASSERT(raster != NULL);
344 {
345 double val;
346 int failure;
348 CU_ASSERT(band != NULL);
352
354 CU_ASSERT_EQUAL(failure,
ES_NONE);
355 CU_ASSERT_DOUBLE_EQUAL(val, -1, DBL_EPSILON);
356
358 CU_ASSERT_EQUAL(failure,
ES_NONE);
359 CU_ASSERT_DOUBLE_EQUAL(val, 0, DBL_EPSILON);
360
362 CU_ASSERT_EQUAL(failure,
ES_NONE);
363 CU_ASSERT_DOUBLE_EQUAL(val, -16, DBL_EPSILON);
364
366 CU_ASSERT_EQUAL(failure,
ES_NONE);
367 CU_ASSERT_DOUBLE_EQUAL(val, 127, DBL_EPSILON);
368
370 CU_ASSERT_EQUAL(failure,
ES_NONE);
371 CU_ASSERT_DOUBLE_EQUAL(val, 10, DBL_EPSILON);
372
374 CU_ASSERT_EQUAL(failure,
ES_NONE);
375 CU_ASSERT_DOUBLE_EQUAL(val, 2, DBL_EPSILON);
376 }
377
379
380
381
382
383 CU_ASSERT_EQUAL(len, strlen(hexwkb));
384
385
386
387
390
391
392
393
394
395 hexwkb =
396"00"
397"0000"
398"0001"
399"3FF0000000000000"
400"4000000000000000"
401"4008000000000000"
402"4010000000000000"
403"4014000000000000"
404"4018000000000000"
405"0000000A"
406"0003"
407"0002"
408"05"
409"FFFF"
410"FFFF"
411"0000"
412"FFF0"
413"007F"
414"000A"
415"0002"
416 ;
417
419 CU_ASSERT(raster != NULL);
430 {
431 double val;
432 int failure;
434 CU_ASSERT(band != NULL);
438
440 CU_ASSERT_EQUAL(failure,
ES_NONE);
441 CU_ASSERT_DOUBLE_EQUAL(val, -1, DBL_EPSILON);
442
444 CU_ASSERT_EQUAL(failure,
ES_NONE);
445 CU_ASSERT_DOUBLE_EQUAL(val, 0, DBL_EPSILON);
446
448 CU_ASSERT_EQUAL(failure,
ES_NONE);
449 CU_ASSERT_DOUBLE_EQUAL(val, -16, DBL_EPSILON);
450
452 CU_ASSERT_EQUAL(failure,
ES_NONE);
453 CU_ASSERT_DOUBLE_EQUAL(val, 127, DBL_EPSILON);
454
456 CU_ASSERT_EQUAL(failure,
ES_NONE);
457 CU_ASSERT_DOUBLE_EQUAL(val, 10, DBL_EPSILON);
458
460 CU_ASSERT_EQUAL(failure,
ES_NONE);
461 CU_ASSERT_DOUBLE_EQUAL(val, 2, DBL_EPSILON);
462 }
463
465
466
467
468
469 CU_ASSERT_EQUAL(len, strlen(hexwkb));
470
471
472
473
476
477
478
479
480
481 hexwkb =
482"00"
483"0000"
484"0001"
485"3FF0000000000000"
486"4000000000000000"
487"4008000000000000"
488"4010000000000000"
489"4014000000000000"
490"4018000000000000"
491"0000000A"
492"0003"
493"0002"
494"C5"
495"FFFF"
496"03"
497
498"2F746D702F742E74696600"
499 ;
500
502 CU_ASSERT(raster != NULL);
513 {
514 double val;
515 uint8_t bandnum = 0;
517 CU_ASSERT(band != NULL);
522 CU_ASSERT_DOUBLE_EQUAL(val, -1, DBL_EPSILON);
525 CU_ASSERT_EQUAL(bandnum, 3);
526 }
527
529
530
531
532
533 CU_ASSERT_EQUAL(len, strlen(hexwkb));
534
535
536
537
540
541
542
543
544
545 hexwkb =
546"01"
547"0000"
548"0100"
549"0000000000805640"
550"00000000008056C0"
551"000000001C992D41"
552"00000000E49E2341"
553"0000000000000000"
554"0000000000000000"
555"FFFFFFFF"
556"0300"
557"0100"
558"45"
559"0100"
560"0100"
561"B401"
562"AF01"
563 ;
564
566 CU_ASSERT(raster != NULL);
577 {
578 double val;
579 int failure;
581 CU_ASSERT(band != NULL);
586 CU_ASSERT_DOUBLE_EQUAL(val, 1, DBL_EPSILON);
587
589 CU_ASSERT_EQUAL(failure,
ES_NONE);
590 CU_ASSERT_DOUBLE_EQUAL(val, 1, DBL_EPSILON);
591
593 CU_ASSERT_EQUAL(failure,
ES_NONE);
594 CU_ASSERT_DOUBLE_EQUAL(val, 436, DBL_EPSILON);
595
597 CU_ASSERT_EQUAL(failure,
ES_NONE);
598 CU_ASSERT_DOUBLE_EQUAL(val, 431, DBL_EPSILON);
599 }
600
602
603
604
605
606
607
608 CU_ASSERT_EQUAL(len, strlen(hexwkb));
609
610
611
613
614 {
615 void *serialized;
617
620
623 }
624
626
627
628
629
630
631
632
633 for (i = 0; i < 5; ++i)
634 {
635
636 hexwkb =
637"01"
638"0000"
639"0300"
640"9A9999999999A93F"
641"9A9999999999A9BF"
642"000000E02B274A41"
643"0000000077195641"
644"0000000000000000"
645"0000000000000000"
646"FFFFFFFF"
647"0500"
648"0500"
649"44"
650"00"
651"FDFEFDFEFEFDFEFEFDF9FAFEFEFCF9FBFDFEFEFDFCFAFEFEFE"
652"44"
653"00"
654"4E627AADD16076B4F9FE6370A9F5FE59637AB0E54F58617087"
655"44"
656"00"
657"46566487A1506CA2E3FA5A6CAFFBFE4D566DA4CB3E454C5665"
658;
659
661 CU_ASSERT(raster != NULL);
672 {
673
674 double val;
675 int failure;
677 CU_ASSERT(band != NULL);
682 CU_ASSERT_DOUBLE_EQUAL(val, 0, DBL_EPSILON);
683
685 CU_ASSERT_EQUAL(failure,
ES_NONE);
686 CU_ASSERT_DOUBLE_EQUAL(val, 253, DBL_EPSILON);
687
689 CU_ASSERT_EQUAL(failure,
ES_NONE);
690 CU_ASSERT_DOUBLE_EQUAL(val, 254, DBL_EPSILON);
691
693 CU_ASSERT_EQUAL(failure,
ES_NONE);
694 CU_ASSERT_DOUBLE_EQUAL(val, 253, DBL_EPSILON);
695
697 CU_ASSERT_EQUAL(failure,
ES_NONE);
698 CU_ASSERT_DOUBLE_EQUAL(val, 254, DBL_EPSILON);
699
701 CU_ASSERT_EQUAL(failure,
ES_NONE);
702 CU_ASSERT_DOUBLE_EQUAL(val, 254, DBL_EPSILON);
703 }
704
705 {
706
707 double val;
708 int failure;
710 CU_ASSERT(band != NULL);
715 CU_ASSERT_DOUBLE_EQUAL(val, 0, DBL_EPSILON);
716
718 CU_ASSERT_EQUAL(failure,
ES_NONE);
719 CU_ASSERT_DOUBLE_EQUAL(val, 78, DBL_EPSILON);
720
722 CU_ASSERT_EQUAL(failure,
ES_NONE);
723 CU_ASSERT_DOUBLE_EQUAL(val, 98, DBL_EPSILON);
724
726 CU_ASSERT_EQUAL(failure,
ES_NONE);
727 CU_ASSERT_DOUBLE_EQUAL(val, 122, DBL_EPSILON);
728
730 CU_ASSERT_EQUAL(failure,
ES_NONE);
731 CU_ASSERT_DOUBLE_EQUAL(val, 173, DBL_EPSILON);
732
734 CU_ASSERT_EQUAL(failure,
ES_NONE);
735 CU_ASSERT_DOUBLE_EQUAL(val, 209, DBL_EPSILON);
736 }
737
738 {
739
740 double val;
741 int failure;
743 CU_ASSERT(band != NULL);
748 CU_ASSERT_DOUBLE_EQUAL(val, 0, DBL_EPSILON);
749
751 CU_ASSERT_EQUAL(failure,
ES_NONE);
752 CU_ASSERT_DOUBLE_EQUAL(val, 70, DBL_EPSILON);
753
755 CU_ASSERT_EQUAL(failure,
ES_NONE);
756 CU_ASSERT_DOUBLE_EQUAL(val, 86, DBL_EPSILON);
757
759 CU_ASSERT_EQUAL(failure,
ES_NONE);
760 CU_ASSERT_DOUBLE_EQUAL(val, 100, DBL_EPSILON);
761
763 CU_ASSERT_EQUAL(failure,
ES_NONE);
764 CU_ASSERT_DOUBLE_EQUAL(val, 135, DBL_EPSILON);
765
767 CU_ASSERT_EQUAL(failure,
ES_NONE);
768 CU_ASSERT_DOUBLE_EQUAL(val, 161, DBL_EPSILON);
769 }
770
772
773
774
775
776 CU_ASSERT_EQUAL(len, strlen(hexwkb));
777
778
779
780
782 {
783 void *serialized;
785
788
791 }
793
794 }
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809}
int32_t rt_raster_get_srid(rt_raster raster)
Get raster's SRID.
double rt_raster_get_x_skew(rt_raster raster)
Get skew about the X axis.
double rt_raster_get_x_offset(rt_raster raster)
Get raster x offset, in projection units.
int rt_band_get_hasnodata_flag(rt_band band)
Get hasnodata flag value.
rt_errorstate rt_band_get_pixel(rt_band band, int x, int y, double *value, int *nodata)
Get pixel value.
double rt_raster_get_x_scale(rt_raster raster)
Get scale X in projection units.
char * rt_raster_to_hexwkb(rt_raster raster, int outasin, uint32_t *hexwkbsize)
Return this raster in HEXWKB form (null-terminated hex)
rt_raster rt_raster_from_hexwkb(const char *hexwkb, uint32_t hexwkbsize)
Construct an rt_raster from a text HEXWKB representation.
uint16_t rt_raster_get_num_bands(rt_raster raster)
uint16_t rt_raster_get_height(rt_raster raster)
rt_errorstate rt_band_get_ext_band_num(rt_band band, uint8_t *bandnum)
Return bands' external band number (only valid when rt_band_is_offline returns non-zero).
rt_errorstate rt_band_get_nodata(rt_band band, double *nodata)
Get NODATA value.
rt_pixtype rt_band_get_pixtype(rt_band band)
Return pixeltype of this band.
const char * rt_band_get_ext_path(rt_band band)
Return band's external path (only valid when rt_band_is_offline returns non-zero).
uint16_t rt_raster_get_width(rt_raster raster)
void * rt_raster_serialize(rt_raster raster)
Return this raster in serialized form.
int rt_band_is_offline(rt_band band)
Return non-zero if the given band data is on the filesystem.
double rt_raster_get_y_scale(rt_raster raster)
Get scale Y in projection units.
double rt_raster_get_y_skew(rt_raster raster)
Get skew about the Y axis.
rt_raster rt_raster_deserialize(void *serialized, int header_only)
Return a raster from a serialized form.
double rt_raster_get_y_offset(rt_raster raster)
Get raster y offset, in projection units.
rt_band rt_raster_get_band(rt_raster raster, int bandNum)
Return Nth band, or NULL if unavailable.
raster
Be careful!! Zeros function's input parameter can be a (height x width) array, not (width x height): ...
void cu_free_raster(rt_raster raster)