<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.gis-lab.info/index.php?action=history&amp;feed=atom&amp;title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B5%D0%B9_%D0%B2_ERDAS_IMAGINE</id>
	<title>Автоматизация выполнения моделей в ERDAS IMAGINE - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.gis-lab.info/index.php?action=history&amp;feed=atom&amp;title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B5%D0%B9_%D0%B2_ERDAS_IMAGINE"/>
	<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B5%D0%B9_%D0%B2_ERDAS_IMAGINE&amp;action=history"/>
	<updated>2026-04-03T20:58:35Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B5%D0%B9_%D0%B2_ERDAS_IMAGINE&amp;diff=6424&amp;oldid=prev</id>
		<title>Voltron: Новая страница: «{{Статья|Опубликована|batch-erdas}} {{Аннотация|Экономим время при сохранении четкой логики пр…»</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B5%D0%B9_%D0%B2_ERDAS_IMAGINE&amp;diff=6424&amp;oldid=prev"/>
		<updated>2012-07-28T09:29:14Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «{{Статья|Опубликована|batch-erdas}} {{Аннотация|Экономим время при сохранении четкой логики пр…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Статья|Опубликована|batch-erdas}}&lt;br /&gt;
{{Аннотация|Экономим время при сохранении четкой логики процесса обработки групп изображений.}}&lt;br /&gt;
&lt;br /&gt;
Допустим есть модель, которую мы хотим автоматизировать. Допустим что эта модель использует 2 файла на входе, назовем их A и B и один — на выходе С. Схематично операция будет выглядеть так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;A + B + ... = C&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Исходные растры A и B могут быть исходными данными для сколь угодно сложных вычислений, которые можно реализовать в инструменте моделирования ERDAS. Более того, исходных растров может быть больше чем 2. Проиллюстрируем процесс на простом сложении двух растров, для простоты объяснения использовать будем только их первые каналы.&lt;br /&gt;
&lt;br /&gt;
Наша задача состоит в том, чтобы используя эту модель преобразовать наборы файлов A и набор файлов B в результат — набор файлов C.&lt;br /&gt;
&lt;br /&gt;
Продемонстрируем по шагам выполнение данной автоматизации.&lt;br /&gt;
&lt;br /&gt;
=== Экспортируем модель (файл с расширением &amp;lt;tt&amp;gt;gmd&amp;lt;/tt&amp;gt;) в скрипт (файл с расширением &amp;lt;tt&amp;gt;mdl&amp;lt;/tt&amp;gt;) ===&lt;br /&gt;
&lt;br /&gt;
Для этого, открываем модель в Model Maker и выбираем «Process → Generate script». Содержание подобного скрипта может выглядеть например вот так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMMENT &amp;quot;Generated from graphical model: c:/temp/test.gmd&amp;quot;;&lt;br /&gt;
SET CELLSIZE MIN;&lt;br /&gt;
SET WINDOW UNION;&lt;br /&gt;
SET AOI NONE;&lt;br /&gt;
#&lt;br /&gt;
# declarations&lt;br /&gt;
#&lt;br /&gt;
Integer RASTER n1 FILE OLD NEAREST NEIGHBOR AOI NONE &amp;quot;c:/temp/imageA.img&amp;quot;;&lt;br /&gt;
Integer RASTER n2 FILE OLD NEAREST NEIGHBOR AOI NONE &amp;quot;c:/temp/imageB.img&amp;quot;;&lt;br /&gt;
Integer RASTER result FILE DELETE_IF_EXISTING IGNORE 0 ATHEMATIC 16 BIT SIGNED INTEGER &amp;quot;c:/temp/imageC.img&amp;quot;;&lt;br /&gt;
#&lt;br /&gt;
# function definitions&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
define func Integer($n1(1) + $n2(1))&lt;br /&gt;
result = func;&lt;br /&gt;
QUIT; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Изучим содержимое скрипта, не обращая внимания на то, что именно он делает, но попытаемся разобраться как происходит адресация файлов с которыми он работает. Как можно видеть из примера — файлы указываются в явном виде в виде полного к ним пути. Выполнить такой скрипт легко можно с помощью Model Librarian, однако он выполнит операцию только для той пары файлов, которая указана в содержимом скрипта. К сожалению, возможности создать массив из имен новых файлов в таком скрипте нет. Да если бы и была, при новом наборе файлов для обработки пришлось бы переписывать их имена заново в этот массив.&lt;br /&gt;
&lt;br /&gt;
=== Заменим меняющиеся параметры в модели (имена файлов) на аргументы ===&lt;br /&gt;
&lt;br /&gt;
Аргументы — специальные кодовые слова, которые сможет использовать пакетный процессор ERDAS. Наш файл приобрете следующий вид, имена файлов замененные на аргументы выделены жирным:&lt;br /&gt;
&lt;br /&gt;
  COMMENT &amp;quot;Generated from graphical model: c:/temp/test.gmd&amp;quot;;&lt;br /&gt;
  SET CELLSIZE MIN;&lt;br /&gt;
  SET WINDOW UNION;&lt;br /&gt;
  SET AOI NONE;&lt;br /&gt;
  #&lt;br /&gt;
  # declarations&lt;br /&gt;
  #&lt;br /&gt;
  Integer RASTER n1 FILE OLD NEAREST NEIGHBOR AOI NONE '''ARG1''';&lt;br /&gt;
  Integer RASTER n2 FILE OLD NEAREST NEIGHBOR AOI NONE '''ARG2''';&lt;br /&gt;
  Integer RASTER result FILE DELETE_IF_EXISTING IGNORE 0 ATHEMATIC 16 BIT SIGNED INTEGER '''ARG3''';&lt;br /&gt;
  #&lt;br /&gt;
  # function definitions&lt;br /&gt;
  #&lt;br /&gt;
  #&lt;br /&gt;
  define func Integer($n1(1) + $n2(1))&lt;br /&gt;
  result = func;&lt;br /&gt;
  QUIT; &lt;br /&gt;
&lt;br /&gt;
Уже лучше, теперь нужно найти способ подставить в эти аргументы наши имена файлов.&lt;br /&gt;
&lt;br /&gt;
=== Используем пакетный процессор для запуска модели с аргументами ===&lt;br /&gt;
&lt;br /&gt;
Перед этим создадим batch-файл (&amp;lt;tt&amp;gt;test.bcf&amp;lt;/tt&amp;gt;), который будет запускать модель, такого содержания:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;modeler c:/temp/test.mdl c:\temp\imageA.img c:\temp\imageB.img c:\temp\imageC.img&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как видно из содержания, процесс запуска модели состоит из передачи таких параметров как имя модели и трех аргументов специальной программе — modeler'у.&lt;br /&gt;
&lt;br /&gt;
Уже лучше, так как нам не нужно хранить файлы в самой модели, однако все еще не очень хорошо, так как теперь вместо того, чтобы генерировать 100 моделей для 100 пар исходных файлов, надо генерировать 100 записей в bcf-файл с разными аргументами.&lt;br /&gt;
&lt;br /&gt;
Обращаем внимание, что возможности подстановки параметров в bcf в пакетном процессоре присутствует, это видно например из этого примера, однако в нашем случае ничего в полях параметров выбрать нельзя, потому что параметры нужно определить еще и в bcf-файле.&lt;br /&gt;
&lt;br /&gt;
[[Файл:batch-erdas-01.gif|center]]&lt;br /&gt;
&lt;br /&gt;
Идем дальше.&lt;br /&gt;
&lt;br /&gt;
=== Видоизменим bcf-файл введя параметры и туда ===&lt;br /&gt;
&lt;br /&gt;
Новый &amp;lt;tt&amp;gt;bcf&amp;lt;/tt&amp;gt; будет выглядеть таким образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
variable Input User;&lt;br /&gt;
variable Input1 User;&lt;br /&gt;
variable Output Auto &amp;quot;c:/temp//$(Input.root).img&amp;quot; Delete_Before;&lt;br /&gt;
modeler c:/temp/test.mdl '$(Input)' '$(Input1)'  '$(Output)'  -meter -state&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Загрузим bcf-файл в пакетный процессор, отметим, что появилась возможность выбора параметров (ими в нашем случае будут имена файлов).&lt;br /&gt;
&lt;br /&gt;
[[Файл:batch-erdas-02.gif|center]]&lt;br /&gt;
&lt;br /&gt;
=== Выберем обрабатываемые изображения ===&lt;br /&gt;
&lt;br /&gt;
Последним шагом нашей автоматизации будет выбор собственно изображений, для этого нажмем «Next» и появившемся окне сначала выберем группу изображений в качестве ImageA и группу в качестве ImageB, не забывая менять название параметра которому мы подставляем исходные растры.&lt;br /&gt;
&lt;br /&gt;
Удобным способом выбора будет сначала выбрать в параметрах Input и выбрать с помощью кнопки [[Файл:batch-cs-erdas-04.gif]] («Select files to add») серию первых исходных растров (imageA), а затем выбрать в параметрах Input1, выделить колонку Input1 и выбрать с помощью той же кнопки серию вторых исходных растров (imageB).&lt;br /&gt;
&lt;br /&gt;
[[Файл:batch-erdas-03.gif|center]]&lt;br /&gt;
&lt;br /&gt;
Автоматизация завершена, осталось только выполнить пакет — «Finish».&lt;br /&gt;
&lt;br /&gt;
=== Ссылки по теме ===&lt;br /&gt;
&lt;br /&gt;
* [http://gis-lab.info/qa/batch-cs-erdas.html Назначение системы координат в пакетном режиме в ERDAS IMAGINE]&lt;/div&gt;</summary>
		<author><name>Voltron</name></author>
	</entry>
</feed>