arc.raster-class: Reference Class "arc.raster"

arc.raster-classR Documentation

Reference Class "arc.raster"

Description

A raster dataset is any valid raster format organized into one or more bands. Each band consists of an array of pixels (cells), and each pixel has a value. A raster dataset has at least one band. Raster data is a discrete data representation in which space is divided into uniform cells, or pixels.

Fields

sr

Get or set spacial reference

extent

Get or set extent. Use it to read a portion of the raster.

nrow

Get or set number of rows.

ncol

Get or set number of columns.

cellsize

Get pixel size.

pixel_type

Get or set pixel type. For details see ArcGIS help on pixel types.

pixel_depth

Get pixel depth. Pixel depth/Bit depth (1, 2, 4, 8, 16, 32, 64). For details see ArcGIS help on pixel types.

nodata

Get or set nodata value

resample_type

Get or set resampling type. For details see ArcGIS help on rasampling.

colormap

Get or set color map table. Return is a vector of 256 colors in the RGB format.

bands

Get list of raster bands

band

Get a single raster band

Methods

names

return bands names

dim

retrieves dimensions

$show()

show object

$pixel_block(ul_x, ul_y, nrow, ncol, bands)

Read pixel values.

ul_x, ul_y - optional, upper left corner in pixels nrow, ncol - optional, size in pixels bands - optional, select band(s).

The values returned are always a matrix, with the rows representing cells, and the columns representing band(s), c(nrow*ncol, length(bands)) (see Example #1)

$write_pixel_block(values, ul_x, ul_y, ncol, nrow)

Write pixel values. (see Example #2)

ul_x, ul_y - optional, upper left corner in pixels nrow, ncol - optional, size in pixels

$has_colormap()

logical, return TRUE if raster has colormap

$attribute_table()

Query raster attribute table. Return data.frame object.

Raster datasets that contain attribute tables typically have cell values that represent or define a class, group, category, or membership.

$save_as(path, opt)

TODO (see Example #3)

$commit(opt)

End writing. (see Example #2.3)

opt - additional parameter(s): (default: "build-stats"), ("build-pyramid")

arc.write

Write to an ArcGIS raster dataset

See Also

arc.raster, arc.write, arc.datasetraster-class

Examples


## Example #1. read 5x5 pixel block with 10,10 offset
fp <- system.file(
  "extdata", "raster_32_sgn.tif",
  package = "arcgisbinding"
)
r <- arc.raster(arc.open(fp))
v <- r$pixel_block(ul_x = 10L, ul_y = 10L, nrow = 5L, ncol= 5L)
dim(v) == c(25, 1)
#[1] TRUE TRUE

stopifnot(length(v) == 25)

## Example #2. process big raster
## 2.1 create new arc.raster
r2 <- arc.raster(
  NULL,
  path = tempfile("r2", fileext=".img"),
  dim = dim(r), 
  pixel_type = r$pixel_type, 
  nodata = r$nodata,
  extent = r$extent, 
  sr = r$sr
)

## 2.2 loop by rows, process pixels
for (i in 1:r$nrow) {
  v <- r$pixel_block(ul_y = i - 1L, nrow = 1L)
  r2$write_pixel_block(v * 1.5, ul_y = i - 1L, nrow = 1L, ncol = r$ncol)
}

## 2.3 stop all writings and create raster file
r2$commit()

## Example #3. resample raster
r <- arc.raster(arc.open(fp), nrow = 200L, ncol = 200L, resample_type = "BilinearGaussBlur")

## save to a different format
r$save_as(tempfile("new_raster", fileext = ".img"))

## Example #4. get and compare all pixel values
rx <- raster::brick(fp)
r <- arc.raster(arc.open(fp))
stopifnot(all(raster::values(rx) == r$pixel_block()))



R-ArcGIS/r-bridge documentation built on June 10, 2025, 10:29 p.m.