## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

## ----setup--------------------------------------------------------------------
library(vaster)

## -----------------------------------------------------------------------------
## a 10x5 grid covering [0, 100] x [0, 50]
dimension <- c(10, 5)
extent <- c(0, 100, 0, 50)

## -----------------------------------------------------------------------------
n_cell(dimension)
x_res(dimension, extent)
y_res(dimension, extent)

## -----------------------------------------------------------------------------
## cell numbers for a 4x3 grid
dimension <- c(4, 3)
extent <- c(0, 4, 0, 3)

## total cells
n_cell(dimension)

## cell 1 is top-left
xy_from_cell(dimension, extent, 1)

## cell 4 is top-right  
xy_from_cell(dimension, extent, 4)

## cell 12 is bottom-right
xy_from_cell(dimension, extent, 12)

## -----------------------------------------------------------------------------
## all cell centres
cells <- seq_len(n_cell(dimension))
xy_from_cell(dimension, extent, cells)

## -----------------------------------------------------------------------------
dimension <- c(10, 5)
extent <- c(0, 100, 0, 50)

x_res(dimension, extent)  
y_res(dimension, extent)  

## -----------------------------------------------------------------------------
origin(dimension, extent)

## -----------------------------------------------------------------------------
extent <- c(-180, 180, -90, 90)

x_min(c(1, 1), extent)
x_max(c(1, 1), extent)
y_min(c(1, 1), extent)
y_max(c(1, 1), extent)

xlim(c(1, 1), extent)
ylim(c(1, 1), extent)

## -----------------------------------------------------------------------------
dimension <- c(4, 3)
extent <- c(0, 4, 0, 3)

## x coordinates of cell centres (one per column)
x_centre(dimension, extent)

## y coordinates of cell centres (one per row)
y_centre(dimension, extent)

## x coordinates of cell corners/edges (ncol + 1 values)
x_corner(dimension, extent)

## y coordinates of cell corners/edges (nrow + 1 values)
y_corner(dimension, extent)

## -----------------------------------------------------------------------------
xy(dimension, extent)

## ----eval = FALSE-------------------------------------------------------------
# ## terra approach
# library(terra)
# r <- rast(ncol = 10, nrow = 5, xmin = 0, xmax = 100, ymin = 0, ymax = 50)
# res(r)
# ncell(r)
# xyFromCell(r, 1)
# 
# ## vaster approach
# dimension <- c(10, 5)
# extent <- c(0, 100, 0, 50)
# c(x_res(dimension, extent), y_res(dimension, extent))
# n_cell(dimension)
# xy_from_cell(dimension, extent, 1)

