Python-библиотека для работы с https://nspd.gov.ru (ex-ПКК)
Project description
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 и отправить его своим коллегам. Если же вы хотите принять участие в его развитии, ознакомьтесь со статьей "Как поддержать проект?".
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-1.1.7.tar.gz.
File metadata
- Download URL: pynspd-1.1.7.tar.gz
- Upload date:
- Size: 547.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
788fd40a439bc643e4214d826db085e533504d42ba30bf701c8e99ead923fc15
|
|
| MD5 |
c3824dfa1cadd8d4bd6cfb440a00cc38
|
|
| BLAKE2b-256 |
26632597ad5ff9029ad1fd957ea95b2569557cfb0e020b82be1d20d3d39e5f23
|
File details
Details for the file pynspd-1.1.7-py3-none-any.whl.
File metadata
- Download URL: pynspd-1.1.7-py3-none-any.whl
- Upload date:
- Size: 49.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ca6a4f0ae4834f98e60b38b9a4b86c0ab9337e816d8d5a294fddc6772f728d95
|
|
| MD5 |
c459499ede182548c78babfae5fe3960
|
|
| BLAKE2b-256 |
e64b658568abc25306ab74d694a5c9bc47b2c7cbab78875cf723fa92cbb29340
|