Skip to main content

Python-пакет для взаимодействия с RastrWin3

Project description

PyRastrWin

Python-пакет для взаимодействия с ПВК RastrWin3 x64(x32)

🚀 Описание проекта

PyRastrWin — это Python-библиотека, разработанная для взаимодействия с программным комплексом RastrWin3, который используется для моделирования и анализа электроэнергетических систем. Программный комплекс RastrWin3 предназначен для решения задач по расчету, анализу и оптимизации режимов электрических сетей и систем.

RastrWin используется более чем в 150 организациях на территории:

  • России
  • Казахстана
  • Киргизии
  • Беларуси
  • Молдовы
  • Монголии
  • Сербии

В России основными пользователями являются Системный Оператор Единой Энергетической Системы (СО ЕЭС) и его филиалы, Федеральная Сетевая Компания (ФСК), МРСК, проектные и научно-исследовательские институты (Энер-госетьпроект, ВНИИЭ, НИИПТ и т.д.).

Программные комплексы RastrWin, RastrWin3, Bars, Lincor, Rustab, RastrKZ, RastrMDP.

Пакет позволяет автоматизировать задачи, такие как:

  • Загрузка файлов с автоматическим определением шаблона в RastrWin3
  • Сохранение файлов с автоматическим определением шаблона в RastrWin3
  • Чтение и запись данных из таблиц RastrWin3
  • Интеграция с другими Python-инструментами для анализа данных и визуализации

🎯 Возможности

✅ Подключение к RastrWin3 через COM-интерфейс

✅ Чтение данных из таблиц (например, узловых данных, ветвей, генераторов)

✅ Запуск расчетов и анализ результатов

✅ Поддержка сценариев для автоматизации рутинных задач

🛠️ Требования

  • Python 3.10+

  • RastrWin3 (установленный и активированный)

  • Windows OS

🧩 Зависимости

  • pywin32 — для взаимодействия с COM-интерфейсом Windows

📦 Установка

Вы можете установить пакет с помощью pip:

pip install PyRastrWin

Или напрямую из репозитория:

pip install git+https://gitverse.ru/Shurik412/PyRastrWin.git

🚀 Примеры использования

📊 1. Подключение к RastrWin3

from PyRastrWin import RastrWin

# Создаем объект для взаимодействия
rastr = RastrWin()

# Открываем файл с моделью *.rst или любой другой шаблон 
rastr.load(filename="C:\\tmp\\test9.rst")

# Запускаем расчет режима клавиша `F5`
rastr.rgm()

# Сохраняем файл
rastr.save()

#
# Либо можно импортировать отдельные функции 

# import PyRastrWin
from PyRastrWin import rgm, load, save

# import pywin32
from win32com.client import Dispatch

# Создаем объект RastrWin с помощью lib pywin32
RASTR = Dispatch("Astra.Rastr")

# Открываем файл с моделью *.rst или любой другой шаблон
# Шаблон определяется через расширение загружаемого файла
load(rastr_win=RASTR, filename="C:\\tmp\\test9.rst")
# также можно загрузить по своему шаблону
# load(rastr_win=RASTR, filename="C:\\tmp\\test9.rst", name_template="режим")

# Запускаем расчет режима клавиша `F5`
rgm(rastr_win=RASTR)

# Сохраняем файл
# Шаблон определяется через расширение загружаемого файла
save(rastr_win=RASTR, filename="C:\\tmp\\test9.rst")

⚡ 2. Получение данных из модели

# Получение параметра "Мощность генерации P" узла по порядковому номеру 
value_param = rastr.get_node(param="pg", row=0)
print(value_param) # 50.0

⚡ 3. Изменение данных в модели

# Получение параметра "Мощность генерации P" узла по порядковому номеру
value_param_before = rastr.get_node(param="pg", row=0)
print(value_param_before) # 50.0

rastr.chenge_node(param="pg", row=0, value=60.0)

value_param_after = rastr.get_node(param="pg", row=0)
print(value_param_after) # 60.0

📚 Документация

Полная документация доступна по ссылке:
📖 Документация RastrPy

🤝 Вклад в проект

Мы приветствуем ваши идеи, исправления и новые функции!

Присылайте свои идеи на эл. почту shurik412@mail.ru.

Создавайте Issues или присылайте Pull Requests.

🧑‍💻 Авторы

  • Александр Охрименко — разработка и поддержка.
  • Служба электрических режимов/Филиал АО «СО ЕЭС» «Объединенное диспетчерское управление энергосистемы Центра»

⚖️ Лицензия

Этот проект лицензирован под GitVerse 1.0

Подробнее см. GitVerse 1.0.

Changelog

Все заметные изменения в этом проекте документируются в этом файле.

