Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Воган Ли - Python для хакеров (Библиотека программиста) - 2023.pdf
Скачиваний:
3
Добавлен:
07.04.2024
Размер:
14.76 Mб
Скачать

224      Глава 7. Выбор мест высадки на Марсе

30 North

Olympus

Mons

Рис. 7.14. Очень ровная поверхность на запад от полей лавы возле горы Олимп

Итоги

В этой главе мы использовали Python, OpenCV, Python Imaging Library, NumPy и tkinter для загрузки, анализа и показа изображений. Так как OpenCV рассматривает изображения в виде массивов NumPy, можно легко извлекать из частей изображенияинформациюиоцениватьееприпомощинаучныхбиблиотекPython.

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

Дополнительная литература

У Jet Propulsion Laboratory есть несколько коротких и забавных видео о посадке на Марс. Онлайн вы их найдете по запросу «Mars in a Minute: How Do You Choose a Landing Site?», а также «Mars in a Minute: How Do You Land on Mars?».

Книга «Mapping Mars: Science, Imagination, and the Birth of a World» (Picador, 2002), написанная Оливером Мортоном (Oliver Morton), посвящена истории современного изучения Марса, включая создание карты MOLA.

«The Atlas of Mars: Mapping Its Geography and Geology» (Cambridge University Press, 2019) Кеннета Кольза (Kenneth Coles), Кеннета Танака (Kenneth Tanaka)

Практический проект: визуализация профиля высот      225

и Филипа Кристенсена (Philip Christensen) представляет выдающийся универсальный справочный атлас Марса, содержащий карты минералогии, топографии, геологии, термальных свойств, приповерхностного водяного льда и не только.

Страница данных карты MOLA, использованной в проекте 10, находится на https://astrogeology.usgs.gov/search/map/Mars/GlobalSurveyor/MOLA/Mars_MGS_MOLA_ DEM_mosaic_global_463m/.

Подробные данные о Марсе доступны на сайте Mars Orbital Data Explorer, созданном PDS Geoscience Node в Университете Вашингтона в Сент-Луисе (https:// ode.rsl.wustl.edu/mars/index.aspx).

Практический проект: убедимся, что рисунки становятся частью изображения

Напишите программу Python, которая проверяет, становятся ли добавленные на изображение рисунки, такие как текст, линии, прямоугольники и т. д., частью этого изображения. Используйте NumPy для вычисления среднего значения, а также статистик стандартного отклонения и высоты неровностей профиля для прямоугольной области на полутоновом изображении MOLA. Но при этом не рисуйте контуры прямоугольника. Затем проведите вокруг этой области белую линию и еще раз просчитайте статистику. Совпадают ли два полученных результата?

Решение под названием practice_confirm_drawing_part_of_image.py находится в приложении к книге или в каталоге Chapter_7, доступном для скачивания по адресу https://nostarch.com/real-world-python/.

Практический проект: визуализация профиля высот

Профиль высот — это двухмерное представление ландшафта в поперечном срезе. Это вид сбоку рельефа поверхности вдоль линии, нарисованной между некоторыми точками на карте. Геологи используют такие профили для изучения поверхности и визуализации ее топографии. Для данного практического проекта нарисуйте профиль с запада на восток вдоль линии, которая проходит через самый большой вулканический кратер в Солнечной системе, гору Олимп (рис. 7.15).

Используйте карту Mars MGS MOLA — MEX HRSC Blended DEM Global 200m v2, показаннуюнарис.7.15.Уэтойверсииболеекачественноепоперечноеразрешение, чем у использованной в проекте 10. В ней также используется полный диапазон

226      Глава 7. Выбор мест высадки на Марсе

высот в данных MOLA. Ее копию под названием mola_1024x512_200mp.jpg можете найти в каталоге Chapter_7, доступном для скачивания с сайта книги. Решение же, practice_profile_olympus.py, находится в том же каталоге и в приложении к книге.

В а ( а)

П а Ма а

Рис. 7.15. Увеличенный по вертикали профиль через гору Олимп в направлении с запада на восток

Практический проект: отображение в 3D

Марс является несимметричной планетой: на южном полушарии доминируют испещренные кратерами высокогорья, а северное отличается ровными, плоскими долинами. Чтобы сделать это более наглядным, используйте предоставляемую matplotlib функциональность построения 3D-графиков для изображения mola_1024x512_200mp.jpg, которое использовали в предыдущем практическом проекте (рис. 7.16).

Библиотека matplotlib предоставляет точки, линии, контуры, каркасы модели и плоскости для создания 3D-графиков. Такие графики хотя и получаются

Практический проект: совмещение карт      227

Ю

Ра а А

Ра а Э а а

Г а О

 

а

 

С

Г а Э

П а

а

 

Рис. 7.16. 3D-график контуров Марса с ориентацией на запад

несколько грубоваты, зато генерируются быстро. Также можно использовать мышь для интерактивного захвата точек на графике и смены угла обзора. Подобные графики особенно полезны для тех, кому сложно визуализировать топографию на основе 2D-карт.

На рис. 7.16 более крупная вертикальная шкала делает наглядным изменение в высоте с юга на север. Здесь также несложно отметить самую высокую гору (Олимп) и самый глубокий кратер (равнина Эллада).

Можете воссоздать график с рис. 7.16 без аннотации с помощью программы practice_3d_plotting.py, которую найдете в приложении к книге или в каталоге Chapter_7, доступном для скачивания с сайта книги. Изображение карты вы найдете там же.

Практический проект: совмещение карт

Создайте новый проект, который придаст научность процессу выбора посадочных площадок. Совместите карту MOLA с цветной геологической картой

228      Глава 7. Выбор мест высадки на Марсе

и найдите наиболее ровные прямоугольные области среди вулканических отложений в провинции Фарсида (показана стрелкой на рис. 7.17).

Рис. 7.17. Геологическая карта Марса. Стрелка указывает на район вулканических отложений в провинции Фарсида

Поскольку провинция Фарсида располагается на значительной высоте, то вместо определения низин сосредоточьтесь на поиске наиболее плоских и ровных областей среди вулканических отложений. Чтобы выделить именно вулканические отложения, рассмотрите вариант бинаризации полутоновой версии карты. Бинаризация — это техника сегментации, которая разделяет передний и задний планы.

С ее помощью можно конвертировать полутоновое изображение в двоичное, где пиксели над или между указанными пороговыми значениями устанавливаются как 1, а все остальные как 0. Такое бинарное изображение позволяет отфильтровать карту MOLA, как показано на рис. 7.18.

Геологическую карту Mars_Global_Geology_Mariner9_1024.jpg вы найдете в каталоге Chapter_7, доступном для скачивания с сайта книги. Вулканические отложения окрашены в светло-розовый цвет. В качестве карты высот используйте mola_1024x512_200mp.jpg из практического проекта «Визуализация профиля высот» на с. 225.

Решения practice_geo_map_step_1of2.py и practice_geo_map_step_2of2.py можно найти в том же каталоге или приложении к книге. Сначала запустите программу practice_geo_map_step_1of2.py, чтобы сгенерировать фильтр для шага 2.