Skip to main content
Ctrl+K
GeoUtils - Home GeoUtils - Home

Getting started

  • About GeoUtils
  • How to install
  • Quick start
  • Feature and scalability overview

Features

  • Fundamentals
    • Data objects and accessors
    • Operators and neighborhoods
    • Match-reference operations
    • Numerical interfacing
    • Sensor metadata parsing
  • Scalability
    • Usage and good practices
    • Concept definitions
    • Supported operations
    • Implementation strategies
    • Downsampling and overviews
    • Formats and cloud storage
    • Multiprocessing configuration
  • Geospatial data structures
    • The georeferenced raster
    • The georeferenced vector
    • The georeferenced point cloud
  • Referencing
  • Transformations
  • Proximity
  • Filters
  • Gap-filling
  • Sampling
  • Statistics
  • Uncertainty

Resources

  • Cheatsheet: From GDAL/OGR
  • Ecosystem

Examples

  • Input/output
    • Open and save from files
      • Open/save a point cloud
      • Open/save a raster
      • Open/save a vector
      • Parsing sensor metadata
    • Import and export
      • Creating a point cloud from arrays
      • Creating a raster from array
      • From/to GeoPandas
      • From/to Rasterio
  • Handling
    • Geo-transformations
      • Crop a raster
      • Crop a vector
      • Reproject a raster
      • Reproject a vector
    • Raster–vector interfacing
      • Mask from a vector
      • Polygonize a raster
      • Rasterize a vector
    • Raster–point interfacing
      • Gridding points to raster
      • Interpolate raster at points
      • Raster to regular points
      • Reduce raster around points
  • Analysis
    • Raster numerics
      • NumPy interfacing
      • Python arithmetic
    • Distance estimation
      • Metric buffer and without overlap
      • Proximity to raster or vector

