Форум Блог
pix

Основы макроязыка EASI (PCI Geomatica)
Часть 4. Примеры автоматизации процессов.

Четвертая часть серии статей о языке EASI, несколько примеров автоматизации работы с данными.

Содержание

Общие подходы к автоматизации процессов в EASI

В большинстве случаев автоматизация требуется для выполнения однотипных операций над растровыми данными. В одних случаях это могут быть однотипные растровые данные, которые необходимо одновоременно обработать. В других случаях необходимо создать скрипт для запуска набора операций над файлом по коменде пользователя. Автоматизация потоков операций над растровыми данными с помощью языка EASI может быть выполнена двумя путями:
1. С помощью функций самого языка EASI или
2. С помощью специальных программ, позволяющих генерировать скрипты на языке EASI и запускать их. В частности, такие программы могут быть легко написаны на языке PERL. В этой статье мы рассмотрим простейшие примеры автоматизации данных с помощью EASI и PERL.

Выполнение операций над набором файлов – скрипт EASI

Пример простого скрипта для выполнения заданных однотипных операций над всеми файлами *.pix в рабочей директории:

sys "dir *.pix /b > dirlist.txt

local int tfid
local string ReadLine

tfid = TEXTOpen("dirlist.txt", "r")
ReadLine = TEXTRead(tfid)

While ReadLine <> "<EOF>"

fili=ReadLine

filo=ReadLine+”_out”
(Здесь помещаем список команд)

ReadLine = TEXTRead(tfid)
EndWhile

Call TEXTClose(tfid)
sys "del dirlist.txt

(создаем список фалов)

(задаем набор переменных)

(открываем список файлов)
(читаем первую строку файла)

(начало цикла «до конца файла»)

(задаем прочитанную строку как параметр команды EASI – имя входного файла)

создаем имя выходного файла с суффиксом)

(читаем новую строку файла)
(конец цикла)

(закрываем список файлов...)
(...и удаляем его)

Выполнение операций над набором файлов – запуск скрипта EASI из PERL

Для облегчения автоматизации обработки большого набора файлов их удобно хранить в разных директориях. Наример, все файлы называются однотипно (data.pix) но хранятся в разных директориях (s1, s2, s3 и т.д.). В таком случае для обработки каждого файла вы сможете использрвать один срипт EASI, который должен быть скопирован и запущен в каждой из директорий. Для этого мы используем простой скрипт на PERL.

#!/usr/local/bin/perl

system("dir s* /A:D /O:N /B >dirlist.txt");
open (DAT, "dirlist.txt");

while (<DAT>)
{
$line = $_;
$line =~ s/\n//;

chdir "$line";
system("copy D:\\xscripts\\myscript.eas script.eas /y");

system("easi r script");
system("del script.eas");
chdir "..";
}

close (DAT);
system("del dirlist.txt");

(начало скрипта)

(создаем список директорий)
(открываем список директорий)

(начало цикла «до конца файла»)
(читаем строку файла)
(удаляем символ конца строки)


(переходим в заданную директорию)
(копируем скрипт EASI в директорию)

(выполняем скрипт EASI)
(удаляем скрипт)
возврящяемся в корневую директорию)

закрываем и удаляем список директорий)

Создание и запуск скрипта EASI из PERL

В ряде случаев бывает удобно созадать скрипт EASI из готовых команд с помощью программы на PERL. Приведем пример для импорта набора файлов в формате *.img с записью выходных файлов PCIDSK в разные директории:

#!/usr/local/bin/perl

system("dir *.img /B >dirlist.txt");
open (DAT, "dirlist.txt");
open (OUT, ">script.eas");

while (<DAT>)
{
$line = $_;
$line =~ s/\n//;
$line1 =~ s/.img//;

print OUT"
sys “mkdir $line1”
fili=\"$line
filo=\"$line1\\img.pix
r fimport
";
}
close (OUT);

system(“easi r script”);
system("del script1.eas");

(начало скрипта)

(создаем список файлов)
(открываем список файлов)
(создаем скрипт EASI)

(начало цикла «до конца файла»)
(читаем строку файла)
(удаляем символ конца строки)
(удаляем расширение)

(запись команд скрипт EASI)
(создание директории)

(импорт файла)

 

(выполняем скрипт EASI...)
(...и удаляем его)

 

 

Обсудить в форуме (Комментариев - 0)

См. также:

Основы макроязыка EASI (PCI Geomatica). Часть 1. Управление данными >>>
Основы макроязыка EASI (PCI Geomatica). Часть 2. Анализ данных >>>
Основы макроязыка EASI (PCI Geomatica). Часть 3. Географическая привязка и проекции >>>

Последнее обновление: August 15 2007
(Наверх)

E-mail: 3 цифры: Введите 3 цифры с картинки в поле
Комментарий, вопрос, ошибка: (?)

Если Вы обнаружили на сайте ошибку, выберите фрагмент текста и нажмите Ctrl+Enter (?)

О нас : Статьи : Программы : Форум (все) : Документация : Контакты : Участие : English

Новости сайта:(?)

Монтаж кондиционеров - кондиционеры hitachi, обслуживание кондиционеров; заказать юридические услуги в юридической фирме; элитные новостройки, элитные квартиры; аренда микроавтобусов, прокат автобусов; авиаперевозки и доставка грузов из китая; игра на бирже, форекс, forex