wkt.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. """Load/dump geometries using the well-known text (WKT) format.
  2. Also provides pickle-like convenience functions.
  3. """
  4. import shapely
  5. def loads(data):
  6. """Load a geometry from a WKT string.
  7. Parameters
  8. ----------
  9. data : str
  10. A WKT string
  11. Returns
  12. -------
  13. Shapely geometry object
  14. """
  15. return shapely.from_wkt(data)
  16. def load(fp):
  17. """Load a geometry from an open file.
  18. Parameters
  19. ----------
  20. fp :
  21. A file-like object which implements a `read` method.
  22. Returns
  23. -------
  24. Shapely geometry object
  25. """
  26. data = fp.read()
  27. return loads(data)
  28. def dumps(ob, trim=False, rounding_precision=-1, **kw):
  29. """Dump a WKT representation of a geometry to a string.
  30. Parameters
  31. ----------
  32. ob :
  33. A geometry object of any type to be dumped to WKT.
  34. trim : bool, default False
  35. Remove excess decimals from the WKT.
  36. rounding_precision : int, default -1
  37. Round output to the specified number of digits.
  38. Default behavior returns full precision.
  39. **kw : kwargs, optional
  40. Keyword output options passed to :func:`~shapely.to_wkt`.
  41. Returns
  42. -------
  43. input geometry as WKT string
  44. """
  45. return shapely.to_wkt(ob, trim=trim, rounding_precision=rounding_precision, **kw)
  46. def dump(ob, fp, **settings):
  47. """Dump a geometry to an open file.
  48. Parameters
  49. ----------
  50. ob :
  51. A geometry object of any type to be dumped to WKT.
  52. fp :
  53. A file-like object which implements a `write` method.
  54. **settings : kwargs, optional
  55. Keyword output options passed to :func:`~shapely.wkt.dumps`.
  56. Returns
  57. -------
  58. None
  59. """
  60. fp.write(dumps(ob, **settings))