Reference

  • API reference
    • DataArray.rst accessor
    • Dataset.rst accessor
    • Raster
    • GeoDataFrame.vct accessor
    • Vector
    • DataArray.pc accessor
    • Dataset.pc accessor
    • GeoDataFrame.pc accessor
    • PointCloud
    • Inherited Vector methods
      • geoutils.Vector.boundary
      • geoutils.Vector.centroid
      • geoutils.Vector.convex_hull
      • geoutils.Vector.envelope
      • geoutils.Vector.exterior
      • geoutils.Vector.representative_point
      • geoutils.Vector.normalize
      • geoutils.Vector.make_valid
      • geoutils.Vector.difference
      • geoutils.Vector.symmetric_difference
      • geoutils.Vector.union
      • geoutils.Vector.union_all
      • geoutils.Vector.intersection
      • geoutils.Vector.intersection_all
      • geoutils.Vector.clip_by_rect
      • geoutils.Vector.buffer
      • geoutils.Vector.simplify
      • geoutils.Vector.affine_transform
      • geoutils.Vector.translate
      • geoutils.Vector.rotate
      • geoutils.Vector.scale
      • geoutils.Vector.skew
      • geoutils.Vector.concave_hull
      • geoutils.Vector.delaunay_triangles
      • geoutils.Vector.voronoi_polygons
      • geoutils.Vector.minimum_rotated_rectangle
      • geoutils.Vector.minimum_bounding_circle
      • geoutils.Vector.extract_unique_points
      • geoutils.Vector.remove_repeated_points
      • geoutils.Vector.offset_curve
      • geoutils.Vector.reverse
      • geoutils.Vector.segmentize
      • geoutils.Vector.polygonize
      • geoutils.Vector.transform
      • geoutils.Vector.force_2d
      • geoutils.Vector.force_3d
      • geoutils.Vector.line_merge
      • geoutils.Vector.shortest_line
      • geoutils.Vector.interpolate
      • geoutils.Vector.shared_paths
      • geoutils.Vector.dissolve
      • geoutils.Vector.explode
      • geoutils.Vector.sjoin
      • geoutils.Vector.sjoin_nearest
      • geoutils.Vector.overlay
      • geoutils.Vector.snap
      • geoutils.Vector.to_crs
      • geoutils.Vector.set_crs
      • geoutils.Vector.get_geometry
      • geoutils.Vector.set_geometry
      • geoutils.Vector.rename_geometry
      • geoutils.Vector.set_precision
      • geoutils.Vector.get_coordinates
      • geoutils.Vector.cx
      • geoutils.Vector.area
      • geoutils.Vector.length
      • geoutils.Vector.interiors
      • geoutils.Vector.geom_type
      • geoutils.Vector.geom_bounds
      • geoutils.Vector.is_valid
      • geoutils.Vector.is_empty
      • geoutils.Vector.is_ring
      • geoutils.Vector.is_simple
      • geoutils.Vector.is_ccw
      • geoutils.Vector.is_closed
      • geoutils.Vector.has_z
      • geoutils.Vector.contains
      • geoutils.Vector.geom_equals
      • geoutils.Vector.crosses
      • geoutils.Vector.disjoint
      • geoutils.Vector.intersects
      • geoutils.Vector.overlaps
      • geoutils.Vector.touches
      • geoutils.Vector.within
      • geoutils.Vector.covers
      • geoutils.Vector.covered_by
      • geoutils.Vector.distance
      • geoutils.Vector.is_valid_reason
      • geoutils.Vector.count_coordinates
      • geoutils.Vector.count_geometries
      • geoutils.Vector.count_interior_rings
      • geoutils.Vector.get_precision
      • geoutils.Vector.minimum_clearance
      • geoutils.Vector.minimum_bounding_radius
      • geoutils.Vector.contains_properly
      • geoutils.Vector.dwithin
      • geoutils.Vector.hausdorff_distance
      • geoutils.Vector.frechet_distance
      • geoutils.Vector.hilbert_distance
      • geoutils.Vector.relate
      • geoutils.Vector.relate_pattern
      • geoutils.Vector.project
      • geoutils.Vector.from_file
      • geoutils.Vector.from_features
      • geoutils.Vector.from_postgis
      • geoutils.Vector.from_dict
      • geoutils.Vector.from_arrow
      • geoutils.Vector.to_file
      • geoutils.Vector.to_feather
      • geoutils.Vector.to_parquet
      • geoutils.Vector.to_arrow
      • geoutils.Vector.to_wkt
      • geoutils.Vector.to_wkb
      • geoutils.Vector.to_json
      • geoutils.Vector.to_postgis
      • geoutils.Vector.to_geo_dict
      • geoutils.Vector.to_csv
      • geoutils.Vector.has_sindex
      • geoutils.Vector.sindex
      • geoutils.Vector.total_bounds
    • geoutils.open_raster
    • geoutils.Raster.__init__
    • ds.rst.info() or Raster.info()
    • geoutils.raster.from_array
    • ds.rst.from_array() or Raster.from_array()
    • ds.rst.data or Raster.data
    • ds.rst.crs or Raster.crs
    • ds.rst.transform or Raster.transform
    • ds.rst.nodata or Raster.nodata
    • ds.rst.area_or_point or Raster.area_or_point
    • ds.rst.shape or Raster.shape
    • ds.rst.height or Raster.height
    • ds.rst.width or Raster.width
    • ds.rst.count or Raster.count
    • ds.rst.bands or Raster.bands
    • ds.rst.res or Raster.res
    • ds.rst.bbox or Raster.bbox
    • ds.rst.footprint or Raster.footprint
    • ds.rst.dtype or Raster.dtype
    • ds.rst.is_mask or Raster.is_mask
    • ds.rst.is_loaded or Raster.is_loaded
    • ds.rst.name or Raster.name
    • ds.rst.driver or Raster.driver
    • ds.rst.tags or Raster.tags
    • ds.rst.crop() or Raster.crop()
    • ds.rst.icrop() or Raster.icrop()
    • ds.rst.clip() or Raster.clip()
    • ds.rst.reproject() or Raster.reproject()
    • ds.rst.polygonize() or Raster.polygonize()
    • ds.rst.interp_at_points() or Raster.interp_at_points()
    • ds.rst.resample_at_points() or Raster.resample_at_points()
    • ds.rst.reduce_at_points() or Raster.reduce_at_points()
    • ds.rst.krige() or Raster.krige()
    • ds.rst.random_field() or Raster.random_field()
    • ds.rst.proximity() or Raster.proximity()
    • ds.rst.filter() or Raster.filter()
    • ds.rst.fill_nodata() or Raster.fill_nodata()
    • ds.rst.sieve() or Raster.sieve()
    • ds.rst.plot() or Raster.plot()
    • ds.rst.stats() or Raster.stats()
    • ds.rst.variogram() or Raster.variogram()
    • ds.rst.estimate_error_structure() or Raster.estimate_error_structure()
    • ds.rst.subsample() or Raster.subsample()
    • ds.rst.cosample() or Raster.cosample()
    • ds.rst.pairsample() or Raster.pairsample()
    • ds.rst.copy() or Raster.copy()
    • ds.rst.to_nanarray() or Raster.to_nanarray()
    • geoutils.Raster.astype
    • geoutils.Raster.set_mask
    • geoutils.Raster.get_mask
    • ds.rst.load() or Raster.load()
    • ds.rst.to_pointcloud() or Raster.to_pointcloud()
    • ds.rst.from_pointcloud_regular() or Raster.from_pointcloud_regular()
    • geoutils.DataArrayRasterAccessor.to_file
    • geoutils.DatasetRasterAccessor.to_file
    • geoutils.DataArrayRasterAccessor.to_geoutils
    • geoutils.Raster.to_file
    • geoutils.Raster.to_rio_dataset
    • geoutils.Raster.to_xarray
    • ds.rst.edit() or Raster.edit()
    • ds.rst.set_crs() or Raster.set_crs()
    • ds.rst.set_transform() or Raster.set_transform()
    • ds.rst.set_nodata() or Raster.set_nodata()
    • ds.rst.set_area_or_point() or Raster.set_area_or_point()
    • ds.rst.xy2ij() or Raster.xy2ij()
    • ds.rst.ij2xy() or Raster.ij2xy()
    • ds.rst.coords() or Raster.coords()
    • ds.rst.translate() or Raster.translate()
    • ds.rst.outside_image() or Raster.outside_image()
    • ds.rst.get_metric_crs() or Raster.get_metric_crs()
    • ds.rst.get_bbox_projected() or Raster.get_bbox_projected()
    • ds.rst.get_footprint_projected() or Raster.get_footprint_projected()
    • ds.rst.intersection() or Raster.intersection()
    • ds.rst.raster_equal() or Raster.raster_equal()
    • ds.rst.georeferenced_grid_equal() or Raster.georeferenced_grid_equal()
    • geoutils.raster.load_multiple_rasters
    • geoutils.raster.stack_rasters
    • geoutils.raster.merge_rasters
    • geoutils.open_vector
    • geoutils.Vector.__init__
    • gdf.vct.info() or Vector.info()
    • geoutils.Vector.gdf
    • gdf.vct.crs or Vector.crs
    • gdf.vct.bbox or Vector.bbox
    • gdf.vct.footprint or Vector.footprint
    • gdf.vct.name or Vector.name
    • gdf.vct.is_loaded or Vector.is_loaded
    • geoutils.GeoDataFrameVectorAccessor.to_file
    • geoutils.Vector.to_file
    • gdf.vct.crop() or Vector.crop()
    • gdf.vct.clip() or Vector.clip()
    • gdf.vct.reproject() or Vector.reproject()
    • gdf.vct.translate() or Vector.translate()
    • gdf.vct.rasterize() or Vector.rasterize()
    • gdf.vct.plot() or Vector.plot()
    • gdf.vct.create_mask() or Vector.create_mask()
    • gdf.vct.proximity() or Vector.proximity()
    • gdf.vct.buffer_metric() or Vector.buffer_metric()
    • gdf.vct.buffer_without_overlap() or Vector.buffer_without_overlap()
    • gdf.vct.copy() or Vector.copy()
    • gdf.vct.get_metric_crs() or Vector.get_metric_crs()
    • gdf.vct.from_bounds_projected() or Vector.from_bounds_projected()
    • gdf.vct.get_bbox_projected() or Vector.get_bbox_projected()
    • gdf.vct.get_footprint_projected() or Vector.get_footprint_projected()
    • geoutils.Vector.__getitem__
    • geoutils.open_pointcloud
    • geoutils.PointCloud.__init__
    • gdf.pc.info() or PointCloud.info()
    • geoutils.PointCloud.gdf
    • gdf.pc.data_name or PointCloud.data_name
    • gdf.pc.data or PointCloud.data
    • gdf.pc.crs or PointCloud.crs
    • gdf.pc.bbox or PointCloud.bbox
    • gdf.pc.footprint or PointCloud.footprint
    • gdf.pc.point_count or PointCloud.point_count
    • gdf.pc.is_loaded or PointCloud.is_loaded
    • geoutils.pointcloud.from_xyz
    • gdf.pc.from_xyz() or PointCloud.from_xyz()
    • gdf.pc.from_array() or PointCloud.from_array()
    • gdf.pc.from_tuples() or PointCloud.from_tuples()
    • gdf.pc.to_xyz() or PointCloud.to_xyz()
    • gdf.pc.to_array() or PointCloud.to_array()
    • gdf.pc.to_tuples() or PointCloud.to_tuples()
    • geoutils.PointCloud.to_xarray
    • geoutils.DataArrayPointCloudAccessor.to_file
    • geoutils.DataArrayPointCloudAccessor.to_las
    • geoutils.DataArrayPointCloudAccessor.to_parquet
    • geoutils.DatasetPointCloudAccessor.to_file
    • geoutils.DatasetPointCloudAccessor.to_las
    • geoutils.DatasetPointCloudAccessor.to_parquet
    • geoutils.GeoDataFramePointCloudAccessor.to_file
    • geoutils.PointCloud.to_file
    • geoutils.PointCloud.to_las
    • geoutils.PointCloud.to_parquet
    • gdf.pc.crop() or PointCloud.crop()
    • gdf.pc.clip() or PointCloud.clip()
    • gdf.pc.reproject() or PointCloud.reproject()
    • gdf.pc.translate() or PointCloud.translate()
    • gdf.pc.filter() or PointCloud.filter()
    • gdf.pc.grid() or PointCloud.grid()
    • gdf.pc.krige() or PointCloud.krige()
    • gdf.pc.random_field() or PointCloud.random_field()
    • gdf.pc.plot() or PointCloud.plot()
    • gdf.pc.copy() or PointCloud.copy()
    • gdf.pc.stats() or PointCloud.stats()
    • gdf.pc.variogram() or PointCloud.variogram()
    • gdf.pc.estimate_error_structure() or PointCloud.estimate_error_structure()
    • gdf.pc.subsample() or PointCloud.subsample()
    • gdf.pc.cosample() or PointCloud.cosample()
    • gdf.pc.pairsample() or PointCloud.pairsample()
    • gdf.pc.pointcloud_equal() or PointCloud.pointcloud_equal()
    • gdf.pc.georeferenced_coords_equal() or PointCloud.georeferenced_coords_equal()
    • geoutils.stats.nmad
    • geoutils.stats.linear_error
    • geoutils.stats.rmse
    • geoutils.stats.sum_square
    • geoutils.Variogram
      • geoutils.Variogram.combine
      • geoutils.Variogram.correlation
      • geoutils.Variogram.covariance
      • geoutils.Variogram.estimate
      • geoutils.Variogram.fit
      • geoutils.Variogram.from_dict
      • geoutils.Variogram.from_model
      • geoutils.Variogram.from_pairs
      • geoutils.Variogram.from_skgstat
      • geoutils.Variogram.gpytorch_parameters
      • geoutils.Variogram.plot
      • geoutils.Variogram.to_dataframe
      • geoutils.Variogram.to_dict
      • geoutils.Variogram.to_gpytorch
      • geoutils.Variogram.to_gstools
      • geoutils.Variogram.to_xarray
      • geoutils.Variogram.variogram
      • geoutils.Variogram.without_backend
    • geoutils.stats.plot_grouped_stats
    • geoutils.Variogram.plot
    • geoutils.operators.Interpolator
    • geoutils.operators.Reducer
    • geoutils.operators.LocalData
    • geoutils.operators.LinearCoefficients
    • geoutils.operators.PointNeighbours
    • geoutils.operators.GridNeighbours
    • geoutils.operators.interpolator.Nearest
    • geoutils.operators.interpolator.ScipyInterpolator
    • geoutils.operators.interpolator.Linear
    • geoutils.operators.interpolator.Cubic
    • geoutils.operators.interpolator.InverseDistance
    • geoutils.operators.interpolator.RasterConvolution
    • geoutils.operators.interpolator.Kriging
    • geoutils.operators.reducer.Mean
    • geoutils.operators.reducer.Sum
    • geoutils.operators.reducer.Quantile
    • geoutils.operators.reducer.Median
    • geoutils.operators.reducer.Mode
    • geoutils.operators.reducer.Minimum
    • geoutils.operators.reducer.Maximum
    • geoutils.operators.reducer.Range
    • geoutils.operators.reducer.Count
    • geoutils.operators.reducer.RootMeanSquare
    • geoutils.operators.reducer.StandardDeviation
    • geoutils.operators.reducer.AverageDistance
    • geoutils.operators.reducer.AveragePairwiseDistance
    • geoutils.ErrorMagnitude
    • geoutils.ErrorComponent
    • geoutils.ErrorStructure
    • geoutils.ErrorStructure.estimate
    • geoutils.PropagationSummary
    • geoutils.uncertainty.propagate
    • geoutils.uncertainty.random_field
    • geoutils.multiproc.MultiprocConfig
    • geoutils.multiproc.ClusterGenerator
    • geoutils.multiproc.BasicCluster
    • geoutils.multiproc.MpCluster
    • geoutils.multiproc.map_overlap
    • geoutils.multiproc.map_collect
    • geoutils.profiler
  • Configuration
  • Benchmarking
    • Performance
    • Profiling
  • Command line interface
  • Data examples
  • Release notes

