Skip to main content

A Python package for geospatial iteration utilities

Project description

GeoIters

A simple package for geospatial iterators.

Installation

pip install geoiters

Usage

1. Grid Iterator

Grid by Rows and Columns

from geoiters.grid import GridIterator
from geoiters.utils import Extent

ext = Extent(-74.2, 40.65, -73.7, 40.85, crs="EPSG:4326")
itr = GridIterator(ext, rows=10, columns=10)

for i, patch in enumerate(itr):
    print(i, patch)

See the complete example here.

Grid by Max Patch Area

from geoiters.grid import GridIterator
from geoiters.utils import Extent

ext = Extent(-74.2, 40.65, -73.7, 40.85, crs="EPSG:4326")
itr = GridIterator(ext, patch_max_area=10_000_000) # area in sqm

for i, patch in enumerate(itr):
    print(i, patch)

See the complete example here.

To Use with Multiprocessing

import time
import multiprocessing as mp
from geoiters.utils import Extent
from geoiters.grid import GridIterator

def worker(patch: Extent):
    time.sleep(1) # simulate a time-consuming task
    print(f"Worker {mp.current_process().name}: "
          f"Processing patch with extent {patch}")

ext = Extent(-74.2, 40.65, -73.7, 40.85, crs="EPSG:4326")
itr = GridIterator(ext, rows=4, columns=4)

pool = mp.Pool(processes=4)
pool.map(worker, itr)
pool.close()
pool.join()

See the complete example here.

2. Tiles Iterator

from geoiters.grid import TilesIterator
from geoiters.utils import Extent

ext = Extent(-74.2, 40.65, -73.7, 40.85, crs="EPSG:4326")
itr = TilesIterator(ext, zoom_level=13)

for i, tile in enumerate(itr):
    print(i, tile)

See the complete example here.

Features

  • Lightweight and easy to use.
  • Efficient iteration over geospatial grids.
  • Divide a geographical extent into patches and iterate through them.
  • Divide a geographical extent by the number of rows and the number of columns.
  • Divide a geographical extent by the maximum area of a single patch.

To be Implemented

  • Implement a hexagonal tessellation iterator.
  • Overlapping patches.
  • Iteration order options (sequence, checkered, etc.)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

geoiters-0.3.1.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

geoiters-0.3.1-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

Details for the file geoiters-0.3.1.tar.gz.

File metadata

  • Download URL: geoiters-0.3.1.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for geoiters-0.3.1.tar.gz
Algorithm Hash digest
SHA256 46bd5428906432c4a705f8441728b3145e46826c352d569b6f72851283b804f7
MD5 8ef6e1a33c62d76543bcda2a184e2e27
BLAKE2b-256 88e9b1b8bac8c28aabec998be8bbe99588648f950d986d52f892ee2c08266a94

See more details on using hashes here.

Provenance

The following attestation bundles were made for geoiters-0.3.1.tar.gz:

Publisher: publish_pypi.yml on sabughazal/geoiters

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file geoiters-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: geoiters-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 11.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for geoiters-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 359311498083941621067b2ebe5cfba849fb017d1c949ba753cd1ce9b92332ba
MD5 4a581eb919259f1738dc47d89d6b4352
BLAKE2b-256 f12163d09bfbda916020c638f1e6b865339fbf2d91612d8e0d6b2e178e38a452

See more details on using hashes here.

Provenance

The following attestation bundles were made for geoiters-0.3.1-py3-none-any.whl:

Publisher: publish_pypi.yml on sabughazal/geoiters

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page