Skip to content

Cartography

Jason Humber edited this page Jul 27, 2026 · 4 revisions

Generalization

simplify_line

Removes vertices from line features while retaining overall line shape based on the specified tolerance.

from fudgeo import FeatureClass, GeoPackage
from spyops.cartography import Meters, simplify_line

gpkg = GeoPackage('/some/path/ntdb_zm.gpkg')
source = gpkg['topography_z_l']
target = FeatureClass(gpkg, name='simplified_contours_l')

fc = simplify_line(source, target=target, tolerance=Meters(100))

simplify_polygon

Removes vertices from polygon features while retaining overall polygon shape based on the specified tolerance.

from fudgeo import FeatureClass, GeoPackage
from spyops.cartography import Meters, simplify_polygon

gpkg = GeoPackage('/some/path/ntdb_zm.gpkg')
source = gpkg['hydro_z_a']
target = FeatureClass(gpkg, name='simplified_water_a')

fc = simplify_polygon(source, target=target, tolerance=Meters(50))

smooth_line

Smooth line features to give a more aesthetically pleasing shape while retaining overall line shape. Algorithm options include Polynomial Approximation with Exponential Kernel (PAEK) and Cubic Bezier Curves (BEZIER). The tolerance specified applies to PAEK only.

from fudgeo import FeatureClass, GeoPackage
from spyops.cartography import Feet, smooth_line

gpkg = GeoPackage('/some/path/ntdb_zm.gpkg')
source = gpkg['topography_z_l']
target = FeatureClass(gpkg, name='smoothed_contours_l')

fc = smooth_line(source, target=target, tolerance=Feet(300))

smooth_polygon

Smooth polygon features to give a more aesthetically pleasing shape while retaining overall polygon shape. Algorithm options include Polynomial Approximation with Exponential Kernel (PAEK) and Cubic Bezier Curves (BEZIER). The tolerance specified applies to PAEK only.

from fudgeo import FeatureClass, GeoPackage
from spyops.cartography import smooth_polygon

gpkg = GeoPackage('/some/path/ntdb_zm.gpkg')
source = gpkg['hydro_zm_a']
target = FeatureClass(gpkg, name='smoothed_water_a')

fc = smooth_polygon(source, target=target, tolerance=10**-6)

Clone this wiki locally