Skip to content

Vector Operations

Vector operations transform feature geometries: buffering, dissolving, intersecting, clipping, simplifying, and more. Implemented using GeoPandas and Shapely, running in the local or cloud compute tier.

Part of the geo domain.

Operations

OperationTypeDescriptionKey Params
vector_buffervector → vectorCreate buffer zones around geometries. Supports positive (expansion) and negative (erosion) buffers. Output is always polygon.distance (meters, required), cap_style, join_style, dissolve (bool)
vector_dissolvevector → vectorMerge features into a single geometry, optionally grouped by attribute.by (attribute name)
vector_intersectionvector + vector → vectorGeometric intersection of two feature sets. Returns overlapping portions.(none)
vector_unionvector + vector → vectorGeometric union of two feature sets. Returns combined area.(none)
vector_simplifyvector → vectorReduce vertices while maintaining shape (Douglas-Peucker algorithm).tolerance (required)
vector_clipvector + vector → vectorClip features to a mask polygon. Only portions inside the mask are retained.(none, mask is an input)
vector_centroidvector → vectorCompute centroid points for polygon or line features.(none)
vector_harmonizevector → vectorHarmonize feature attributes using crosswalk mappings.crosswalk reference
vector_spatial_containmentvector + vector → vectorSpatial containment query: features from set A that are within features of set B.(none)
vector_name_cleanvector → vectorClean and normalize feature name attributes.rules
vector_upstream_tracevector → vectorTrace upstream network from a point through connected features.(network topology)

Examples

Buffer and Dissolve

yaml
layers:
  analysis/exclusion-zones:
    type: vector
    description: "500m buffer around protected areas, dissolved"
    compute:
      op: vector_buffer
      inputs:
        features: { layer: source/protected-areas }
      params:
        distance: 500
        dissolve: true
    style:
      fill: "#D32F2F"
      fill-opacity: 0.3
      stroke: "#B71C1C"

Intersection

yaml
layers:
  analysis/overlap:
    type: vector
    compute:
      op: vector_intersection
      inputs:
        features1: { layer: source/parcels }
        features2: { layer: source/flood-zones }

Clip Features to Study Area

yaml
layers:
  analysis/local-roads:
    type: vector
    compute:
      op: vector_clip
      inputs:
        features: { layer: source/road-network }
        mask: { layer: source/study-area }

Dissolve by Attribute

yaml
layers:
  analysis/county-boundaries:
    type: vector
    compute:
      op: vector_dissolve
      inputs:
        features: { layer: source/census-tracts }
      params:
        by: county_fips

Licensed under CC-BY-4.0