Skip to contents

Streams a terra::SpatRaster block-by-block into the C++ FeaturedSpace streaming constructor, filtering NA cells on the fly and handing the concatenated (num_points x nlyr(rast)) matrix to maxent_generate_features so feature objects are built inside C++ without the R caller having to materialise the full raster stack first.

Usage

maxent_featured_space_from_rast(
  rast,
  sample_indices,
  feature_types = c("linear", "quadratic", "product", "threshold", "hinge"),
  n_thresholds = 10L,
  n_hinges = 10L,
  enable_streaming_eval = TRUE
)

Arguments

rast

A terra::SpatRaster with one layer per environmental variable. Layers must be named; names are passed through to maxent_generate_features so generated features carry the same identifiers as the layer names (e.g. bio1^2, bio1*bio2).

sample_indices

Integer vector: 0-based indices of occurrence samples in the concatenated stream of finite background cells. See maxent_raster_sample_indices for a helper that converts occurrence data.frames into these indices.

feature_types

Character vector of feature types to generate. Any subset of c("linear", "quadratic", "product", "threshold", "hinge"). Defaults to all types.

n_thresholds

Integer; number of threshold knots per variable.

n_hinges

Integer; number of hinge knots per variable.

enable_streaming_eval

Logical; when TRUE, enables streaming-evaluation mode after object construction.

Value

External pointer to a FeaturedSpace object.

Details

This is the Phase E.2 entry point described in docs/ARCHITECTURE_terra_raster.md (sections 3.1 and 3.2). The result is bit-for-bit identical to the dense path (maxent_generate_features -> maxent_featured_space) when the same data, sample indices, and feature configuration are used.

Examples

if (FALSE) { # \dontrun{
library(terra)
r <- rast(system.file("ex/elev.tif", package = "terra"))
# Pretend the first 3 finite cells are presences:
fs <- maxent_featured_space_from_rast(
    r,
    sample_indices = c(0L, 1L, 2L),
    feature_types  = c("linear", "quadratic")
)
res <- maxent_train(fs)
} # }