Skip to main content

Python-библиотека для работы с https://nspd.gov.ru (ex-ПКК)

Project description

pynspd

Python-библиотека для работы с НСПД - Национальной системой пространственных данных (ex-ПКК)

PyPI - Python Version Coverage Status


⚠️ Важно

Данная библиотека является неофициальным проектом и создана исключительно в образовательных целях

Особенности

  • Синхронное и асинхронное 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pynspd-1.1.8.tar.gz (463.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pynspd-1.1.8-py3-none-any.whl (49.3 kB view details)

Uploaded Python 3

File details

Details for the file pynspd-1.1.8.tar.gz.

File metadata

  • Download URL: pynspd-1.1.8.tar.gz
  • Upload date:
  • Size: 463.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.14 {"installer":{"name":"uv","version":"0.9.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"11","id":"bullseye","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for pynspd-1.1.8.tar.gz
Algorithm Hash digest
SHA256 d65c8fa73dea1a272e321d3a8bf89b8f16eb62835daf3e2cabbd7532f265cbca
MD5 0b66a87ba99322c4b3ea09c32f6fd824
BLAKE2b-256 24acd1d2f70124d4708ea00921513bde0c7ab61880510e11abad62abbb25c4ac

See more details on using hashes here.

File details

Details for the file pynspd-1.1.8-py3-none-any.whl.

File metadata

  • Download URL: pynspd-1.1.8-py3-none-any.whl
  • Upload date:
  • Size: 49.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.14 {"installer":{"name":"uv","version":"0.9.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"11","id":"bullseye","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for pynspd-1.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 1fa40edb33e38a6134d4364e5335fb12153140c3d4f979787a22e72eaa1da586
MD5 d457c88ca8208f3564291ff70b9ab01a
BLAKE2b-256 781c559402028bbb66fe50521f03b6dcc317a3f82b2e055ac8198c48e162fba6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page