Skip to main content

plot-finder

PyPI Python License Pydantic

One Plot class per country — geometry, area and the local cadastral attributes.

Installation

pip install plot-finder

Quick start

Every country supports the same three lookup modes (where the cadastre exposes them):

from plot_finder import Plot

Plot(country="PL", plot_id="141201_1.0001.6509")          # by cadastral id
Plot(country="PL", x=21.0122, y=52.2297)                  # by coordinates
Plot(country="PL", address="Warszawa, Marszalkowska 1")   # by address

Coordinates are lon/lat in EPSG:4326. Set srid= for another output CRS.

Every Plot has:

plot.geojson       # geometry as GeoJSON
plot.bbox          # bounding box (minx, miny, maxx, maxy)
plot.centroid      # (x, y)
plot.area          # m²
plot.datasource    # which cadastre answered

Coverage

Country id coords address Notes
🇵🇱 Poland
🇫🇷 France
🇪🇸 Spain
🇳🇱 Netherlands
🇨🇭 Switzerland
🇪🇪 Estonia
🇨🇾 Cyprus
🇱🇹 Lithuania
🇱🇻 Latvia
🇵🇹 Portugal partial coverage
🇸🇮 Slovenia
🇮🇹 Italy excl. Trento & Bolzano
🇩🇪 Germany 10 of 16 states

🇵🇱 Poland

Attributes: voivodeship, county, commune, region, parcel

plot = Plot(country="PL", plot_id="141201_1.0001.6509")
plot = Plot(country="PL", x=21.0122, y=52.2297)
plot = Plot(country="PL", address="Warszawa, Marszalkowska 1")

print(plot.voivodeship, plot.commune, plot.area)
🇫🇷 France

Attributes: department, insee, commune, section, numero

plot = Plot(country="FR", plot_id="33063000KE0078")
plot = Plot(country="FR", x=-0.5792, y=44.8378)
plot = Plot(country="FR", address="30 Rue Sainte-Catherine, Bordeaux")

print(plot.department, plot.commune, plot.area)
🇪🇸 Spain

Attributes: province, municipality

plot = Plot(country="ES", plot_id="0749407VK4704H")       # cadastral reference
plot = Plot(country="ES", x=-3.6999, y=40.4211)
plot = Plot(country="ES", address="Calle de Alcalá 1, Madrid")

print(plot.province, plot.municipality, plot.area)
🇳🇱 Netherlands

Attributes: municipality, section, parcel_number

plot = Plot(country="NL", plot_id="AKM01 K 3785")     # cadastral designation
plot = Plot(country="NL", x=4.6255, y=52.1987)
plot = Plot(country="NL", address="Dam 1, Amsterdam")

print(plot.municipality, plot.section, plot.area)
🇨🇭 Switzerland

Attributes: canton, municipality, egrid, parcel_number

plot = Plot(country="CH", plot_id="CH119192997709")   # EGRID
plot = Plot(country="CH", x=8.5417, y=47.3769)
plot = Plot(country="CH", address="Bundesplatz 3, Bern")

print(plot.canton, plot.municipality, plot.area)
🇪🇪 Estonia

Attributes: county, municipality, settlement

plot = Plot(country="EE", plot_id="78401:114:0086")   # katastritunnus
plot = Plot(country="EE", x=24.7536, y=59.437)
plot = Plot(country="EE", address="Viru väljak 4, Tallinn")

print(plot.county, plot.municipality, plot.area)
🇨🇾 Cyprus

Attributes: district_code, sheet, plan, parcel_number

plot = Plot(country="CY", plot_id="1000-21/450301-1-1-290")
plot = Plot(country="CY", x=33.3396, y=35.1787)
plot = Plot(country="CY", address="Nicosia, Cyprus")

print(plot.district_code, plot.parcel_number, plot.area)
🇱🇹 Lithuania

Attributes: cadastral_zone, municipality_code, purpose

plot = Plot(country="LT", plot_id="0101/0041:0121")   # kadastro numeris
plot = Plot(country="LT", x=25.27904, y=54.68449)
plot = Plot(country="LT", address="Gedimino pr. 1, Vilnius")