Project information

  • Contributing
  • Credits and background
    • History
    • Mission
    • Authors
    • Funding acknowledgments
    • License
  • Repository
  • Show source
  • Suggest edit
  • Open issue
  • .md

Scalability

Scalability#

The following sections explain how to work efficiently with large geospatial datasets through chunked execution with Dask and multiprocessing, downsampling to reduce data before or during an operation, all while considering file formats and cloud storage.

For measured comparisons between execution backends and tools to inspect your own workflows, see Benchmarking.

  • Usage and good practices
    • Using Dask through accessors
    • Using Multiprocessing through GeoUtils objects
    • Good practices with chunked and lazy operations
  • Concept definitions
    • Deferred I/O and implicit loading
    • Chunked execution
    • Lazy execution
  • Supported operations
    • Table summary
    • Preliminary reads
    • Computation breakpoints
  • Implementation strategies
    • Summary
    • Logic of implementations
  • Downsampling and overviews
    • Downsampling when opening
    • Downsampling when plotting
    • Downsampling within operations
    • Raster overviews
    • Point cloud levels of detail
  • Formats and cloud storage
    • Choosing a file format
    • Reading from cloud storage
    • Reading and writing in chunks
  • Multiprocessing configuration
    • Using MultiprocConfig
    • Advanced block functions

previous

Sensor metadata parsing

next

Usage and good practices

By GeoUtils Developers

© Copyright 2026, GeoUtils Developers.