PostGIS  3.4.0dev-r@@SVN_REVISION@@

◆ rt_raster_get_envelope()

rt_errorstate rt_raster_get_envelope ( rt_raster  raster,
rt_envelope env 
)

Get raster's envelope.

The envelope is the minimum bounding rectangle of the raster

Parameters
raster: the raster to get envelope of
env: pointer to rt_envelope
Returns
ES_NONE if success, ES_ERROR if error

Definition at line 904 of file rt_raster.c.

907  {
908  int i;
909  int rtn;
910  int set = 0;
911  double _r[2] = {0.};
912  double _w[2] = {0.};
913  double _gt[6] = {0.};
914 
915  assert(raster != NULL);
916  assert(env != NULL);
917 
919 
920  for (i = 0; i < 4; i++) {
921  switch (i) {
922  case 0:
923  _r[0] = 0;
924  _r[1] = 0;
925  break;
926  case 1:
927  _r[0] = 0;
928  _r[1] = raster->height;
929  break;
930  case 2:
931  _r[0] = raster->width;
932  _r[1] = raster->height;
933  break;
934  case 3:
935  _r[0] = raster->width;
936  _r[1] = 0;
937  break;
938  }
939 
941  raster,
942  _r[0], _r[1],
943  &(_w[0]), &(_w[1]),
944  _gt
945  );
946  if (rtn != ES_NONE) {
947  rterror("rt_raster_get_envelope: Could not compute spatial coordinates for raster pixel");
948  return ES_ERROR;
949  }
950 
951  if (!set) {
952  set = 1;
953  env->MinX = _w[0];
954  env->MaxX = _w[0];
955  env->MinY = _w[1];
956  env->MaxY = _w[1];
957  }
958  else {
959  if (_w[0] < env->MinX)
960  env->MinX = _w[0];
961  else if (_w[0] > env->MaxX)
962  env->MaxX = _w[0];
963 
964  if (_w[1] < env->MinY)
965  env->MinY = _w[1];
966  else if (_w[1] > env->MaxY)
967  env->MaxY = _w[1];
968  }
969  }
970 
971  return ES_NONE;
972 }
void rterror(const char *fmt,...)
Wrappers used for reporting errors and info.
Definition: rt_context.c:219
@ ES_NONE
Definition: librtcore.h:182
@ ES_ERROR
Definition: librtcore.h:183
raster
Be careful!! Zeros function's input parameter can be a (height x width) array, not (width x height): ...
Definition: rtrowdump.py:121
rt_errorstate rt_raster_cell_to_geopoint(rt_raster raster, double xr, double yr, double *xw, double *yw, double *gt)
Convert an xr, yr raster point to an xw, yw point on map.
Definition: rt_raster.c:759
void rt_raster_get_geotransform_matrix(rt_raster raster, double *gt)
Get 6-element array of raster geotransform matrix.
Definition: rt_raster.c:710
double MinX
Definition: librtcore.h:167
double MaxX
Definition: librtcore.h:168
double MinY
Definition: librtcore.h:169
double MaxY
Definition: librtcore.h:170

References ES_ERROR, ES_NONE, rt_envelope::MaxX, rt_envelope::MaxY, rt_envelope::MinX, rt_envelope::MinY, rtrowdump::raster, rt_raster_cell_to_geopoint(), rt_raster_get_geotransform_matrix(), and rterror().

Referenced by RASTER_InterpolateRaster(), rt_raster_get_envelope_geom(), and test_raster_envelope().

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