- •Об авторе
- •О научных редакторах
- •Благодарности
- •От издательства
- •Введение
- •Для кого эта книга?
- •Почему Python?
- •План книги
- •Версия Python, платформа и IDE
- •Установка Python
- •Запуск Python
- •Использование виртуальной среды
- •Вперед!
- •Глава 1. Спасение моряков с помощью теоремы Байеса
- •Теорема Байеса
- •Проект #1. Поиск и спасение
- •Стратегия
- •Установка библиотек Python
- •Код для теоремы Байеса
- •Время сыграть
- •Итоги
- •Дополнительная литература
- •Усложняем проект. Более грамотный поиск
- •Усложняем проект. Поиск лучшей стратегии с помощью MCS
- •Усложняем проект. Вычисление вероятности обнаружения
- •Глава 2. Установление авторства с помощью стилометрии
- •Проект #2: «Собака Баскервилей», «Война миров» и «Затерянный мир»
- •Стратегия
- •Установка NLTK
- •Корпусы текстов
- •Код стилометрии
- •Итоги
- •Дополнительная литература
- •Практический проект: охота на собаку Баскервилей с помощью распределения
- •Практический проект: тепловая карта пунктуации
- •Усложняем проект: фиксирование частотности
- •Глава 3. Суммаризация текста с помощью обработки естественного языка
- •Стратегия
- •Веб-скрапинг
- •Код для «У меня есть мечта»
- •Установка gensim
- •Код для суммаризации речи «Заправляйте свою кровать»
- •Проект #5. Суммаризация речи с помощью облака слов
- •Модули Word Cloud и PIL
- •Код для создания облака слов
- •Итоги
- •Дополнительная литература
- •Усложняем проект: ночные игры
- •Усложняем проект: суммаризация суммаризаций
- •Глава 4. Отправка суперсекретных сообщений с помощью книжного шифра
- •Одноразовый блокнот
- •Шифр «Ребекка»
- •Проект #6. Цифровой ключ к «Ребекке»
- •Стратегия
- •Код для шифрования
- •Отправка сообщений
- •Итоги
- •Дополнительная литература
- •Глава 5. Поиск Плутона
- •Проект #7. Воссоздание блинк-компаратора
- •Стратегия
- •Данные
- •Код блинк-компаратора
- •Использование блинк-компаратора
- •Проект #8. Обнаружение астрономических транзиентов путем дифференцирования изображений
- •Стратегия
- •Код для детектора транзиентов
- •Использование детектора транзиентов
- •Итоги
- •Дополнительная литература
- •Практический проект: представление орбитальной траектории
- •Практический проект: найди отличия
- •Усложняем проект: сосчитаем звезды
- •Глава 6. Победа в лунной гонке с помощью «Аполлона-8»
- •Цель миссии «Аполлон-8»
- •Траектория свободного возврата
- •Задача трех тел
- •Проект #9. На Луну с «Аполлоном-8»!
- •Использование модуля turtle
- •Стратегия
- •Код программы для расчета свободного возврата «Аполлона-8»
- •Выполнение симуляции
- •Итоги
- •Дополнительная литература
- •Практический проект: симуляция шаблона поисков
- •Практический проект: запусти меня!
- •Практический проект: останови меня!
- •Усложняем проект: симуляция в истинном масштабе
- •Усложняем проект: реальный «Аполлон-8»
- •Глава 7. Выбор мест высадки на Марсе
- •Посадка на Марс
- •Карта MOLA
- •Проект #10. Выбор посадочных мест на Марсе
- •Стратегия
- •Код для выбора мест посадки
- •Результаты
- •Итоги
- •Дополнительная литература
- •Практический проект: убедимся, что рисунки становятся частью изображения
- •Практический проект: визуализация профиля высот
- •Практический проект: отображение в 3D
- •Практический проект: совмещение карт
- •Усложняем проект: три в одном
- •Усложняем проект: перенос прямоугольников
- •Глава 8. Обнаружение далеких экзопланет
- •Транзитная фотометрия
- •Проект #11. Симуляция транзита экзопланеты
- •Стратегия
- •Код для транзита
- •Эксперименты с транзитной фотометрией
- •Проект #12. Получение изображений экзопланет
- •Стратегия
- •Код для пикселизатора
- •Итоги
- •Дополнительная литература
- •Практический проект: обнаружение инопланетных мегаструктур
- •Практический проект: обнаружение транзита астероидов
- •Практический проект: добавление эффекта потемнения к краю
- •Практический проект: обнаружение пятен на звездах
- •Практический проект: обнаружение инопланетной армады
- •Практический проект: обнаружение планеты с луной
- •Практический проект: измерение продолжительности экзопланетного дня
- •Усложняем проект: генерация динамической кривой блеска
- •Глава 9. Как различить своих и чужих
- •Обнаружение лиц на фотографиях
- •Проект #13. Программирование робота-часового
- •Стратегия
- •Результаты
- •Обнаружение лиц в видеопотоке
- •Итоги
- •Дополнительная литература
- •Практический проект: размытие лиц
- •Усложняем проект: обнаружение кошачьих мордочек
- •Глава 10. Ограничение доступа по принципу распознавания лиц
- •Распознавание лиц с помощью LBPH
- •Схема распознавания лиц
- •Извлечение гистограмм локальных бинарных шаблонов
- •Проект #14. Ограничение доступа к инопланетному артефакту
- •Стратегия
- •Поддержка модулей и файлов
- •Код для захвата видео
- •Код для обучения алгоритма распознавания лиц
- •Код для прогнозирования лиц
- •Результаты
- •Итоги
- •Дополнительная литература
- •Усложняем проект: добавление пароля и видеозахвата
- •Усложняем проект: похожие лица и близнецы
- •Усложняем проект: машина времени
- •Глава 11. Создание интерактивной карты побега от зомби
- •Проект #15. Визуализация плотности населения с помощью хороплетной карты
- •Стратегия
- •Библиотека анализа данных
- •Библиотеки bokeh и holoviews
- •Установка pandas, bokeh и holoviews
- •Работа с данными по уровню безработицы и плотности населения в округах и штатах
- •Разбираем код holoviews
- •Код для отрисовки хороплетной карты
- •Планирование маршрута
- •Итоги
- •Дополнительная литература
- •Усложняем проект: отображение на карте изменения численности населения США
- •Глава 12. Находимся ли мы в компьютерной симуляции?
- •Проект #16. Жизнь, Вселенная и пруд черепахи Йертл
- •Код симуляции пруда
- •Следствия симуляции пруда
- •Измерение затрат на пересечение строк или столбцов сетки
- •Результаты
- •Стратегия
- •Итоги
- •Дополнительная литература
- •Дополнение
- •Усложняем проект: поиск безопасного места в космосе
- •Усложняем проект: а вот и Солнце
- •Усложняем проект: взгляд глазами собаки
- •Усложняем проект: кастомизированный поиск слов
- •Усложняем проект: что за сложную паутину мы плетем
- •Усложняем проект: идем вещать с горы
- •Решения для практических проектов
- •Глава 2. Определение авторства с помощью стилометрии
- •Охота на собаку Баскервилей с помощью распределения
- •Тепловая карта пунктуации
- •Глава 4. Отправка суперсекретных сообщений с помощью книжного шифра
- •Составление графика символов
- •Отправка секретов шифром времен Второй мировой войны
- •Глава 5. Поиск Плутона
- •Представление орбитальной траектории
- •Глава 6. Победа в лунной гонке с помощью «Аполлона-8»
- •Симуляция шаблона поисков
- •Заведи меня!
- •Останови меня!
- •Глава 7. Выбор мест высадки на Марсе
- •Убеждаемся, что рисунки становятся частью изображения
- •Визуализация профиля высоты
- •Отображение в 3D
- •Совмещение карт
- •Глава 8. Обнаружение далеких экзопланет
- •Обнаружение инопланетных мегаструктур
- •Обнаружение транзита астероидов
- •Добавление эффекта потемнения к краю
- •Обнаружение инопланетной армады
- •Обнаружение планеты с луной
- •Измерение продолжительности экзопланетного дня
- •Глава 9. Как различить своих и чужих
- •Размытие лиц
- •Глава 10. Ограничение доступа по принципу распознавания лиц
- •Усложняем проект: добавление пароля и видеозахвата
Дополнительная литература 253
Цвета западного и восточного полушарий на рис. 8.15 и 8.16 различаются незначительно, но мы знаем, что они реальны, потому что получили ответ с помощью опережающего моделирования. То есть мы сформировали результат из фактических наблюдений, поэтому уверены, что он осмыслен, повторяем и уникален.
При анализе реальной экзопланеты понадобится сделать как можно больше снимков. И если сходство и цветовые паттерны на снимках, сделанных в разное время, будут сохраняться, то можно исключить наличие таких непостоянных эффектов, как смена погодных условий. Если же цветовые паттерны будут изменяться прогнозируемым образом на протяжении значительных интервалов времени, то есть вероятность, что это проявление смены времен года, например наличие снега зимой и зеленая растительность в весенний и летний периоды.
Если подобные измерения повторять через относительно короткие отрезки времени, то можно сделать выводы о вращении планеты вокруг собственной оси. В практических проектах в конце главы у вас будет возможность вычислить протяженность дня на экзопланете.
Итоги
В этой главе мы использовали OpenCV, NumPy и matplotlib для создания изображений и анализа их свойств. Мы изменяли размер изображений, а также составляли графики, отображающие их интенсивность и цветовые каналы. С помощью коротких и простых программ Python мы симулировали важные методы, которые астрономы используют для обнаружения и изучения далеких экзопланет.
Дополнительная литература
«How to Search for Exoplanets», изданная Планетарным обществом (https://www. planetary.org/), дает хороший обзор техник, используемых для поиска экзопланет, с описанием сильных и слабых сторон каждой техники.
Руководство «Transit Light Curve Tutorial», написанное Эндрю Вандербургом (Andrew Vanderburg), знакомит с основами транзитной фотометрии и предоставляет ссылки на данные о транзитах, собранные обсерваторией Кеплера. Найти его можно по адресу https://www.cfa.harvard.edu/~avanderb/tutorial/tutorial.html.
«NASA Wants to Photograph the Surface of an Exoplanet» (Wired, 2020) Даниэла Оберхауза (Daniel Oberhaus) описывает усилия, необходимые, чтобы превратить Солнце в гигантскую линзу камеры для изучения экзопланет.
254 Глава 8. Обнаружение далеких экзопланет
Книга «Dyson Spheres: How Advanced Alien Civilizations Would Conquer the Galaxy» (Space.com, 2014), написанная Карлом Тейтом (Karl Tate), с помощью инфографики рассказывает о том, как продвинутая цивилизация могла бы получать энергию звезды, используя огромные массивы солнечных панелей.
«Ringworld»1 (BallantineBooks,1970),написаннаяЛарриНивеном(LarryNiven),— классический научно-фантастический роман о полете к массивной заброшенной инопланетной конструкции — Миру-Кольцу, сооруженной вокруг далекой звезды.
Практический проект: обнаружение инопланетных мегаструктур
В 2015 году ученые, анализирующие данные с космического телескопа Kepler, заметили кое-что странное возле звезды Табби, расположенной в созвездии Лебедя. Кривая блеска звезды, зарегистрированная в 2013 году, демонстрировала нерегулярные изменения яркости, которые казались слишком большими, чтобы быть вызванными планетой (рис. 8.17).
|
1.00 |
|
|
|
|
|
0.95 |
|
|
|
|
|
|
Н а а |
0.90 |
|
|
|
|
|
0.85 |
|
|
|
|
|
|
0.80 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ф . 25 |
Ф . 27 |
Ма 1 |
Ма 3 |
Ма 5 |
Ма 7 |
|
|
|
В |
|
|
|
|
Рис. 8.17. Кривая блеска звезды Табби, измеренная космической |
|||||
|
|
обсерваторией Kepler |
|
|
Помимо этого, кривая блеска была несимметрична и включала странные неровности, которые не регистрируются при типичных транзитах планет. Объяснить это явление пытались по-разному: поглощением планеты звездой, транзитом облака распадающихся комет, наличием большой окруженной кольцами планеты, сопровождаемой скоплениями астероидов, а также существованием инопланетной мегаструктуры.
1 Нивен Л. «Мир-Кольцо».
Практический проект: обнаружение инопланетных мегаструктур 255
Ученые высказали догадку, что искусственная конструкция подобного размера с наибольшей вероятностью может быть попыткой инопланетной цивилизации аккумулировать энергию от своей звезды. Подобные крупномасштабные проекты построения солнечных панелей описаны как в научной, так и в фантастической литературе: рой Дайсона, сфера Дайсона, Мир-Кольцо и раковина Покровского (рис. 8.18).
Рис. 8.18. Раковина Покровского — совокупность колец, спроектированных вокруг звезды для перехвата ее излучения
В этом практическом проекте используйте программу transit.py, чтобы аппроксимировать форму и глубину кривой блеска звезды Табби. Замените используемую
впрограмме круглую экзопланету на другие простые геометрические фигуры. От вас не требуется воссоздать кривую в точности; просто проанализируйте ее ключевые признаки, такие как асимметрия, выпуклость в виде «бугорка»
врайоне 28 февраля, и большой провал в яркости.
Мой вариант под названием practice_tabbys_star.py вы найдете в каталоге Chapter_8, доступном для скачивания с сайта книги по адресу https://nostarch.com/real-world- python/https://nostarch.com/real-world-python/, а также в приложении. На рис. 8.19 показано, какая кривая блеска получается.
Нам известно, что независимо от того, что именно вращается вокруг звезды Табби, оно пропускает волны света определенной длины, значит, это не может быть твердым объектом. Исходя из этого предположения и длин волн, поглощаемых объектом, ученые считают, что в изменении кривой блеска звезды виновата космическая пыль. Однако другие звезды, например HD 139139 в созвездии Весов, тоже демонстрируют странные кривые блеска, которые на момент написания книги все еще не удается объяснить.
256 Глава 8. Обнаружение далеких экзопланет
Рис. 8.19. Кривая блеска, создаваемая программой practice_tabbys_star.py
Практический проект: обнаружение транзита астероидов
Поля астероидов могут также обусловливать неровные и асимметричные кривые блеска. Эти пояса космических обломков зачастую формируются при столкновении планет или при рождении солнечных систем, например Троянские астероиды на орбите Юпитера (рис. 8.20). Интересную анимацию на эту тему вы найдете на странице «Lucy: The First Mission to the Trojan Asteroids» по адресу https://www.nasa.gov/.
Измените программу transit.py, чтобы она случайным образом создавала астероиды с радиусом от 1 до 3, с преобладанием радиусов, близких к 1. Пусть пользователь вводит их количество. Не утруждайте себя вычислением радиуса экзопланеты, поскольку эти расчеты предполагают работу с одним сферическим объектом. Поэкспериментируйте с количеством астероидов, их размерами и распределением (диапазон x и диапазон y, в котором они существуют), чтобы оценить оказываемое ими влияние на кривую блеска. Один из примеров показан на рис. 8.21.
Решение под названием practice_asteroids.py вы найдете в приложении к книге, а также на ее сайте. В этой программе используется объектно-ориентированное
Практический проект: обнаружение транзита астероидов 257
программирование (ООП) для упрощения управления большим числом астероидов.
Рис. 8.20. На орбите Юпитера вращается более миллиона Троянских астероидов
Рис. 8.21. Нерегулярная асимметричная кривая блеска, произведенная случайно сгенерированным полем астероидов