Skip to main content

Dimensionally Extended 9-Intersections Matrix utilities

Project description

As part of my continuing education about the theory and methods underlying Shapely, GEOS, JTS, and the OGC’s Simple Features specs, I’ve written a small package of utilities for working with DE-9IM matrices and patterns: http://bitbucket.org/sgillies/de9im/. Shapely provides the standard (these are probably my favorite OGC standards) predicates as geometry class methods:

>>> from shapely.wkt import loads
>>> p = loads('POLYGON ((1.0 0.0, 0.0 -1.0, -1.0 0.0, 0.0 1.0, 1.0 0.0))')
>>> q = loads('POLYGON ((3.0 0.0, 2.0 -1.0, 1.0 0.0, 2.0 1.0, 3.0 0.0))')
>>> p.disjoint(q)
False
>>> p.intersects(q)
True
>>> p.touches(q)
True

but what if you wanted to test whether the features touched at exactly one point only? A “side hug”, you might say. Instead of computing the intersection and checking its geometry type, you can use the de9im package to define a DE-9IM matrix pattern and test it against the relation matrix for the two features. The 0 in the pattern below requires that the intersection of the boundaries of the features be a 0-dimensional figure. In other words: a point:

>>> from de9im import pattern
>>> side_hug = pattern('FF*F0****')
>>> im = p.relate(q)
>>> print im
FF2F01212
>>> side_hug.matches(im)
True

One may also use familiarly named patterns:

>>> from de9im.patterns import touches
>>> repr(touches)
"DE-9IM or-pattern: 'FT*******||F**T*****||F***T****'"
>>> touches.matches(im)
True

Project details


Release history Release notifications | RSS feed

This version

0.1

Download files

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

Source Distribution

de9im-0.1.tar.gz (3.3 kB view details)

Uploaded Source

File details

Details for the file de9im-0.1.tar.gz.

File metadata

  • Download URL: de9im-0.1.tar.gz
  • Upload date:
  • Size: 3.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for de9im-0.1.tar.gz
Algorithm Hash digest
SHA256 5468625078a488a95ca0f0338c97368a82a9d08db3d8b2409949342329bb31b1
MD5 0b00313663d656cc421f8952664559ab
BLAKE2b-256 8631f6169b1c477b037f18146299f77f01572a3ec99aeb661f66be530a9c5239

See more details on using hashes here.

Supported by

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