Skip to main content

plot-finder

Python License Pydantic

Python library to find land parcels across Europe — Poland, France, Spain, Netherlands, Switzerland, Estonia, Cyprus, Lithuania, Latvia, Portugal, Slovenia and Italy — by id, address or coordinates.

Geometry is returned in EPSG:4326 by default (set srid= for another CRS).

One Plot class. country is required and selects the cadastre; the country-specific attributes come from a matching class in plot_finder.countries.

Installation

pip install plot-finder

Poland 🇵🇱

from plot_finder import Plot

plot = Plot(country="PL", plot_id="141201_1.0001.6509")
plot = Plot(country="PL", x=639231, y=486743)                  # EPSG:2180
plot = Plot(country="PL", address="Warszawa, Marszalkowska 1")

print(plot.voivodeship, plot.commune, plot.area)

Attributes: voivodeship, county, commune, region, parcel

France 🇫🇷

from plot_finder import Plot

plot = Plot(country="FR", plot_id="33063000KE0078")
plot = Plot(country="FR", x=-0.5792, y=44.8378)                # lon/lat, EPSG:4326
plot = Plot(country="FR", address="30 Rue Sainte-Catherine, Bordeaux")

print(plot.department, plot.commune, plot.area)

Attributes: department, insee, commune, section, numero

Spain 🇪🇸

from plot_finder import Plot

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

print(plot.province, plot.municipality, plot.area)

Attributes: province, municipality

Netherlands 🇳🇱

from plot_finder import Plot

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

print(plot.municipality, plot.section, plot.area)

Attributes: municipality, section, parcel_number

Switzerland 🇨🇭

from plot_finder import Plot

plot = Plot(country="CH", plot_id="CH119192997709")   # EGRID
plot = Plot(country="CH", x=8.5417, y=47.3769)        # lon/lat, EPSG:4326
plot = Plot(country="CH", address="Bundesplatz 3, Bern")

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

Attributes: canton, municipality, egrid, parcel_number

Estonia 🇪🇪

from plot_finder import Plot

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

print(plot.county, plot.municipality, plot.area)

Attributes: county, municipality, settlement

Cyprus 🇨🇾

from plot_finder import Plot

plot = Plot(country="CY", plot_id="1000-21/450301-1-1-290")   # cadastral reference
plot = Plot(country="CY", x=33.3396, y=35.1787)               # lon/lat, EPSG:4326
plot = Plot(country="CY", address="Nicosia, Cyprus")

print(plot.district_code, plot.parcel_number, plot.area)

Attributes: district_code, sheet, plan, parcel_number

Lithuania 🇱🇹

from plot_finder import Plot

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

print(plot.cadastral_zone, plot.purpose, plot.area)

Attributes: cadastral_zone, municipality_code, purpose

Latvia 🇱🇻

from plot_finder import Plot

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

print(plot.territory_code, plot.parcel_number, plot.area)

Attributes: territory_code, group_code, parcel_number

Portugal 🇵🇹

from plot_finder import Plot

plot = Plot(country="PT", plot_id="AAA000825807")   # NIC
plot = Plot(country="PT", x=-7.7079, y=40.4210)     # lon/lat, EPSG:4326

print(plot.municipality, plot.parish, plot.area)

Attributes: municipality, parish, district_codepartial coverage (no big cities/north).

Slovenia 🇸🇮

from plot_finder import Plot

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

print(plot.ko_name, plot.municipality, plot.area)

Attributes: ko_code, ko_name, municipality, parcel_number

Italy 🇮🇹

from plot_finder import Plot

plot = Plot(country="IT", x=12.4922, y=41.8902)   # lon/lat, EPSG:4326
plot = Plot(country="IT", address="Piazzale degli Uffizi, Firenze")

print(plot.comune_code, plot.foglio, plot.particella, plot.area)

Attributes: comune_code, foglio, particellacoordinates/address only (no id lookup); excludes Trento & Bolzano.

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.8.0.tar.gz (17.8 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.8.0-py3-none-any.whl (26.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: plot_finder-1.8.0.tar.gz
  • Upload date:
  • Size: 17.8 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.8.0.tar.gz
Algorithm Hash digest
SHA256 af8ac75c3cefdb300de8b53642bf7cd5b374841190f24935057e7f8c67debc06
MD5 419e2929429e19482fa41b02515f6185
BLAKE2b-256 b2342ab00896d114b56fcdad6031fd623b027f56885470519724949d7330d21c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: plot_finder-1.8.0-py3-none-any.whl
  • Upload date:
  • Size: 26.0 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.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5883afa7b053b5c7af68672ffdfef298f3dd123044b1a2b9aae50c81681f48c2
MD5 fa06ad372e768a5a6dc9573f26d39c73
BLAKE2b-256 250157cc191835da1c095021bf9b333459b8d4ac846a6ef4fa1d7848fb64e96b

See more details on using hashes here.

Release history Release notifications | RSS feed

1.11.0

2 files

1.10.0

2 files

1.9.1

2 files

1.9.0

2 files

This release

1.8.0 This release

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