- •Об авторе
- •О научных редакторах
- •Благодарности
- •От издательства
- •Введение
- •Для кого эта книга?
- •Почему 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. Ограничение доступа по принципу распознавания лиц
- •Усложняем проект: добавление пароля и видеозахвата
258 Глава 8. Обнаружение далеких экзопланет
Практический проект: добавление эффекта потемнения к краю
Фотосфера — это внешний светящийся слой звезды, который излучает свет и тепло. Поскольку с увеличением расстояния от центра звезды температура фотосферы падает, края диска оказываются менее нагретыми и по сравнению с центром звезды выглядят более тускло (рис. 8.22). Этот эффект называется
потемнением диска к краю.
Рис. 8.22. Потемнение солнечного диска к краю и пятна на Солнце
Перепишите программу transit.py, чтобы в ней учитывалось потемнение диска к краю. Вместо того чтобы рисовать звезду, используйте картинку limb_darlening. png из каталога Chapter_8, который можно скачать с сайта книги.
Потемнение к краю влияет на кривые блеска, демонстрирующие транзит планет. По сравнению с теоретическими кривыми, которые мы создавали в проекте 11, они будут получаться менее прямоугольными, с более закругленными, мягкими краями и изогнутым дном (рис. 8.23).
Используя обновленную версию программы, вернитесь к разделу «Эксперименты с транзитной фотометрией» на с. 242, где мы анализировали кривую блеска при частичных транзитах. Вы увидите, что по сравнению с частичными полные транзиты по-прежнему демонстрируют более широкие провалы с плоским дном (рис. 8.24).
Если полный транзит планеты меньшего радиуса произойдет возле края звезды, ввиду потемнения к краю отличить его от частичного транзита более крупной планеты будет сложно. Это можно наблюдать на рис. 8.25, где стрелками указано расположение планет.
Практический проект: добавление эффекта потемнения к краю 259
Рис. 8.23. Эффект, оказываемый потемнением к краю на кривую блеска |
|||||||
1.001 |
|
|
|
|
|
|
|
|
|
|
В а а |
|
|
|
|
1.000 |
|
|
В а а |
R = 7 ( а а ) |
|
||
|
|
|
|
|
|
|
|
0.999 |
|
|
|
R = 3 |
|
|
|
|
|
|
|
|
|
|
|
0.998 |
|
|
|
|
|
|
|
0.997 |
|
|
|
R = 7 |
|
|
|
|
|
|
|
|
|
|
|
0.996 |
|
|
|
|
|
|
|
0 |
20 |
40 |
60 |
80 |
100 |
120 |
140 |
Рис. 8.24. Кривые блеска с учетом потемнения к краю для полного и частичного |
|||||||
|
|
транзитов (R = радиус экзопланеты) |
|
|
Астрономы могут извлечь множество информации, анализируя кривую блеска. С помощью регистрации нескольких событий транзита они определяют орбитальные параметры экзопланеты, такие как расстояние между планетой и звездой. На основе малейших изгибов кривой блеска ученые рассчитывают интервал времени, в течение которого планета полностью находится на фоне звезды. Также они могут теоретически оценить величину потемнения к краю и использовать моделирование, как мы с вами сейчас, чтобы собрать все данные воедино и протестировать свои предположения в отношении реальных наблюдений.
260 Глава 8. Обнаружение далеких экзопланет
Partial transit R = 8
Full transit R = 5
Рис. 8.25. Частичный транзит планеты с радиусом 8 пикселей в сравнении с полным транзитом планеты с радиусом 5 пикселей
Решение под названием practice_limb_darkening.py вы найдете в приложении и в каталоге Chapter_8, доступном для скачивания на сайте книги.
Практический проект: обнаружение пятен на звездах
Солнечные пятна — на других солнцах их именуют звездными — это области поверхности со сниженной температурой, появление которых вызвано изменениями в магнитном поле звезды. Звездные пятна могут затемнять лицевую сторону звезд и интересным образом влиять на кривые их блеска. На рис. 8.26 экзопланета проходит над звездным пятном, вследствие чего на кривой возникает резкий пик.
Практический проект: обнаружение инопланетной армады 261
ƒ…
…
Рис. 8.26. Экзопланета (указана стрелкой на левом изображении), проходящая над звездным пятном, создает выпуклость на кривой блеска
Чтобы поэкспериментировать со звездными пятнами, используйте код practice_limb_darkening.py из предыдущего практического проекта, отредактировав его так, чтобы экзопланета примерно одного размера со звездными пятнами проходила над ними при транзите. Для воссоздания рис. 8.26 используйте значения EXO_RADIUS = 4, EXO_DX = 3 и EXO_START_Y = 205.
Практический проект: обнаружение инопланетной армады
Гиперэволюционировавшие бобры экзопланеты BR549 были трудягами, впрочем, как и любые другие бобры. Они собирали армаду исполинских кораблей, чтобы покинуть орбиту своей опустошенной планеты. Бобры обнаружили экзопланету, похожую по свойствам на их собственную, и решили переселиться в густые зеленые леса Земли!
Напишите программу Python, симулирующую траекторию движения нескольких звездных кораблей, которые совершают транзит мимо звезды. Задайте для этих кораблей разный размер, форму и скорость (как на рис. 8.27).
Сравните полученную кривую блеска с ее вариантом для звезды Табби (см. рис. 8.17) и с той, что получена в проекте по обнаружению астероидов. Отличаются ли кривые для кораблей или же аналогичные кривые можно получить для скоплений астероидов, звездных пятен и других естественных явлений?
Решение под названием practice_alien_armada.py вы найдете в приложении, а также в каталоге Chapter_8, доступном для скачивания с сайта книги.