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):

Рекомендуется установка через утилиту uv для доступа из консоли:

$ uv tool install pynspd
$ pynspd --version
1.0.0

Для поиска по к/н:

$ pynspd find "77:05:0001005:19"

Для поиска по геометрии:

$ pynspd geo "Point (37.562 55.605)" 

Подробный обзор можно найти в этой статье.

Поддержка проекта

Самый простой способ - это оставить ⭐ проекту на 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.0.1rc0.tar.gz (438.5 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.0.1rc0-py3-none-any.whl (40.5 kB view details)

Uploaded Python 3

File details

Details for the file pynspd-1.0.1rc0.tar.gz.

File metadata

  • Download URL: pynspd-1.0.1rc0.tar.gz
  • Upload date:
  • Size: 438.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.6

File hashes

Hashes for pynspd-1.0.1rc0.tar.gz
Algorithm Hash digest
SHA256 7ee4e868d9f6dae58d55c0c07e894988eeca89d0a48e8f432f26ef85a8510b90
MD5 2de452d1d3c67a4df06e774a1f343cda
BLAKE2b-256 089f538dd8535058cfb81f8ca731c5c73d9c29d8bee89e245737ef878286b489

See more details on using hashes here.

File details

Details for the file pynspd-1.0.1rc0-py3-none-any.whl.

File metadata

  • Download URL: pynspd-1.0.1rc0-py3-none-any.whl
  • Upload date:
  • Size: 40.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.6

File hashes

Hashes for pynspd-1.0.1rc0-py3-none-any.whl
Algorithm Hash digest
SHA256 debca12b77db7919c11b1b82208bdfef7700f9b31d21edbe38603c59ddba0b07
MD5 e80e99295b28897814d5d16dc922798e
BLAKE2b-256 bed2572a87e6dd7f65ee8e900b73d4e61a0f94c65c1069153622287c8a4beaf0

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