На главную страницу
Русский English
 


Поддержка
Форум
Техподдержка
Закрытый разделПерсональная

Авторизация

Запомнить меня на этом компьютере
  Забыли свой пароль?
  Регистрация



Поиск по сайту


Подписка

Изменение параметров

Hits 66851186
7289
Hosts 3525138
1278
Visitors 53087403
7114

66


Главная / Поддержка / Форумы / Rastr3

Форум «Rastr3»

Версия для печати Версия для печати

Список форумов
Новые темы
Список тем
Поиск по форумам
Помощь
Войти
Регистрация


Тема: «Добавление данных в объект Растр из DataFrame » в форуме: Rastr3   Просмотров: 2477
 
Евгений Петрищев
Посетитель
 
Всего сообщений: 11
Дата регистрации: 12.11.2018
Создано: 27.08.2024 17:23:36
 
 
Как сейчас я делаю:

Есть дата фрейм data со структурой:


Код
    'column1'  'column2'
0   1              2
1   3              4
2   5              6


Я хочу добавить все значения к таблице растра

Код

table = Rastr.Tables('table_name'­)
for row in data.itertuples(index=Fal­se):
    table.addRow()
    index = table.Size - 1
    for column_name, value in zip(data.columns, row):
                table.Cols(f"{column_name­}").SetZ(index, value)


Но вот этот цикл в цикле мне не нравится и хочется оптимизировать добавление данных в Растр. Есть ли другой более простой и менее затратный способ добавить данные в таблицу?

Спасибо.
 
Профиль
Наверх
Евгений Машалов
Администратор

 
Всего сообщений: 1042
Дата регистрации: 23.04.2007
Создано: 27.08.2024 23:39:13
 
 
Ну вот мы pyd доделаем и тогда ужо напрямую numpy.array настанет. Погодите чуток.

А пока лайфхаки. Не нравится-то что ? Медленно ? Или некрасиво ? Насчет ускорить:
1. Поставить нужный размер сразу. AddRow - дорого.
2. Сразу получить все столбцы в мап или вектор а не шарить по коллекции на каждую строку да еще и по имени.
 
Профиль
Наверх
Евгений Петрищев
Посетитель
 
Всего сообщений: 11
Дата регистрации: 12.11.2018
Создано: 28.08.2024 12:11:07
 
 
Да не нравится то что дорого через AddRow и некрасиво и тоже дороговато когда вложенность циклов.

Опыта взаимодействия с Растром пока маловато, поэтому прошу помочь:
1. Подскажите пожалуйста каким образом можно сразу поставить нужный размер таблицы? Или направьте меня на нужный раздел документации, где про это написано. Я сам не нашел.

2. Как можно сразу получить все столбцы в мапу или вектор?

P.S. Есть возможность почитать где-то про pyd и какие ориентировочные сроки по внедрению?
 
Профиль
Наверх
Евгений Машалов
Администратор

 
Всего сообщений: 1042
Дата регистрации: 23.04.2007
Создано: 28.08.2024 12:22:59
 
 
1. У ITable есть
[propput, id(3), helpstring("property Size")] HRESULT Size([in] long Val);
2. Ну насоздавать объектов ICol в коллекции питона да и ходить по ним синхронно с Вашими данными. Они будут готовы и Вам не придется их каждый раз доставать из коллекции.

pyd в разработке и в обнадеживающем состоянии. Сроков нет, ибо это наша внутренняя разработка. Возможно как с кучей других проектов это уйдет в трубу, но если нет - будут и сроки, и стоимость.
 
Профиль
Наверх
Евгений Петрищев
Посетитель
 
Всего сообщений: 11
Дата регистрации: 12.11.2018
Создано: 28.08.2024 18:06:14
 
 
А что за объекты ITable и ICol?
Я сейчас взаимодействую с Растр через СОМ интерфейс посредством
Код
pythoncom.CoInitialize()
        self.rastr = Dispatch("Astra.Rastr")

И там просто объекты Cool и Table.
Это тоже самое или вы имели ввиду другой способ?
 
Профиль
Наверх
Евгений Машалов
Администратор

 
Всего сообщений: 1042
Дата регистрации: 23.04.2007
Создано: 28.08.2024 19:07:22
 
 
Давайте я спрошу напрямую. Ваш проект предполагает коммерческое использование ?
 
Профиль
Наверх
Евгений Петрищев
Посетитель
 
Всего сообщений: 11
Дата регистрации: 12.11.2018
Создано: 28.08.2024 19:33:11
 
 
Нет. Это проект внутри СО, на уровне обычного ЛСА. Пишем небольшое приложение со службой СЭР.
 
Профиль
Наверх
Евгений Машалов
Администратор

 
Всего сообщений: 1042
Дата регистрации: 23.04.2007
Создано: 28.08.2024 20:33:07
 
 
Как ?! Нам сказали что ЛСА никаких не существует !!
Очередной Парус, стало быть.

Да: "Col" и "Тable". Они самые. Сделайте их persistent до цикла и померьте рантайм. Должно снять как минимум 30%
 
Профиль
Наверх



Читают тему
гостей: 1, пользователей: 0, из них скрытых: 0


Список форумов
Новые темы
Список тем
Поиск по форумам
Помощь
Войти
Регистрация







Программный комплекс «RasrWin»
Программный комплекс «RastrWin»
© «RastrWin», 1988-2019