pyorps.io

Input/output operations for geospatial data.

This module provides: 1. Base classes for working with vector and raster geospatial data 2. Dataset implementations for local and in-memory data sources 3. Web Feature Service (WFS) data loading capabilities 4. Factory functions to create appropriate dataset instances

class pyorps.io.GeoDataset(file_source, crs=None)[source]

Bases: ABC

Parameters:
  • file_source (Any)

  • crs (str | None)

__init__(file_source, crs=None)[source]
Parameters:
  • file_source (Any)

  • crs (str | None)

crs: str | None = None
data: GeoDataFrame | ndarray | None = None
abstractmethod load_data(**kwargs)[source]
file_source: Any
class pyorps.io.VectorDataset(file_source, crs=None, bbox=None, mask=None)[source]

Bases: GeoDataset, ABC

Parameters:
__init__(file_source, crs=None, bbox=None, mask=None)[source]
Parameters:
abstractmethod apply_bbox()[source]
abstractmethod apply_mask()[source]
bbox: Polygon | GeoDataFrame | GeoSeries | tuple[float, float, float, float] | None = (None,)
abstractmethod correct_crs()[source]
mask: Polygon | GeoDataFrame | tuple | None = (None,)
abstractmethod post_loading()[source]
class pyorps.io.RasterDataset(file_source, crs=None)[source]

Bases: GeoDataset, ABC

Parameters:
transform: Affine
shape: tuple[int, int]
count: int
dtype: dtype
class pyorps.io.InMemoryVectorDataset(file_source, crs=None, bbox=None, mask=None)[source]

Bases: VectorDataset

Parameters:
apply_bbox()[source]
apply_mask()[source]
correct_crs()[source]
load_data(**kwargs)[source]
post_loading()[source]
class pyorps.io.LocalVectorDataset(file_source, crs=None, bbox=None, mask=None)[source]

Bases: InMemoryVectorDataset

Parameters:
apply_bbox()[source]
apply_mask()[source]
load_data(**kwargs)[source]
class pyorps.io.WFSVectorDataset(file_source, crs=None, bbox=None, mask=None)[source]

Bases: LocalVectorDataset

Parameters:
apply_mask()[source]
load_data(**kwargs)[source]
class pyorps.io.LocalRasterDataset(file_source, crs=None)[source]

Bases: RasterDataset

Parameters:
load_data(**kwargs)[source]
class pyorps.io.InMemoryRasterDataset(file_source, crs, transform)[source]

Bases: RasterDataset

Parameters:
  • file_source (Any)

  • crs (str)

  • transform (Affine)

__init__(file_source, crs, transform)[source]
Parameters:
  • file_source (Any)

  • crs (str)

  • transform (Affine)

load_data(**kwargs)[source]
pyorps.io.initialize_geo_dataset(file_source, crs=None, bbox=None, mask=None, transform=None)[source]

Factory function to create the appropriate GeoDataset instance based on the provided input.

Parameters:
Returns:

An appropriate GeoDataset subclass instance

Return type:

GeoDataset

Examples

# From local vector file vector_dataset = create_geo_dataset(“path/to/shapefile.shp”, crs=”EPSG:4326”)

# From GeoDataFrame vector_dataset = create_geo_dataset(gdf, bbox=(x1, y1, x2, y2))

# From WFS source wfs_dataset = create_geo_dataset({“url”: “https://example.com/wfs”,

“layer”: “layer1”})

# From local raster file raster_dataset = create_geo_dataset(“path/to/dem.tif”)

# From numpy array raster_dataset = create_geo_dataset(array_data, transform=transform,

crs=”EPSG:4326”)

pyorps.io.load_from_wfs(url, layer, bbox=None, mask=None, filter_params=None, auto_match=True, max_workers=4)[source]

Load data from a Web Feature Service (WFS) using chunked loading.

Parameters:
  • url (str) – The base URL of the WFS service

  • layer (str) – Name of the layer to retrieve

  • bbox (Polygon | GeoDataFrame | GeoSeries | tuple[float, float, float, float] | None) – Optional bounding box to limit the query extent (minx, miny, maxx, maxy)

  • mask (Polygon | GeoDataFrame | tuple | None) – Optional geometry mask to limit the query (Shapely Polygon, GeoDataFrame, or GeoSeries)

  • filter_params (dict | None) – Additional WFS parameters to filter results

  • auto_match (bool) – Whether to attempt finding similar layer names if exact match not found

  • max_workers (int) – Maximum number of parallel threads to use

Returns:

Loaded GeoDataFrame or None if no data could be loaded

Raises:

WFSLayerNotFoundError – If the layer cannot be found and auto_match is False

Return type:

GeoDataFrame | None

exception pyorps.io.WFSError[source]

Bases: Exception

Base exception for WFS-related errors.

exception pyorps.io.WFSConnectionError[source]

Bases: WFSError

Exception raised for connection issues with WFS services.

exception pyorps.io.WFSResponseParsingError[source]

Bases: WFSError

Exception raised when parsing WFS responses fails.

exception pyorps.io.WFSLayerNotFoundError[source]

Bases: WFSError

Exception raised when a requested layer cannot be found.

Modules

geo_dataset

PYORPS: An Open-Source Tool for Automated Power Line Routing

vector_loader

PYORPS: An Open-Source Tool for Automated Power Line Routing