pynspd
Python-библиотека для работы с НСПД - Национальной системой пространственных данных (ex-ПКК)
⚠️ Важно
Данная библиотека является неофициальным проектом и создана исключительно в образовательных целях
Особенности
- Синхронное и асинхронное API: полностью идентичные API позволяют одинаково удобно работать в разных проектах.
- Полная типизации проекта: автозаполнения в IDE, статический анализ и прочие удобства современного Python.
- Автогенерация схем: данные о перечне слоев, их полях и их типах подтягиваются напрямую с НСПД.
- Валидации данных от Pydantic: гарантия, что библиотека соответствует сайту.
- Поддержка работы с геометрией от Shapely: удобная аналитика полученной геометрии.
- Кэширование из коробки от Hishel: сохранение данных в Redis, SQLite и других форматах.
Быстрый старт
Установите pynspd:
$ pip install pynspd
Найдите нужный вам объект:
from pynspd import Nspd
with Nspd() as nspd:
feat = nspd.find("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(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)
С более детальным описанием библиотеки можно ознакомиться в руководстве пользователя.
Работа из консоли (CLI)
Установка:
$ pip install pynspd[cli]
$ pynspd --version
1.0.0
Для поиска по к/н:
$ pynspd search "77:05:0001005:19"
Для поиска по геометрии:
$ pynspd geo "55.605, 37.562"
Подробный обзор можно найти в этой статье.
Поддержка проекта
Самый простой способ - это оставить ⭐ проекту на GitHub и отправить его своим коллегам. Если же вы хотите принять участие в его развитии, ознакомьтесь со статьей "Как поддержать проект?".
Metadata
Release files for pynspd 1.1.15
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pynspd-1.1.15.tar.gz | 591.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pynspd-1.1.15-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 638.8 kB
Release files / pynspd-1.1.15.tar.gz
| Download URL | pynspd-1.1.15.tar.gz |
|---|---|
| Size | 591.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
04249ce45bd8288c34ab25d3aeba68c9da8fab9c1846128297eef8a70cdf9d06
|
|
BLAKE2b-256 checksum How to use checksums |
378ac79d2155d33e493249a23dba01e3a40c062f7a105b4303e5a18e40980958
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.31 {"installer":{"name":"uv","version":"0.11.31","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / pynspd-1.1.15-py3-none-any.whl
| Download URL | pynspd-1.1.15-py3-none-any.whl |
|---|---|
| Size | 47.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7054c8caf737cbd1bb673cb0d18d1e5e80c1b6cf2dac9986d459fbaa2897e332
|
|
BLAKE2b-256 checksum How to use checksums |
1e55038dfdbd761a6df9868d41eb95a63dd650b75da57ac7cb08238d26ec4c48
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.31 {"installer":{"name":"uv","version":"0.11.31","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|