440{
443
444 double imag;
445 double jmag;
446 double theta_i;
447 double theta_ij;
448
449
450
451
452
453 TupleDesc result_tuple;
456 HeapTuple heap_tuple ;
458
460
461
462 if (PG_ARGISNULL(0))
463 PG_RETURN_NULL();
465
466
468 if (!raster) {
469 PG_FREE_IF_COPY(pgraster, 0);
470 elog(ERROR, "RASTER_getGeotransform: Could not deserialize raster");
471 PG_RETURN_NULL();
472 }
473
474
480 &imag, &jmag, &theta_i, &theta_ij) ;
481
483 PG_FREE_IF_COPY(pgraster, 0);
484
485
486 if (get_call_result_type(fcinfo, NULL, &result_tuple) != TYPEFUNC_COMPOSITE) {
487 ereport(ERROR, (
488 errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
489 errmsg("RASTER_getGeotransform(): function returning record called in context that cannot accept type record"
490 )
491 ));
492 PG_RETURN_NULL();
493 }
494
495 BlessTupleDesc(result_tuple);
496
497
498
499
500 values[0] = Float8GetDatum(imag);
501 values[1] = Float8GetDatum(jmag);
502 values[2] = Float8GetDatum(theta_i);
503 values[3] = Float8GetDatum(theta_ij);
506
508
509
510 heap_tuple = heap_form_tuple(result_tuple, values, nulls);
511
512
513 result = HeapTupleGetDatum(heap_tuple);
514
516}
char result[OUT_DOUBLE_BUFFER_SIZE]
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.
void rt_raster_destroy(rt_raster raster)
Release memory associated to a raster.
double rt_raster_get_x_scale(rt_raster raster)
Get scale X in projection units.
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.
void rt_raster_calc_phys_params(double xscale, double xskew, double yskew, double yscale, double *i_mag, double *j_mag, double *theta_i, double *theta_ij)
Calculates the physically significant descriptors embodied in an arbitrary geotransform.
double rt_raster_get_y_offset(rt_raster raster)
Get raster y offset, in projection units.
raster
Be careful!! Zeros function's input parameter can be a (height x width) array, not (width x height): ...
#define POSTGIS_RT_DEBUG(level, msg)