[0.1.5] - 2025-01-26

Added in [0.1.5]

  • Добавлены в configure_logging_save_file параметр filename для сохранение файла логов с дополнительным имененм.
configure_logging_save_file(level=logging.DEBUG, filename: str = "")

Changed

  • Улучшена документация для API (README.md).

Fixed

  • Документацию в модулях.

[0.1.5] - 2025-01-26

Added in [0.1.5]

  • Добавлены импорты
from PyRastrWin import rgm        # функция для расчета режима;
from PyRastrWin import calc_i_dop # функция пересчитывает допустимые токи нагрузки (ТНВ) на основе температуры воздуха и процента перегрузки по току;
from PyRastrWin import run        # Запускает расчет ЭМПП в режиме аналогичном, используемому командой пользовательского интерфейса «Динамика».;
from PyRastrWin import run_ems    # Проводит расчет и возвращает результат расчета ЭМПП в EMS-режиме;
from PyRastrWin import mdp        # Функция для расчета МДП;
from PyRastrWin import ekv        # Функция для Эквивалентирования модели;

Changed

  • Улучшена документация для API (README.md).

Fixed

[0.1.4] - 2025-01-08

Added in [0.1.4]

  • Добавлена возможность сохранять загруженный файл на выбор ползователя.
  • Добавлена возможноть получени и изменения параметров в таблице node (Узлы).
# Получение параметра "Мощность генерации P" узла по порядковому номеру
value_param_before = rastr.get_node(param="pg", row=0)
print(value_param_before) # 50.0

# Изменение параметра "Мощность генерации P" узла по порядковому номеру
rastr.chenge_node(param="pg", row=0, value=60.0)

value_param_after = rastr.get_node(param="pg", row=0)
print(value_param_after) # 60.0

[0.1.3] - 2025-01-08

Changed

  • Улучшена документация для API (README.md).

[0.1.2] - 2025-01-07

Added in [0.1.2]

  • Добавлена документация для API (README.md).

Fixed

  • Исправлены ошибки при импорте модуля logger.

[0.1.1] - 2025-01-07

Added in [0.1.1]

  • Первый релиз проекта.
  • Добавлены основные функции: загрузка и сохранение модели. Запуск расчета: Уст. режима, ЭМехПП в режиме Run и EMS, эквивалетирование.

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

pyrastrwin-0.1.6.tar.gz (32.8 kB view details)

Uploaded Source

Built Distributions

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

PyRastrWin-0.1.6-py3-none-win_amd64.whl (38.1 kB view details)

Uploaded Python 3Windows x86-64

PyRastrWin-0.1.6-py3-none-win32.whl (38.1 kB view details)

Uploaded Python 3Windows x86

File details

Details for the file pyrastrwin-0.1.6.tar.gz.

File metadata

  • Download URL: pyrastrwin-0.1.6.tar.gz
  • Upload date:
  • Size: 32.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.7

File hashes

Hashes for pyrastrwin-0.1.6.tar.gz
Algorithm Hash digest
SHA256 73040827b826423d0d5c63a9a0690d6e897249e65a4b338ba363d277173b0944
MD5 410b5038be4be8ce79d11430015e5d7f
BLAKE2b-256 6068169e8b55ea229e02128f3f79226c3ede835b680ec9c2158d6a32fab7dab4

See more details on using hashes here.

File details

Details for the file PyRastrWin-0.1.6-py3-none-win_amd64.whl.

File metadata

  • Download URL: PyRastrWin-0.1.6-py3-none-win_amd64.whl
  • Upload date:
  • Size: 38.1 kB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.7

File hashes

Hashes for PyRastrWin-0.1.6-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 2f386abdb8f2ad972ede39d757cb9930797c76b38d3afe43adb45f43126913be
MD5 550c4230f45dfd1a32df8bcd6e213fab
BLAKE2b-256 41fa07eb57dc640c2b7f87e15d0b5e5fcb1df902fe2e3e7e6c03d905b71a3adf

See more details on using hashes here.

File details

Details for the file PyRastrWin-0.1.6-py3-none-win32.whl.

File metadata

  • Download URL: PyRastrWin-0.1.6-py3-none-win32.whl
  • Upload date:
  • Size: 38.1 kB
  • Tags: Python 3, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.7

File hashes

Hashes for PyRastrWin-0.1.6-py3-none-win32.whl
Algorithm Hash digest
SHA256 60da1a6d101246471c026cb3fa3eb16fad85bc598d0605c062e14dc788954234
MD5 c3f3dc0bb63ee27ce2309678f4726201
BLAKE2b-256 0e2dc97bbb2987a9ba6a734ccc1afde776e795a64a40ea7e489f20c29407ff0c

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