Компьютерные технологии. Компьютерные технологии в экологии и природопользовании
Скачать 8 Mb.
|
Форматы растровых графических файлов Растровые форматы характеризуются тем, что все изображение по вертикали и горизонтали разбивается на достаточно маленькие прямоугольники – пиксели. 45 В файлах растровых форматов хранятся: размер изображения – количество видеопикселей по вертикали и горизонтали; битовая глубина – число битов, используемых для хранения цвета одного видеопикселя; данные, описывающие рисунок (цвет каждого пикселя рисунка и его положение), и некоторая дополнительная информация. В файле, содержащем растровую графику, хранятся данные о цвете каждого пикселя, составляющего изображение. Чем меньше прямоугольники, на которые разбивается изображение, и чем больше их число, тем выше разрешение графического файла и тем выше его качество. Размер изображения, хранящегося в файле, задается в виде числа пикселей по горизонтали и вертикали. Важной является также информация о количестве цветов, закодированных в файле. Цвет каждого пикселя определяется числом битов – элементарных единиц информации, с которыми может иметь дело компьютер. Каждый бит может принимать два значения – - 1 или 0. В зависимости от того, сколько битов отведено для цвета каждого пикселя, возможно кодирование различного числа цветов. Если для кодировки отвести один бит, то каждый пиксель может быть либо белым (значение 1), либо черным (значение 0). Такое изображение называют монохромным. Таким образом, кодирование цветов для изображения может выглядеть следующим образом: 4 бита информации – 2 4 = 16 цветов, с комбинациями битов от 0000 до 1111, 8 битов информации – 2 8 = 256 цветов, с комбинациями от 00000000 до 11111111, 16 битов информации – 2 16 = 65536 цветов (High Color), 24 бита информации – 2 24 = 16777216 цветов (True Color). Однако следует понимать, что даже если вы используете True Color для отрисовки изображений, реального количества цветов может быть значительно меньше, поэтому не стоит забывать про технические возможности экранов. 46 Чем больше расширение изображения и количество цветов, содержащихся в нем, тем выше будет его вес. Например, если размер изображения 1766 х 1528, а количество цветов 16 777 216, то объем такого растрового файла будет порядка 8 МБ. Для разрешения проблемы хранения растровых файлов используют специальные процедуры, уменьшающие вес исходного файла, – сжатие. Методы сжатия файлов можно разделить на два типа: сжатие файла с помощью программы архиватора; сжатие, алгоритм которого заключен в формат файла. В первом варианте сжатие обеспечивается наличием отдельной программы (например, WinRAR), которая благодаря своим собственным алгоритмам изменяет исходный файл, архивирует его и создает новый. Оптимизация веса файла в итоге может быть крайне значительной. Однако данный метод сжатия применим лишь для долгосрочного хранения файлов либо их переправки, так как для работы с заархивированными файлами потребуется провести процедуру разархивации файла до исходного состояния. Если же алгоритм сжатия включен в формат файла, то соответствующие программы чтения правильно интерпретируют сжатые данные и позволяют использовать сжатый файл для постоянной работы, однако оптимизация файлового веса в данном случае будет значительно ниже, чем при первом варианте. Перейдем к рассмотрению основных форматов растровой графики: BMP – в этом формате первоначально использовалось простейшее кодирование – по пикселям (самое неэкономное), которые обходились последовательно по строкам начиная с нижнего левого угла графического изображения. Файлы этого формата входили в первые версии Windows. В этом формате использовалось только 256 цветов, т.е. пиксель представляется только одним байтом. В дальнейшем формат стал использоваться и для сохранения полноцветных изображений. Формат BMP – один за стандартных форматов растровой графики. 47 TIFF – стандартный формат в топографической графике и издательских системах. Файлы в формате TIFF обеспечивают лучшее качество печати. Формат TIFF относится к числу наиболее универсальных и распространенных форматов растровой графики. Он создавался в качестве межплатформенного универсального формата для цветных изображений. Работа с ним поддерживается почти всеми программами для работы с точечной графикой. Может хранить графику в монохромном виде, в RGB- и CMYK-цветовых представлениях. GIF – формат обмена графическими данными, который служит для записи и хранения растровых графических изображений. Этот формат отличается от других форматов растровой графики тем, что он долгое время поддерживается в Интернете. Использует индексированные цвета (ограниченный набор цветов). Лучше всего отображаются рисунки, чертежи и изображения с небольшим количеством однородных цветов, прозрачные изображения и анимационные последовательности. В GIF-изображениях используется сжатие без потери информации. JPEG – предназначен для хранения изображений со сжатием. Применяющийся в нем метод сжатия изображений разработан группой экспертов в области фотографии. JPEG – один из самых мощных алгоритмов сжатия изображения. Он является практически стандартом де-факто для хранения полноцветных изображений. Сохраняет параметры графики в цветовом представлении RGB (как правило). JPEG 2000 – данный формат был разработан для замены JPEG. При сохранении изображения с одинаковым уровнем сжатия изображения, сохраненные в формате JPEG 2000, получаются более четкими и занимают меньше места на диске. К тому же в этом формате решена проблема появления дефектов JPEG, которые наблюдались при сохранении с большим коэффициентом сжатия. PNG – формат хранения растровой графики, использующий сжатие без потерь. Это очень мощный и широко применяемый формат в Интернете и других областях компьютерной графики. 48 WMF – используется для обмена графическими данными между приложениями ОС Microsoft Windows. В WMF-файлах могут храниться как векторные, так и растровые изображения. PSD – внутренний формат для пакета Adobe Photoshop. Позволяет сохранять слои в изображении и поддерживает все типы графики. Фотографические изображения, полученные с помощью устройств с высокой разрешающей способностью, часто занимают большой объем памяти. Решением проблемы хранения больших растровых изображений является сжатие, т.е. уменьшение размера файла за счет изменения способа организации данных. Методы сжатия делятся на две категории: сжатие файла с помощью программ-архиваторов; сжатие, алгоритм которого включен в формат файла. Одним из простейших способов сжатия является метод RLE (Run Length Encodin – кодирование с переменной длиной строки). Действие метода RLE заключается в поиске одинаковых пикселей в одной строке. Найденные цепочки одинаковых элементов заменяются на пары (счетчик повторений, значение), что в определенных случаях существенно уменьшает избыточность данных. Алгоритм в первую очередь рассчитан на изображения с большими областями повторяющегося цвета (деловая графика, схемы, рисунки и т.п.). Недостатком такого подхода является то, что в определенных ситуациях он может вместо уменьшения приводить к увеличению размера файла (например, в некоторых случаях при сохранении цветных фотографий). Метод сжатия LZW (Lempel-Ziv-Welch) – сжимаются данные путем поиска одинаковых последовательностей (они называются фразы) во всем файле. Выявленные последовательности сохраняются в таблице, им присваиваются более короткие маркеры (ключи). Таким образом, вместо значения цвета пикселя можно использовать индекс из таблицы. Наиболее часто встречающиеся цвета на изображении имеют меньшие индексы, а редко встречающиеся цвета размещаются в конце таблицы. Метод LZW, так же, как и RLE, лучше действует на участках однородных, свободных от шума цветов, он действует гораздо лучше, чем RLE, при 49 сжатии произвольных графических данных, но процесс кодирования и распаковки происходит медленнее. Метод сжатия Хаффмана (Huffman). В методе Хаффмана берется набор символов, который анализируется, чтобы определить частоту каждого символа. Затем для наиболее часто встречающихся символов используется представление в виде минимально возможного количества битов. Метод JPEG (Joint Photographers Experts Group) основан на частотных представлениях изображения. В частотном представлении основную долю информации несут низкие частоты. Высокие частоты описывают шум и несущественные детали. Для сжатого представления сигнала могут использоваться различные преобразования. В результате преобразования получаем спектр. При этом низкие частоты содержатся в верхнем левом углу спектра, а высокие – в правом нижнем. Высокие частоты можно обнулить и не хранить. Используется методика сжатия с потерями. Хранится не информация о цвете пикселей, а коэффициенты разложения по некоторому базису. Положительными сторонами алгоритма JPEG является то, что пользователь может управлять соотношением размер/качество, задавая степень сжатия. С помощью алгоритма JPEG достигаются большие коэффициенты сжатия при визуально высоком качестве изображения. Отрицательными сторонами алгоритма является то, что при повышении степени сжатия изображение распадается на отдельные квадратные области. Кроме того, поскольку это алгоритм сжатия с потерями качества, то изображения, обработанные с его применением, практически не используются для анализа и дальнейшей работы. Основные форматы растровых графических файлов Bit MaP image (BMP) – универсальный формат растровых графических файлов, используется в операционной системе Windows. Tagged Image File Format (TIFF) – формат растровых графических файлов, поддерживается всеми основными графическими редакторами. Включает в себя алгоритм сжатия без потерь информации (LZW). 50 Graphics Interchange Format (GIF) – формат растровых графических файлов. Включает алгоритм сжатия без потерь информации (LZW). Рекомендуется для хранения изображений с ограниченным количеством цветов. Используется для размещения графических изображений на Web-страницах в Интернете. Portable Network Graphic (PNG) – формат растровых графических файлов, аналогичный формату GIF. Рекомендуется для размещения графических изображений на Web-страницах в Интернете. Joint Photographic Expert Group (JPEG) – формат растровых графических файлов, который реализует эффективный алгоритм сжатия (метод JPEG) для отсканированных фотографий и иллюстраций. Алгоритм сжатия позволяет уменьшить объем файла в десятки раз, однако приводит к необратимой потере части информации. Используется для размещения графических изображений на Web-страницах в Интернете. Г ЛАВА 2. П РОГРАММИРОВАНИЕ ДЛЯ ПРЕДСТАВЛЕНИЯ И ОБРАБОТКИ БИОЛОГИЧЕСКОЙ И ЭКОЛОГИЧЕСКОЙ ИНФОРМАЦИИ И НСТРУМЕНТЫ СТАТИСТИЧЕСКОГО АНАЛИЗА Как правило, в биологии и экологии под обработкой данных в первую очередь подразумевают статистический анализ. Удобнее всего проводить статистический анализ с помощью специализированных инструментов, к которым, кстати, не относится MS Exсel, широко применяемый в этой области, причем не только студентами и школьниками. Современный статистический анализ использует сложный математический аппарат и требует гибких способов визуализации. Таблицы Excel «похвастаться» этим не могут, хотя их вполне можно применять для простейших операций с небольшими массивами данных. Удобно их использовать и для организации данных в единую таблицу. Специализированные статистические программы можно разделить на две группы: оконно-кнопочные системы и статистические среды. Первые почти не 51 отличаются внешне от электронных таблиц, однако снабжены значительно большим арсеналом доступных статистических приемов. Кроме того, у них традиционно мощная графическая часть (возможных графиков больше, и управление ими более гибкое), а часто и подсистема подготовки отчетов. Многие такие программы имеют значительно меньше ограничений, чем электронные таблицы. Очень распространена в России относящаяся к этой группе система STATISTICA. Как замечено выше, она отличается мощной графической частью, т.е. имеет множество возможных вариантов графического вывода, которые при этом довольно гибко настраиваются. При этом данная система не лишена минусов, наиболее существенными среди которых являются ограниченный регион использования (преимущественно Россия) и закрытые алгоритмы вычисления (т.е. пользователю непонятно, что на самом деле в каждом конкретном случае делает программа). К тому же к системе в свое время было немало претензий по поводу «быстрых и грязных» алгоритмов работы, и есть подозрение, что ситуация не слишком изменилась. Существуют и другие подобные системы: STADIA, PAST, SPSS, MiniTab и StarGraphics. Часть из них – коммерческие продукты, но есть и бесплатные. Также им свойственна закрытость алгоритмов и ограниченность распространения. Статистические среды используют в основном интерфейс командной строки. Пользователь вводит команды, система на них отвечает. Звучит это просто, однако сами эти программы в числе самых сложных систем обработки. Для работы с подобными системами нужны некоторые навыки программиста, зато пользователь получает полный контроль над системой: он может комбинировать любые типы анализа, записывать процедуры в скрипты, которые можно запустить в любое время, модифицировать вывод графиков, сохранять их в любые графические форматы, легко писать расширения для системы, а если она к тому же имеет открытый код, то и модифицировать систему (Шипунов, 2014). Именно к таким открытым системам относится язык программирования R. R – язык программирования, созданный специально для научных вычислений и анализа данных с упором на визуализацию и воспроизводимость. 52 Я ЗЫК ПРОГРАММИРОВАНИЯ R Создатели R – Росс Ихака и Роберт Джентльмэн. R появился в 1993 г. и практически сразу стал популярным по двум причинам: а) распространялся бесплатно, так как был разработан в рамках проекта GNU, и это выгодно отличало его от близкого языка S (в принципе оба языка настолько схожи, что код, написанный на S, может быть практически без изменений использован в R); б) обладал способностью развиваться благодаря использованию пакетов – специальных библиотек дополнительных функций, которые предназначены для работы с данными в какой-либо узкой области. За более чем 20-летнюю историю развития R не только не устарел, но и, наоборот, расширил свои возможности и получил очень широкое распространение в разных сферах человеческой деятельности. В частности, в биологии и экологии R представляет собой универсальный инструмент статистической обработки и специфического анализа данных, включая такие области, как эволюция и филогенетика, моделирование экосистем, биоинформатика, генетика и нейробиология. R – это многофункциональный язык. Он использует большое количество функций статистического анализа и графических функций. Большим преимуществом R является то, что графика воспроизводится в отдельном окне и может быть сохранена в различных форматах, в том числе таких распространенных, как jpg, png, bmp, pdf и др. R позволяет анализировать сразу несколько массивов данных и комбинировать различные статистические функции. R – это свободное кросс-платформенное программное обеспечение с открытым исходным кодом. Есть варианты для Unix и Linux, для Window и Macintosh. Исходные файлы для установки нужной версии R можно бесплатно скачать на сайте the Comprehensive R Archive Network (СRAN) вместе с инструкциями по установке (https://cran.r-project.org/). Этот язык обладает большим количеством плюсов, хотя минусы тоже есть. Плюсы: 53 Он бесплатен, его код открыт. Содержит огромное количество встроенных статистических тестов, математических алгоритмов, функций для анализа данных в академических и отраслевых исследованиях. Расширяемость: модульная система пакетов (packages). Обширное сообщество разработчиков. Полностью программируемая высокоуровневая графика. Кросс-платформенность, воспроизводимость результатов. R становится популярным: статьи, книги, конференции, юзер- группы. Обратная совместимость – код, написанный 10 лет назад, должен работать и сейчас. Минусы: R достаточно сложен как язык программирования. Документация некоторых методов труднодоступна без глубокого знания математических методов и статистических процедур. Легко написать плохой (медленный, неподдерживаемый, нечитаемый) код. Пакеты дополнений устаревают. Можно заметить некоторую непоследовательность в именовании переменных и реализации методов. Работа с R не требует посредничества какого-либо графического пользовательского интерфейса (ГИП), и чаще всего те, кто программирует на R, ГИП не пользуются. Тем не менее существуют специально разработанные для работы с R инструменты, большинство из которых находится в свободном доступе. Одной из наиболее популярных сред для программирования на R является RStudio. Во многом подобны ей StatET и ESS. RStudio – http://www.rstudio.org/ StatET – http://www.walware.de/goto/statet/ ESS (Emacs Speaks Statistics) – http://ess.r-project.org/ 54 JGR (Java GUI for R) – http://cran.r- project.org/web/packages/JGR/index.html Существуют и коммерческие продукты для работы с R, например, Revolution Analytics, an R service company – http://www.revolutionanalytics.com/ R – мультипарадигменный язык, сочетающий в себе функциональное, процедурное, объектно-ориентированное и рефлексивное программирование. В нем можно использовать набор встроенных функций и переменных, а также создавать свои и комбинировать их в любые сочетания. Это придает R невероятную гибкость при профессиональном использовании. Д РУГИЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ Программное обеспечение R не единственное в своём роде, и если мы говорим о больших массивах биологических данных, то непременно стоит упомянуть такой проект, как Biopython. Сразу следует внести небольшое уточнение. Biopython – это не самостоятельный язык программирования, а так называемая коллекция некоммерческих инструментов для вычислений в области биологии и биоинформатики, относящаяся к языку программирования Python. Возможно, вы когда-то уже слышали о Python и знаете, что это высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчиков и обладающий широким объемом полезных функций стандартных библиотек и минималистичным синтаксисом. Biopython же, в свою очередь, является полезной надстройкой языка Python, позволяющей направить вычислительную мощь языка как раз на биологические данные. Разработка Biopython началась в 1999 г., а впервые проект увидел свет в июле 2000 г. Одними из первых разработчиков, занимающихся вопросом создания Biopython, были Джефф Чанг, Эндрю Далке и Брэд Чепмен, хотя суммарно, так или иначе, к процессу создания Biopython на сегодняшний день причастны более 100 человек. Первоначально Biopython включал в себя возможность доступа, 55 индексирования и обработки файлов биологической последовательности. Это все еще является основным направлением, но постепенно были добавлены модули, расширяющие стандартный функционал, чтобы охватить дополнительные области биологии. Начиная с версии 1.62 Biopython поддерживает работу на Python 3, а также Python 2. Вкратце коснемся его основных возможностей. |