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
🇳🇴 Norway

🇵🇱 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)
🇳🇴 Norway

Attributes: municipality, municipality_code, gnr, bnr

plot = Plot(country="NO", plot_id="0301-209/494")   # kommunenr-gnr/bnr
plot = Plot(country="NO", x=10.7330, y=59.9116)
plot = Plot(country="NO", address="Karl Johans gate 1, Oslo")

print(plot.municipality, plot.gnr, plot.bnr, 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.10.0.tar.gz (21.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.10.0-py3-none-any.whl (30.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: plot_finder-1.10.0.tar.gz
  • Upload date:
  • Size: 21.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.10.0.tar.gz
Algorithm Hash digest
SHA256 15f1640c5e6eb7cdd8f1fe432da61aa2afe2b8e4a0cd7ea1abdb218158ec5b10
MD5 3fe91b59b0124b361a10de2f81230289
BLAKE2b-256 8a23d89ddf4e460b57697acdb8b9b067d17178aa2f309c89fd8cca71739a74c3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: plot_finder-1.10.0-py3-none-any.whl
  • Upload date:
  • Size: 30.3 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.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f6c570effdf1d945dd7fe46cc23ac304984a78e82f8842290024c7f9592718f9
MD5 39480f2b4c5780f41733acbd03c8d00d
BLAKE2b-256 c27d7418d5db9167fcea1d91d650a5e286c939d0f07a15aa74d048212e6dfa0b

See more details on using hashes here.

Release history Release notifications | RSS feed

1.11.0

2 files

This release

1.10.0 This release

2 files

1.9.1

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