Андрей Вяльцев "Макросы Datamine. Ресурсный геолог"

Книга описывает базовые понятия программирования применительно к языку макросов Datamine. На основе реальных примеров объясняются разновидности алгоритмов, основы хорошего стиля и рассматриваются некоторые хитрости написания универсальных макросов. Книга ориентирована на геологов, работающих с Datamine и желающих увеличить свою продуктивность. Книга сопровождается большим количеством примеров и заданий, основанных на геологических задачах.

date_range Год издания :

foundation Издательство :Издательские решения

person Автор :

workspaces ISBN :9785006411692

child_care Возрастное ограничение : 12

update Дата обновления : 30.06.2024


Друзей развел по крайний след,

И каждый взял свой пистолет.

A) Линейный алгоритм

B) Алгоритм с ветвлением

C) Мы такого не проходили

D) Циклический алгоритм

$ Задание 3.5

Какой тип алгоритма описан?

Раз он в море закинул невод, —

Пришел невод с одною тиной.

Он в другой раз закинул невод, —

Пришел невод с травой морскою.

В третий раз закинул он невод, —

Пришел невод с одною рыбкой,

С непростою рыбкой, – золотою.

A) Циклический алгоритм

B) Мы такого не проходили

C) Линейный алгоритм

D) Алгоритм с ветвлением

$ Задание 3.6

Какой тип алгоритма описан?

У попа была собака,

Он ее любил.

Она съела кусок мяса —

Он ее убил.

И в землю закопал.

И надпись написал:

«У попа была собака,

Он ее любил.

Она съела кусок мяса —

Он ее убил.

И в землю закопал.

И надпись написал:

«У попа была собака,

Он ее любил.

Она съела кусок мяса —

Он ее убил.

И в землю закопал.

И надпись написал:

…»

A) Циклический алгоритм

B) Алгоритм с ветвлением

C) Линейный алгоритм

D) Мы такого не проходили

Линейные алгоритмы

Линейные алгоритмы – это алгоритмы, когда «все ясно». То есть линейный алгоритм выглядит следующим образом: «Начало макроса – выполняем действие А, затем действие Б, действие В… конец макроса». Продолжая аналогию с реальной жизнью: «выключу компьютер, надену обувь, зайду в магазин…».

Однако, поскольку целью данной книги не является обучение тому, как правильно покидать рабочее место, перейдем непосредственно к написанию макроса.

Итак, давайте решим достаточно простую задачу: необходимо по файлу каркасов минерализации и полному файлу базы данных опробования создать рудную выборку. В наиболее простом случае процедура не предполагает каких-либо вариантов действий. Если выполнять ее вручную, последовательность действий можно описать так:

– Выборка проб каркасами минерализации с зональным контролем по полю номера рудного тела.

– Композитирование выбранных проб.

– Урезка ураганных содержаний.

Давайте для простоты предположим, что нам известно следующее (файлы для тестирования[10 - https://github.com/andrey-vyaltsev/MacrosDatamine/blob/main/Wf_and_holes.7z]):

– имя файла рудных каркасов – ore_tr/pt;

– имя файла скважин – holes;

– имя поля номера рудного тела – BODY;

– имя поля урезаемых содержаний – AU;

– средняя длина проб, к которой требуется привести рудную выборку – 1 м;

– оптимальная сеть декластеризации – данные расположены по регулярной сети;

– уровень ураганных содержаний одинаков для всех рудных тел – 100 г/т;

– имя файла обработанной рудной выборки holes_ore_cut.

На многих приводимых ниже картинках с фрагментами кода в начале строки можно видеть номер. Это просто номер строки, который не является частью макроса. Номера строк автоматически проставляются многими текстовыми редакторами. Это не часть текста, это просто номера строк, они «физически» – в виде символов текста – не существуют и нужны только для облегчения адресации пользователя, например: «в строке N выполняется такое-то действие».

Макрос, выполняющий все описанные выше действия, будет выглядеть следующим образом (macro1[11 - https://github.com/andrey-vyaltsev/MacrosDatamine/blob/main/macro1.7z]):

Смотрим, что тут написано.

Строка 1 – заголовок макроса и его имя (OREHOL).

Строка 3 – запуск процесса SELWF. Строки до появления следующего восклицательного знака (до строки 16 включительно) – это параметры запуска данного процесса:

– на строке 3, кроме имени запускаемого процесса Datamine, указано, что входным файлом для процесса SELWF является файл holes – &IN (holes);

– на строке 4 указано, что файлом треугольников каркасов минерализации является файл ore_tr – WERETR (ore_tr);

– на строке 5 указано, что файлом точек каркасов минерализации является файл ore_pt – &WERETR (ore_pt);

– на строке 6 указано, что выходным файлом для процесса SELWF является файл holes_ore_cut – &OUT (holes_ore_cut).

Строки 3—6 соответствуют вкладке Files процесса SELWF:

Вкладка Files процесса SELWF в интерфейсе Datamine и в макросе

Сравнивая строки 3—6 с вкладкой Files, можно заметить, что:

– поля входных и выходных файлов в макросе имеют то же имя, что и в интерфейсе процесса: поле в интерфейсе «IN» обозначается в макросе ∈

– используемые файлы в макросе помечаются знаком «&» – как «входящие», так и «результирующие»;

– имена файлов указываются в скобках;

– параметры друг от друга отделяются запятой; если описание процесса не помещается в одну строку (помним про ограничение в 80 символов), перенос осуществляется после запятой.

Строки 7—10 соответствуют вкладке Fields интерфейса.

Вкладка Fields процесса SELWF в интерфейсе Datamine и в макросе

Сравнивая строки 7—10 с вкладкой Fields, можно заметить, что:

– поля помечаются символом «*» перед именем параметра;

– пропущенные поля в интерфейсе процесса (оставленные незаполненными) в макросе не отображаются вовсе;

– имена полей указываются в скобках.

Все книги на сайте предоставены для ознакомления и защищены авторским правом