R/segmentAnalysis.R

Defines functions segmentAnalysis

# SPDX-FileCopyrightText: 2019 Fani Kostourou
# SPDX-FileCopyrightText: 2019-2024 Petros Koutsolampros
#
# SPDX-License-Identifier: GPL-3.0-only

segmentAnalysis <- function(segmentGraph,
                            radii,
                            radiusStepType,
                            analysisStepType,
                            weightWithColumn = NULL,
                            includeChoice = FALSE,
                            tulipBins = 0L,
                            selOnly = FALSE,
                            copyMap = TRUE,
                            verbose = FALSE,
                            progress = FALSE) {
    if (!(analysisStepType %in% as.list(TraversalType))) {
        stop("Unknown segment analysis type: ", analysisStepType, call. = FALSE)
    }
    if (!(radiusStepType %in% as.list(TraversalType))) {
        stop("Unknown radius type: ", radiusStepType, call. = FALSE)
    }

    numRadii <- vapply(radii, function(r) {
        if (r == "n") {
            return(-1L)
        } else {
            return(as.integer(r))
        }
    }, FUN.VALUE = 1L)

    result <- Rcpp_runSegmentAnalysis(
        attr(segmentGraph, "sala_map"),
        numRadii,
        radiusStepType,
        analysisStepType,
        weightWithColumn,
        includeChoice,
        tulipBins,
        selOnlyNV = selOnly,
        copyMapNV = copyMap,
        verboseNV = verbose,
        progressNV = progress
    )
    return(processShapeMapResult(segmentGraph, result))
}

Try the alcyon package in your browser

Any scripts or data that you put into this service are public.

alcyon documentation built on April 3, 2025, 6:18 p.m.