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.2.6.tar.gz (4.5 MB view details)

Uploaded Source

Built Distribution

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

geoiters-0.2.6-py3-none-any.whl (4.5 MB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for geoiters-0.2.6.tar.gz
Algorithm Hash digest
SHA256 6cc7dfcf48e874631b38bdfdce96b1403b8c797310cc4a36bf2bef5dbf5b6343
MD5 d03912c69634587b75663b18c5af1589
BLAKE2b-256 4199551da5738fb566e15f38b34212a5ab73596a3f036144918bcda537779ec6

See more details on using hashes here.

Provenance

The following attestation bundles were made for geoiters-0.2.6.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.2.6-py3-none-any.whl.

File metadata

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

File hashes

Hashes for geoiters-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 ed2ededf4c3b5574610588bea79686366a1c23aaad866442da8f69cbf99b488e
MD5 2f10c5e265a36a22dd3f791b6b4e0a63
BLAKE2b-256 536b86f645cdde63e7fe446c15357cadc3502dd37beb86af585b4f700c3fcd4d

See more details on using hashes here.

Provenance

The following attestation bundles were made for geoiters-0.2.6-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