Python-библиотека для работы с https://nspd.gov.ru (ex-ПКК)
Project description
PyNSPD
Python-библиотека для работы с НСПД - Национальной системой пространственных данных (ex-ПКК)
⚠️ Важно
Это неофициальная библиотека
НСПД часто меняет схемы объектов. Если у вас происходит ошибка валидации - попробуйте обновить библиотеку
Особенности
- Синхронное и асинхронное API: полностью идентичные API позволяют одинаково удобно работать в разных проектах.
- Полная типизации на Pydantic: валидация данных и автозаполнения в IDE.
- Встроенная поддержка Shapely: удобная аналитика полученной геометрии.
- Кэширование из коробки: сохранение данных в Redis, SQLite и других форматах.
- Автогенерация типов: данные о перечне слоев, их полях и их типах подтягиваются напрямую с НСПД.
Быстрый старт
Установите pynspd:
pip install pynspd
Найдите нужный вам объект:
from pynspd import Nspd
with Nspd() as nspd:
feat = nspd.search_in_theme("77:05:0001005:19")
Доступен полный список аттрибутов (в том числе скрытых), а также сокращенный в человекочитаемом формате:
print(feat.properties.options.model_dump())
#> {'readable_address': 'г Москва, ул Серпуховская Б., вл 58',
#> 'land_record_subtype': 'Землепользование', ...}
print(feat.properties.cast().options.model_dump_human_readable())
#> {'Адрес': 'г Москва, ул Серпуховская Б., вл 58',
#> 'Вид земельного участка': 'Землепользование', ...}
Для доступа к дополнительным аттрибутам делаем запрос по вкладке:
print(await nspd.tab_objects_list(feat))
#> {'Объект недвижимости: ': ['77:05:0001005:1012']}
Геометрию можно сразу конвертировать в shapely-формат (например, для работы с geopandas):
print(feat.geometry.to_shape().bounds)
#> (37.62575417009177, 55.719792499833524, 37.626451149629915, 55.72046606889391)
С более детальным описанием библиотеки можно ознакомиться в руководстве пользователя.
Поддержка проекта
Самый простой способ - это оставить ⭐ проекту на GitHub и отправить его своим коллегам. Если же вы хотите принять участие в его развитии, ознакомьтесь со статьей "Как поддержать проект?".
Project details
Release history Release notifications | RSS feed
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 pynspd-0.6.1.tar.gz.
File metadata
- Download URL: pynspd-0.6.1.tar.gz
- Upload date:
- Size: 401.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.31
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b1fb25d1e2377111b5df52195c29b55e2940defc750eacca978e943009f463ee
|
|
| MD5 |
c0e4a0ce11b36e3b306774d5d2eb745d
|
|
| BLAKE2b-256 |
951d0838fc17b8a82b5ea0a761509eb1133ab842e7c7c52de6b7c5ce0ef99588
|
File details
Details for the file pynspd-0.6.1-py3-none-any.whl.
File metadata
- Download URL: pynspd-0.6.1-py3-none-any.whl
- Upload date:
- Size: 35.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.31
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
517fa65431686602b994f977e88cf8980260f369260addfb1ce3066131af0df2
|
|
| MD5 |
cc898fc48829ac93f19d85861a0b03fe
|
|
| BLAKE2b-256 |
8956b7423517e8e6c7f609bdee384d2d97515f9e5ab9b800db3b39f3f1badb6f
|