Skip to content

A Python library for generating land plats from raw Public Land Survey System (PLSS) land descriptions (or "legal descriptions").

License

Notifications You must be signed in to change notification settings

JamesPImes/pyTRSplat

Repository files navigation

pyTRSplat

Imported as pytrsplat, this Python library is an extension of the pyTRS library that generates customizable plats from Public Land Survey System (PLSS) land descriptions (or "legal descriptions").

tiny_example_plat

To install

Directly from the GitHub repo:

pip install git+https://github.com/JamesPImes/pyTRSplat

Requires

Python 3.9 or newer

Quickstart Guide and Docs

A quickstart guide is provided here.

Documentation is provided on ReadTheDocs.

Sample Outputs

Processing the following example PLSS land description...

Township 154 North, Range 97 West
Section 1: Lots 1 - 3, S/2N/2
Section 5: Lot 4, The South Half of the Northwest Quarter, and The Southwest Quarter
Section 6: Lots 1 - 7, S/2NE/4, SE/4NW/4, E/2SW/4, SE/4
Section 13: That portion of the E/2 lying north of the river and west of the private road right-of-way as more particularly described in Book 1234 / Page 567, recorded on January 1, 1964 in the records of Example County, as amended in that Right-of-Way Amendment Agreement dated December 10, 1987, recorded on December 11, 1987 as Document No. 1987-1234567 of the records of Example County.
Section 14: NE/4, NE/4NW/4, S/2NW/4NW/4

...results in the following square plat:

sample_plat_01

...or the following letter-sized page, with tracts written at the end (click for full size):

sample_plat_01

...or could be configured any number of ways for different sizes, fonts, colors, page size/shape, etc.

Desktop Application

See release v0.4.2 for the desktop application.

(No longer maintained as part of this library; removed as of v0.5.0.)

plat_gui_01

Quick Demo

The following code generates the letter-size plat shown in the examples above. It assumes that the sections along the north and west boundaries of the township have the 'usual' ~40-acre lots.

import pytrsplat

land_description = '''Township 154 North, Range 97 West
Section 1: Lots 1 - 3, S/2N/2
Section 5: Lot 4, The South Half of the Northwest Quarter, and The Southwest Quarter
Section 6: Lots 1 - 7, S/2NE/4, SE/4NW/4, E/2SW/4, SE/4
Section 13: That portion of the E/2 lying north of the river and west of the private road right-of-way as more particularly described in Book 1234 / Page 567, recorded on January 1, 1964 in the records of Example County, as amended in that Right-of-Way Amendment Agreement dated December 10, 1987, recorded on December 11, 1987 as Document No. 1987-1234567 of the records of Example County.
Section 14: NE/4, NE/4NW/4, S/2NW/4NW/4'''

plat_group = pytrsplat.PlatGroup()
plat_group.settings = pytrsplat.Settings.preset('letter')
plat_group.lot_definer.allow_defaults = True
plat_group.lot_definer.standard_lot_size = 40

# Add lands. (`config` tells the pyTRS library how best to parse this land description.)
plat_group.add_description(land_description, config='n,w')
plat_group.execute_queue()

# Save as PNG inside a .zip file.
plat_group.output(fp=r'C:\land plats\sample_plats.zip', image_format='png')

# Or as a PDF.
plat_group.output(fp=r'C:\land plats\sample_plats.pdf')

About

A Python library for generating land plats from raw Public Land Survey System (PLSS) land descriptions (or "legal descriptions").

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages