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

Импорт данных

Engee поддерживает различные форматы файлов для импорта данных. Прежде чем начать работу – загрузите их в файловый браузер Engee file browser 7. Для импорта файлов используется кнопка file browser 9 или интерактивное перемещение (drag-and-drop) в область файлового браузера:

desktop file browser

Ядро Engee, основанное на языке программирования Julia, по умолчанию включает только самые базовые пакеты. Для добавления возможности импорта файлов в нужном формате установите дополнительные пакеты, используя менеджер пакетов Pkg.

Для просмотра установленных пользовательских пакетов используйте команду Pkg.status().

С помощью базовых пакетов Engee поддерживает импорт данных из:

  • файлов моделей .engee в рабочее пространство;

  • скриптов .ngscript и .ipynb в редактор скриптов img41 1. Исполнение ячеек с переменными импортирует их значения в окно переменных (подробнее здесь);

  • переменных из файлов .mat и .jld2 в окно переменных variables article 2 1 (подробнее здесь);

  • блоков из рабочего пространства в файлы пользовательских библиотек .nglib user library 1.

Импорт данных из других форматов реализуется с помощью функций ввода/вывода (подробнее в разделе ниже).

Функции ввода/вывода

Для получения данных из импортируемых файлов используются функции ввода/вывода (I/O):

Таблица функций ввода/вывода
Назначение Функция Описание

Открытие

open

открытие файла или потока данных

isopen

определяет закрыт ли уже объект (поток или таймер)

Закрытие

close

закрывает поток ввода-вывода

closeall

закрывает все открытые окна графического интерфейса пользователя

closeread

закрывает только поток чтения из файла, связанный с объектом ввода-вывода

closewrite

прекращает запись половины полнодуплексного потока

Запись

write

записывает представление канонического двоичного файла значения в заданный поток ввода-вывода или файл

iswritable

проверяет, поддерживается ли запись в указанный объект

Чтение

read

выполняет чтение содержимого файла

read!

выполняет чтение двоичных данных из потока ввода-вывода или файла, заполняя матрицу данных

readavailable

выполняет чтение доступных буферизованных данных из потока

readbytes!

выполняет чтение не более nb байтов из stream в b, возвращая количество считываемых байтов

readchomp

выполняет чтение полного объема файла как строки и удаляет один символ разрыва строки в конце (если есть)

readdir

возвращает имена в каталоге (dir) или текущем рабочем каталоге, если тот не указан

readeach

возвращает итерируемый объект, дающий в результате read(io, T)

readline

выполняет чтение одной строки текста из заданного потока ввода-вывода или файла

readlines

выполняет чтение всех строк в потоке ввода-вывода или файле как векторных или строковых значений

readlink

возвращает целевое расположение, на которое указывает символьная ссылка path

readuntil

выполняет чтение строки из потока ввода-вывода или файла (до заданного символа-разграничителя)

Для расширения возможностей ввода/вывода данных из конкретных форматов используйте соответствующие пакеты Julia (подробнее об их установке читайте здесь). Например, разница в работе с CSV-файлом с пакетом CSV.jl и без пакета представлена в таблице:

Действие пользователя

C CSV.jl

Без CSV.jl

Установка

Установка пакета: Pkg.add("CSV.jl")

Использование пакета в коде: using CSV

Не требуется установка стороннего пакета

Чтение данных

output = CSV.read("file.csv")

output = read("file.csv", String)

Преобразование

Не требуется дополнительного преобразования.

Преобразование данных .csv в массив строк: lines = split(output, "\n")

Преобразование строк CSV в массивы значений: values = [split(line, ",") for line in lines]

Дополнительные

Возможность настройки параметров чтения и записи.

Требуется дополнительная обработка данных для получения структуры данных.

Для работы с популярными форматами рекомендуем использовать следующие пакеты Julia:

Категория Формат Пакет Julia Примеры

Текстовые файлы

TXT

Стандартная библиотека

Ввод-вывод и сеть

DOC/DOCX

DOCX.jl

PDF

PDFIO.jl

Электронные таблицы

XLS/XLSX

XLSX.jl

Обучающая статья по XLSX.jl

Чтение данных из формата Excel и построение моделей

CSV

CSV.jl

ODS

OdsIO.jl

Изображения

JPG/JPEG

Images.jl

Обработка изображений

PNG

GIF

TIFF

Научные данные

CSV

CSV.jl

Загрузка данных и обработка пропусков

TSV

MAT

MAT.jl

HDF5

HDF5.jl

NetCDF

NCDatasets.jl

FITS

FITSIO.jl

CDF

EmpiricalCDFs.jl

JLD2

JLD2.jl

Аудио и видео

MP3

Audio-Video

Обработка видео в Engee

Sound.jl для обработки звука

WAV

AAC

MP4

AVI

MKV

Структурированная информация и XML

XML

EzXML.jl

Мануал EzXML.jl

XSD

XSLT

XSLT.jl

JSON

JSON

JSON.jl

Json.jl Github

Если в таблице не представлен нужный формат — обратитесь к сайту Julia Packages или к сайтам соответствующих пакетов.

Импорт больших данных

Для работы с большими данными (Big Data) в Engee используется структура WorkspaceArray. Для импорта данных в WorkspaceArray применяются CSV-файлы и табличная структура данных DataFrame.

Для создания WorkspaceArray:

  • DataFrame — создайте DataFrame на основе имеющихся данных, например:

    using DataFrames # подключаем пакет DataFrames
    times = [2 ^ i for i in LinRange(1, 3, 1000)]
    values = [sin(i ^ 2 + 1) * 2 + cos(i) for i in times]
    data_frame = DataFrame(time = times, value = values) # создадим DataFrame с двумя столбцами — time и value

    Создайте WorkspaceArray из DataFrame:

    my_workspacearray = WorkspaceArray("my_data_frame", data_frame)

    где my_workspacearray — переменная с типом данных WorkspaceArray, содержащая данные из DataFrame с именем data_frame.

  • CSV — создайте CSV файл из полученного DataFrame:

    using CSV #подключаем пакет CSV
    CSV.write("/user/workspacearray_csv.csv", delim="\t", data_frame)

    Создайте WorkspaceArray из полученного CSV:

    workspacecsv = WorkspaceArray("workspacearray_csv", "/user/workspacearray_csv.csv") # где "/user/workspacearray_csv.csv" — путь до CSV-файла, а "workspacearray_csv" — его имя

Для создания WorkspaceArray из импортированного CSV следуйте условиям, описанным здесь. Для расширенной работы с WorkspaceArray используйте функции AbstractVector.