extractor Module

Road extraction functionality.

class geo_sampling.extractor.RoadExtractor(country: str, region: str, admin_level: int = 1, data_dir: str = 'data')[source]

Bases: object

Main class for extracting road segments from OpenStreetMap data.

This class handles the complete workflow: 1. Download administrative boundaries from GADM 2. Generate BBBike extract URLs 3. Download OSM data 4. Extract and segment roads

get_available_road_types() List[str][source]

Get list of available road types in the extracted data.

Returns:

Sorted list of unique road types

get_roads(road_types: str | List[str] | None = None, segment_length: int = 500, force_refresh: bool = False) List[RoadSegment][source]

Extract road segments for the configured region.

Parameters:
  • road_types – Road types to include (None = all types)

  • segment_length – Target segment length in meters

  • force_refresh – Force re-download of data

Returns:

List of RoadSegment objects

plot(road_types: str | List[str] | None = None, segment_length: int = 500, title: str | None = None, figsize: tuple = (12, 10)) None[source]

Plot the extracted road segments.

Parameters:
  • road_types – Road types to include

  • segment_length – Target segment length in meters

  • title – Plot title (auto-generated if None)

  • figsize – Figure size

save_csv(path: str | Path, road_types: str | List[str] | None = None, segment_length: int = 500) None[source]

Save road segments to CSV file.

Parameters:
  • path – Output file path

  • road_types – Road types to include

  • segment_length – Target segment length in meters

to_dataframe(road_types: str | List[str] | None = None, segment_length: int = 500)[source]

Convert road segments to pandas DataFrame.

Parameters:
  • road_types – Road types to include

  • segment_length – Target segment length in meters

Returns:

pandas.DataFrame with road segment data

geo_sampling.extractor.extract_roads(country: str, region: str, admin_level: int = 1, road_types: str | List[str] | None = None, segment_length: int = 500, data_dir: str = 'data') List[RoadSegment][source]

Convenience function to extract roads in one call.

Parameters:
  • country – Country name

  • region – Region name

  • admin_level – Administrative level

  • road_types – Road types to include

  • segment_length – Target segment length in meters

  • data_dir – Data directory

Returns:

List of RoadSegment objects