В мае 2013 года вышла новая версия горно-геологической информационной системы Micromine, в которой появился целый ряд функций, таких как условное моделирование, стратиграфическое моделирование и др. В том числе у пользователей теперь есть возможность написания скриптов на языке программирования Python. О предпосылках и положительных сторонах такого решения пойдет речь в статье.

2013_-2_micromine_yakovlev-224x300.jpg
Павел Яковлев – старший специалист по программированию ООО «Майкромайн Рус»

По всему миру стремительно развивается горнодобывающая отрасль, повышается сложность производственных задач, возникают новые трудности в их решении, растут требования пользователей к аппаратному и программному обеспечению. Чтобы максимально соответствовать всем критериям, предъявляемым к горно-геологическим информационным системам,  компания MICROMINE старается обновлять свое программное обеспечение раз в полтора года. Так, в новой версии системы Micromine появился очень полезный инструмент – скриптинг на языке программирования Python.

Python открывает перед своими клиентами огромные возможности. С его появлением в системе Micromine, пользователь перестал быть привязанным к стандартному функционалу программы, так как теперь можно написать свою функцию (например, для создания отчетов, построения графиков и вариограмм) по собственному алгоритму, провести какие-либо дополнительные математические расчеты, получить статистические оценки и прочее.

История

Python был создан в конце 1980-х годов, что говорит о сравнительной молодости языка. Именно поэтому он собрал в себе лучшие стороны своих предшественников, сохранив при этом предельную простоту и легкую читаемость.

Язык приобрел широкую популярность практически с самого момента создания. Ориентированность Python на эффективную разработку программного обеспечения, а также постоянное обновление версий языка (раз в 2 года), делает его одним из самых популярных у пользователей и дает стратегическое преимущество в проектах самых разных масштабов.

О языке Python 

В Python есть удобные встроенные типы и структуры данных, такие как словари, списки, множества, кортежи и другие. Словарь, например, позволяет пользователю связывать произвольные значения с понятным для него ключом или просто описывать какие-либо свойства объектов. Множество является удобным объектом для применения его в обработке данных разной природы и работы с базами данных, так как оно поддерживает все операции, переданные из математической теории множеств. Для случаев, когда необходимы сохранность и неизменяемость данных или фиксированные ассоциации объектов, идеально подходят кортежи. Остальные встроенные типы данных не менее уникальны и полезны для применения в любой задаче.

Также в Python существует такой объект, как модуль. Модули позволяют сохранять написанный программный код в файлы. Так как программный код может храниться постоянно, то его можно загружать повторно столько раз, сколько потребуется пользователю. Каждый модуль может ссылаться на любой другой модуль, образуя, таким образом, крупные программные системы.

Сторонние пакеты

Помимо стандартной библиотеки функций, специалисту, использующему Python, доступно множество бесплатных сторонних пакетов, позволяющих работать с графическими объектами, открывающих доступ ко всем системным вызовам, и т.д. Стоит отметить следующие пакеты:

  1. NumPy – это библиотека для работы с большими многомерными массивами чисел, включающая в себя также целый спектр математических функций для операций над этими массивами.
  2. SciPy содержит в себе модули для решения самых разных задач: оптимизации, обработки изображений, интегрирования и т.д.
  3. С помощью Matplotlib пользователи могут визуализировать двухмерные и трехмерные объекты, строить различные виды графиков (диаграммы, гистограммы, поля градиентов и прочее), создавать собственные анимированные изображения. Также эта библиотека включает в себя набор инструментов для картографии и работы с Microsoft Office Excel, поддерживает многие форматы растровых и векторных изображений.
  4. EasyGUI – библиотека для создания собственного графического интерфейса.

 

Python в Micromine

Использование языка в системе Micromine очень многогранно. Многочисленные производственные задачи могут быть значительно упрощены. А некоторые из них, ранее не решаемые или решаемые при помощи большого количества операций, нашли свое решение при помощи Python.

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

Например, подключаемые мощные математические библиотеки позволяют существенно расширить функционал системы для решения задач геостатистики. Например, можно построить ядерную оценку плотности вероятности распределения произвольной величины (рис. 1), или же в одном окне построить для сравнения сразу несколько гистограмм, сохранив при этом каждый в отдельный файл проекта (рис. 2).

2013_2_micromine_ris2-1024x509.jpg

Рис. 1. Ядерная оценка плотности вероятности распределения произвольной величины.

2013_2_micromine_ris1-1024x508.jpg

Рис. 2. Гистограммы распределения золота, серебра и глубины.

Панель скриптинга в Micromine настраиваемая. В программе зарезервировано двенадцать слотов, в которые можно сохранить наиболее часто используемые скрипты. Четыре из них выводятся непосредственно на саму панель инструментов, таким образом, ее можно подстроить под себя. Для корректной    работы скрипта, его не обязательно создавать в системе Micromine. Скрипт можно написать в любом текстовом редакторе.

Отличия от макросов. 

В Micromine уже давно существует инструмент, называемый макросом, задача которого заключается в автоматическом выполнении целой последовательности действий (нажатия клавиш, выбора каких-либо пунктов меню и т.д.). На первый взгляд может показаться, что скриптинг и макросы взаимозаменяемы. Однако скриптинг имеет ряд немаловажных преимуществ перед макросами.

Плюсы макросов заключаются в том, что они достаточно легко и интуитивно создаются в режиме обычного использования системы Micromine и имеют простой табличный вид. Однако макросы – это всего лишь список команд, а не программа. Поэтому они достаточно быстро становятся очень громоздкими и трудными для восприятия, что влечет за собой определенные неудобства при передаче их другим пользователям. Чтобы макрос запустился, специалисту, помимо самого файла макроса, необходимо также передать еще и полный список затрагиваемых форм.

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

Создавая скрипт в системе Micromine, пользователи могут разработать свой собственный интерфейс, в то время как у макросов такая возможность просто-напросто отсутствует.

Техническая поддержка. 

Иногда возникают производственные задачи, требующие написания определенного скрипта для их решения. Что же делать, если вы не владеете языком программирования Python? Компания MICROMINE в рамках технической поддержки оказывает помощь в решении подобных задач, помогая пользователю создать необходимый скрипт и изучить возможности данного инструмента для успешного дальнейшего использования.

Компания на своих форумах выделила отдельные тематические ветки, посвященные языку Python и типовым скриптам. Это специализированная площадка для общения пользователей со специалистами MICROMINE, обмена скриптами, совместного решения возникающих нестандартных производственных задач.

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

Павел Яковлев — cтарший специалист по программированию ООО «Майкромайн Рус»

Опубликовано в журнале “Золото и технологии” № 2(20)/июнь 2013 г.