print(plot.cadastral_zone, plot.purpose, plot.area)
🇱🇻 Latvia

Attributes: territory_code, group_code, parcel_number

plot = Plot(country="LV", plot_id="01000540120")   # kadastra apzīmējums
plot = Plot(country="LV", x=24.0917, y=56.9276)
plot = Plot(country="LV", address="Rīga, Latvia")

print(plot.territory_code, plot.parcel_number, plot.area)
🇵🇹 Portugal

Attributes: municipality, parish, district_code

Partial coverage — no big cities or northern regions. Address lookup not supported.

plot = Plot(country="PT", plot_id="AAA000825807")   # NIC
plot = Plot(country="PT", x=-7.7079, y=40.4210)

print(plot.municipality, plot.parish, plot.area)
🇸🇮 Slovenia

Attributes: ko_code, ko_name, municipality, parcel_number

Address lookup not supported.

plot = Plot(country="SI", plot_id="1725-3283/1")   # KO code + parcel number
plot = Plot(country="SI", x=14.50582, y=46.05144)

print(plot.ko_name, plot.municipality, plot.area)
🇮🇹 Italy

Attributes: comune_code, foglio, particella

Coordinates and address only — no id lookup. Excludes Trento & Bolzano.

plot = Plot(country="IT", x=12.4922, y=41.8902)
plot = Plot(country="IT", address="Piazzale degli Uffizi, Firenze")

print(plot.comune_code, plot.foglio, plot.particella, plot.area)
🇩🇪 Germany

Attributes: land, gemarkung, flur, parcel_number

Coordinates and address only — no id lookup. 10 of 16 states (free ALKIS).

plot = Plot(country="DE", x=6.9583, y=50.9413)
plot = Plot(country="DE", address="Domkloster 4, Köln")

print(plot.land, plot.gemarkung, plot.parcel_number, plot.area)

Documentation

Full docs: ernestilchenko.github.io/plot-finder

License

MIT

Download files

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

Source Distribution

plot_finder-1.9.1.tar.gz (20.7 kB view details)

Uploaded Source

Built Distribution

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

plot_finder-1.9.1-py3-none-any.whl (28.7 kB view details)

Uploaded Python 3

File details

Details for the file plot_finder-1.9.1.tar.gz.

File metadata

  • Download URL: plot_finder-1.9.1.tar.gz
  • Upload date:
  • Size: 20.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.0

File hashes

Hashes for plot_finder-1.9.1.tar.gz
Algorithm Hash digest
SHA256 c00678d4064190ebfec1e637d3a1efef36014a562dcc8e59bdff19f6fc03a6a6
MD5 62e354b0ded36b68b5fbee1b3f5d5383
BLAKE2b-256 0750a54ebcdaa200e4e19c7f67b56d6c01e22bd938e3bc8caaa1b85c3736e4be

See more details on using hashes here.

File details

Details for the file plot_finder-1.9.1-py3-none-any.whl.

File metadata

  • Download URL: plot_finder-1.9.1-py3-none-any.whl
  • Upload date:
  • Size: 28.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.0

File hashes

Hashes for plot_finder-1.9.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6710a294781a1bf4c8864b54e39181392c37b476894713b2213deb9031381c44
MD5 10fd1fb30c09cda836806837b6ed0710
BLAKE2b-256 2d939ac1188115cc82ebc2ea563d79937af07710fc783d3b64f52e950bf8d594

See more details on using hashes here.

Release history Release notifications | RSS feed

1.11.0

2 files

1.10.0

2 files

This release

1.9.1 This release

2 files

1.9.0

2 files

1.8.0

2 files

1.7.0

2 files

1.6.0

2 files

1.5.0

2 files

1.3.0

2 files

1.2.0

2 files

1.0.0

2 files

0.9.0

2 files

0.8.1

2 files

0.8.0

2 files

0.7.0

2 files

0.6.1

2 files

0.6.0

2 files

0.5.0

2 files

0.4.0

2 files

0.3.4

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.1

2 files

0.2.0

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page