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(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


Download files

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

Source Distribution

pynspd-0.7.1.tar.gz (403.7 kB view details)

Uploaded Source

Built Distribution

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

pynspd-0.7.1-py3-none-any.whl (37.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pynspd-0.7.1.tar.gz
  • Upload date:
  • Size: 403.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.31

File hashes

Hashes for pynspd-0.7.1.tar.gz
Algorithm Hash digest
SHA256 d619b7fd284995411cd7c418b4ce8478a656d9f24c24a72f4f993d942b182d15
MD5 9d961051c3c28d06dfa14c8de7c8f8d3
BLAKE2b-256 c060718951f4fbe38cd7fd65379edf1344bead40db966a42bd092076c2d90297

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pynspd-0.7.1-py3-none-any.whl
  • Upload date:
  • Size: 37.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.31

File hashes

Hashes for pynspd-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b221b4ccbdf62c292b604b5d8ffce9e6b26be6451e8c5d2b981c97c1ecbc36e4
MD5 235fccffdb2f830819036749e43f4da8
BLAKE2b-256 230689919d9b4e4988950751f49f69b73296987c03c9b70bb50ecda4bff11edd

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