plot-finder
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 | ✓ | ✓ | ✓ | |
| 🇩🇰 Denmark | ✓ | ✓ | ✓ | |
| 🇧🇪 Belgium | ✓ | ✓ | ✓ |
🇵🇱 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)
🇩🇰 Denmark
Attributes: municipality, ejerlav, matrikelnr
plot = Plot(country="DK", plot_id="2000179-7000q") # ejerlavkode-matrikelnr
plot = Plot(country="DK", x=12.5683, y=55.6761)
plot = Plot(country="DK", address="Rådhuspladsen 1, København")
print(plot.municipality, plot.ejerlav, plot.matrikelnr, plot.area)
🇧🇪 Belgium
Attributes: nis_code, section, parcel_number
plot = Plot(country="BE", plot_id="41009A0063/00D000") # capakey
plot = Plot(country="BE", x=4.40262, y=51.21945)
plot = Plot(country="BE", address="Grote Markt 1, Antwerpen")
print(plot.nis_code, plot.section, 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file plot_finder-1.11.0.tar.gz.
File metadata
- Download URL: plot_finder-1.11.0.tar.gz
- Upload date:
- Size: 23.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b298f8671311c8a4b83221dafd04f91e9c7e483346195152185ec442f3a89ace
|
|
| MD5 |
739c86aea05b1ef8833573960286e426
|
|
| BLAKE2b-256 |
df166706a22db6ffdc5336dd021c561622ad6c08ae942c41632a67404e19147d
|
File details
Details for the file plot_finder-1.11.0-py3-none-any.whl.
File metadata
- Download URL: plot_finder-1.11.0-py3-none-any.whl
- Upload date:
- Size: 32.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
50f9c9924925573badeb6df31d682fb0aea5bdb3e86586e6b8073ab5b5bf0c16
|
|
| MD5 |
2df5df48129617b1ec9f9a67016c105c
|
|
| BLAKE2b-256 |
e4e4a5ffdd72adbb5b7dd3be2b8e769bf8cede717e7c9717bb9319bd665f46dc
|