Графики уравнений, содержащих знак модуля
Цель:
- закрепить методы построения графика линейной функции,
- закрепить умение учащихся задавать уравнением функцию, заданную при помощи графика,
- познакомить учащихся с тем, каким образом влияет знак модуля на отображение графика линейной функции
Оборудование: презентация (приложение 1)
Ход урока №1
При решении многих математических задач необходимо быстро и точно строить графики любых функций, изучаемых в школьном курсе алгебры. Т.к. на уроке предстоит много построений, начинаем, вспоминая, как строить график линейной функции y = kx + b на основе анализа углового коэффициента и коэффициента смещения (слайд 2)
Сопоставляем уравнения и графики (слайд 3):
Построим в тетрадях в одной системе координат графики функций (y = —x; y = —x -4; y = -1/3 x – 2; y = 2x + 5; y = x + 1), проверяя себя при помощи слайда 4
Вспомним определение модуля числа x (слайд 5)
Рассматриваем, как можно построить график функции y = |x| на основании определения модуля, отбрасывая части прямых, не лежащих в полуплоскостях x < 0 и x> 0 (слайд 6)
Аналогично рассматриваем способ построения графика функции y = |x + 1| (слайд 7)
Сравнивая графики и уравнения функций (слайд 8-9),
делаем вывод о том, как можно построить график функции y = |x + a| — b смещением графика функции y = |x| (слайд 10-11)
Строим в тетрадях графики функций y = |x-3| + 3, y = |x – 3| — 2, y = |x+2| — 5, y = |x + 3| + 2 и проверяем себя при помощи слайда 12
Далее учащиеся должны на основе рисунка, представленного на слайде 13, задать функцию уравнением:
При построении графиков очень важно научить
ребят анализировать область определения и
множество значений функции и “переносить”
указанные множества на координатную плоскость.
Заполняем таблицу (слайд 12):
D(y) E (y) y = |x| y = |x – 3| y = |x – 3| +2 y = — |x| y = |x + 2| -5 y = — |x +2| -5
И рассматриваем, как множества значений можно определить на основе графиков (слайд 15)
Учащимся предлагается определить D (y) и E(y) по рисунку (слайд 16):
Ученики самостоятельно придумывают уравнение функции по заданным D(y) и E(y) (слайд 17):
Анализируя графики и уравнения (слайд
18), ученики делают вывод о том, как влияет знак
минуса перед модульными скобками на график. И
самостоятельно задают уравнение по графикам,
представленным на слайде 19.
Ход урока № 2
Устно проговариваем уравнения функций по графикам (слайд 20):
Аналогично схеме предыдущего урока (слайд 21-27) ученики знакомятся с тем, каким образом влияет коэффициент перед аргументом функции на график. В результате они должны научиться описывать уравнением следующие графики:
Для закрепления полученных знаний, в тетрадях в одной системе координат ребята строят следующие графики:
y = |0,5x| при -3 < x< 3;
y = 3 при -1 < x< 1;
y = -|x + 3| + 6 при -4 < x < -2;
y = -|x — 3| + 6 при 2 < x < 4;
y = |x + 3| + 4 при -4 < x < -2;
y = |x — 3| + 4 при 2 < x ? 4;
y = -|0,5x – 1,5| + 7 при -5 < x < -1;
y = -|0,5x + 1,5| + 7 при 1 < x < 5.
Проверяют себя по слайду 29:
Домашнее задание: придумать картину, состоящую из отрезков прямых, и описать ее при помощи уравнений функций.
Ход урока № 3
Построим графики функций y = |3x| — 3 и y = |3x – 3|. Как в каждом случае связаны y(x) и y(-x)?
Наличие условия y(x) = y(-x) означает симметрию относительно …?
Приведите примеры уравнений функции, графики которых будут симметричны относительно оси ординат
Если в модульные скобки заключается переменная y, то мы получаем условие |y| = |-y|. Какую симметрию задает это условие?
На слайде 34 последовательно рассматриваем цепочку построения графиков:
y = 3x – 3, |y| = 3x – 3, |y| = |3x| — 3, |y|
= |3x – 3| путем преобразований симметрии.
Выводим и запоминаем три правила:
Распределите, к какому типу из трех (y = f(|x|, |y| = f(x), y = |f(x)|), можно отнести каждое уравнение:
|y| = 2 – x, y = |3x — 4|, |x| + |y| = 2, |y| = 3x – 4, y = |3|x| — 4|, y = |3x| — 4, |y| = |3|x| — 4|, |y| = |3x – 4|.
Проверяем себя (слайд 35)
Строим последовательную цепочку графиков (тонкими линиями в тетрадях):
1) y = 3x – 4, y = |3x – 4|, y = |3|x| - 4|, |y| = |3|x| — 4|
2) y = 3x – 4, y = 3|x| — 4, y = |3|x| — 4|
Рассматриваем способ построения графика соответствия |x| + |y| = 2.
Самостоятельно строим график |x| — |y| = 2 и
проверяем себя по слайду 39.
Домашнее задание: придумать пять уравнений соответствий с модулем, в которых встречаются все случаи, рассмотренные на уроке, и построить графики.
Постройте график функции y=-4/модуль х
Алгебра, 2020-04-23 02:33:47, lololololololololool
Ответ
Ответ разместил: killmepleaseeee
формулы нет? если есть то вложи сюда.
Ответ
Ответ разместил: katyunyagolubmailru
x | y
-7 1
-1 7
1 7
7 1
Ответ
Ответ разместил: RinataShayahmurzina
Вот там свойства и как строится
Ответ
Ответ разместил: Nr2006
Первое уравнение — просто убираешь знак модуля и составляешь таблицу со значениями.
Второе уравнение — перед модулем ставишь минус, а потом меняешь знаки внутри модуля. Далее убираешь модуль и сторожишь таблицу, а там уже и график.
Видимо, Х здесь можешь взять за любые числа
Ответ
Ответ разместил: Tedzs
Простите, что не очень аккуратно, но должно быть так
Ответ
Ответ разместил: pandokokos22jopar
Решали на уроке, на 99% уверена, что правильно.
Ответ
Ответ разместил: Vlad29rus228999
Решение Вашего задания во вложении
Ответ
Ответ разместил: TS1311
Сначала строим обычную параболу . Для этого найдем координаты вершины параболы.
(4;-15) — вершина параболы.
Затем построенный график отобразить симметрично относительно оси ординаты и получаем график функции
Графиком функции у = m является прямой, которая параллельная оси абсцисс. И очевидно, что при m=1 графики будут пересекаться в трёх точках.
ОТВЕТ: m = 1.
Другие вопросы по: Алгебра
Из 30 высаженных семян взошли 23,какая часть высаженных семян взошла…
Опубликовано: 26.02.2019 18:00
Ответов: 1
.(Вреакцию нейтрализации 100 г 10% naoh со 100 г hcl практ. выход соли составил 70% от теоретически возможного. определить массу соли)….
Опубликовано: 28. 02.2019 22:20
Ответов: 2
Уразорившегося предпринимателя спросили, сколько у него осталось денег. он сказал, что если к оставшемуся капиталу прибавить 1 млн гривен, то получится столько, сколько ему нужно,…
Опубликовано: 01.03.2019 03:30
Ответов: 3
Составить окислительно-восстановительное уравнение nai+naio3+h3so4=i2+na2so4+…
Опубликовано: 02.03.2019 19:40
Ответов: 3
Почему труд является основополагающим фактором антропогенеза?…
Опубликовано: 03.03.2019 06:00
Ответов: 2
Решите цепочку: р-> р2о5-> н3ро4-> к3ро4-> ag3ро4 с-> co2-> caco3-> co2-> ca(hco3)2…
Опубликовано: 03.03.2019 20:10
Ответов: 1
Популярные вопросы
Сумма двух чисел равна 63,а их разность равна 12. найдите эти !…
Опубликовано: 28. 02.2019 01:20
Ответов: 2
Сберегательный счет был открыт 15 февраля, и на него была положена сумма в 10000 тенге. в следующем квартале 10 апреля на счет поступили 6000 тенге. затем 20 мая со счета были снят…
Опубликовано: 28.02.2019 11:20
Ответов: 3
А)багаж массой 836 кг грузчики положили на 3 тележки. масса багажа на второй тележки в 2 раза больше, чем на первой. какова масса багажа на третьей тележке, если масса багажа на пе…
Опубликовано: 01.03.2019 08:30
Ответов: 2
Волином дворе девочек на 24 человека меньше, чем мальчиков. сколько живет в ее дворе, если девочек в три раза меньше, чем мальчиков?…
Опубликовано: 02.03.2019 10:10
Ответов: 1
Какова разность потенциалов двух точек электростатического поля , если для перемещения заряда 2мккл между этими точками совершена работа 8*(10*-4)?…
Опубликовано: 02. 03.2019 16:20
Ответов: 1
Сколько среди слов горячий, обожженый, красный, сгоревший таких, которые сочетаются со словом огонь?…
Опубликовано: 02.03.2019 18:00
Ответов: 1
1) могут ли углы треугольника относиться как числа 1,2,3? 2) найдите cos и tg, если sinα= 3в корне/2 люди надеюсь есть такие на белом свете?…
Опубликовано: 03.03.2019 13:30
Ответов: 2
Преобразуйте данную схему в уравнение реакции, расставте коэффициенты методом электронного : p+h3o2+> nah3po4…
Опубликовано: 03.03.2019 15:10
Ответов: 1
Раннеспелость томата «причуда» доминирует над позднеспелым томатом «великан». скрестили растения раннеспелого сорта с позднеспелым. какие по генотипу и фенотипу гибриды будут получ…
Опубликовано: 03.03.2019 15:50
Ответов: 2
Самый толстостенный кровеносный сосуд. ..
Опубликовано: 03.03.2019 19:40
Ответов: 3
Больше вопросов по предмету: Алгебра Случайные вопросы
Модуль Y делить на Y равно модуль X умножить на X… -reshimne.ru
Новые вопросы
Ответы
Модуль обозначается двумя вертикальными чертами.
lyl : y = lxl · x = 1
или
lyl : y = lxl · x = -1
|у|:у=|х|•х=1
Или вот так
|у|:у=|х|•х=1
Похожие вопросы
Для приготовления 1 кг крахмала берут 6 кг картофеля. Сколько крахмала получат из 30 кг картофеля?
…
Диагонали ромба 22см и 120см.Найти периметр ромб…
Найдите корень уравнения 2.3-х=6. У меня не получается вычесть….
10 т қант қызылшасынан 1,85 т қант алынады . 100 т қант қызылшасынан неше тонна қант алынады ?…
A)x2-3/x+1=2x-3/x+1
б)2-x2/5-x=3+8/x-5
в)x2-x+1/x-1+x2+x+1/x+1=2x
ОЧЕНЬ СРОЧНО НАДО , ПОМОГИТЕ ПОЖАЛУЙСТА…
Математика
Литература
АлгебраРусский язык
Геометрия
Английский язык
Химия
Физика
Биология
История
Обществознание
Окружающий мир
География
Українська мова
Українська література
Қазақ тiлi
Беларуская мова
Информатика
Экономика
Музыка
Право
Французский язык
Немецкий язык
МХК
ОБЖ
Психология
Практическое руководство по использованию YFinance API В Python
YFinance пришел в качестве поддержки для тех, кто стал беспомощным после закрытия API исторических данных Yahoo Finance, так как многие программы, которые полагались на него, перестали работать. YFinance был создан, чтобы помочь программам и пользователям, которые полагались на Yahoo Finance API. Он решает проблему, позволяя пользователям загружать данные с помощью Python, а также имеет несколько замечательных функций, которые делают его удобным для использования для анализа данных о запасах. YFinance не только загружает данные о ценах на акции, но также позволяет нам загружать все финансовые данные компании с момента ее листинга на фондовом рынке. Он прост в использовании и невероятно быстр. Эта библиотека довольно известна благодаря анализу финансовых данных.
В этой статье мы рассмотрим YFinance и узнаем, что мы можем сделать. Акции, над которыми мы будем работать, — это Pfizer, фармацевтическая компания, котирующаяся на NASDAQ. YFinance настоятельно рекомендуется для финансовой отчетности, поскольку она предоставляет вам все необходимые сведения о компании и ее акциях. В этой статье мы рассмотрим следующие моменты: —
- Загрузка и анализ биржевых данных с помощью YFinance
- Поиск различной информации о загруженных данных
- Визуализация данных о запасах
Для использования YFinance нам сначала нужно установить его, мы можем установить его с помощью pip install Finance.
импортировать финансирование как yfВыбор акции по ее символу
Используя функцию тикера, мы передаем символ акции, для которого нам нужно загрузить данные. Здесь мы работаем с Pfizer, и тикер для нее — «PFE». Давайте вызовем функцию тикера, чтобы инициализировать акции, с которыми мы будем работать.
yf.Ticker('PFE')Отображение информации о выбранных акциях
После инициализации функции тикера давайте теперь отобразим все финансовые данные, относящиеся к компании, используя «info». На нем будет отображаться вся информация о компании, включая сектор, количество сотрудников, сводку бизнеса и т. д.
pfizer.info
Загрузка биржевых данных
Теперь давайте загрузим биржевые данные, используя функцию «история». Мы можем передать аргумент, например start и end, чтобы установить конкретный период времени, иначе мы можем установить максимальный период, который будет загружать все данные об акциях с момента их листинга на рынке.
старый = pfizer.history(начало = "2010-01-01", конец = ”2020-07-21”) старый.голова()
Отображение соответствующей информации
Аналитик финансовых данных требует подробностей о дивидендах и дроблениях, которые компания предоставила своим акционерам. С помощью функции «действия» YFinance мы можем скачать это.
pfizer.actions
Помимо функции «действия», мы можем использовать функции «дивиденды» и «разделения» по отдельности, чтобы просматривать их по отдельности.
pfizer.дивиденды pfizer.splits
Чтобы узнать устойчивость акций, существует предопределенная функция под названием «устойчивость», которую можно использовать для отображения данных об устойчивости компании.
pfizer.устойчивое развитие
Рекомендации по покупке или продаже акций компании предоставляются различными финансовыми фирмами. Чтобы проанализировать цену акций, мы должны знать, что рекомендуют эти фирмы.
pfizer.рекомендации
Функцию «календарь» можно использовать, чтобы узнать о доходах и доходах компании.
pfizer.календарь
Для каждой компании, зарегистрированной на фондовом рынке, существует уникальный номер ISIN (международный идентификационный номер ценных бумаг). мы можем получить этот номер, используя функцию YFinance «isin»
pfizer.isin 'US7170811035'
Во время торговли опционами мы должны знать дату истечения срока действия опциона, используя функцию «options», мы можем получить дату истечения срока действия опциона для этой конкретной акции.
pfizer.options
Это основные функции YFinance, которые можно использовать для анализа биржевых данных. Точно так же мы можем использовать эти функции для анализа данных более чем нескольких акций.
Визуализация данных о запасах Мы можем построить данные о запасах с помощью Plotly, библиотеки Python, используемой для визуализации, которая также позволяет нам загружать визуализацию в виде изображения. Наиболее часто используемые диаграммы для анализа биржевых данных — это свечная диаграмма, линейная диаграмма и диаграмма OHLC.
Перед визуализацией биржевых данных нам нужно сбросить индекс фрейма данных, в котором хранятся наши данные, и нам нужно преобразовать столбцы в тип с плавающей запятой.
старый = старый.reset_index() для i в ['Открыть', 'Высокий', 'Закрыть', 'Низкий']: old[i] = old[i].astype('float64')Свечные графики
Давайте построим свечной график с ползунком диапазона, используя plotly. Графики свечей используются для технического анализа и могут помочь определить стратегию покупки, продажи или удержания.
импортировать plotly.graph_objects как есть fig = go.Figure(data=[go.Candlestick(x=old['Date'], открыть=старый['Открыть'], высокий=старый['Высокий'], низкий=старый['Низкий'], закрыть=старый['Закрыть'])]) рис.шоу()Линейные графики
Линейные графики являются обычными и наиболее часто используемыми. Они используются большинством фундаментальных и технических аналитиков для определения стратегий.
импортировать plotly.express как px fig = px.line(old, x="Date", y="Open", title='Цены акций PFizer') рис.шоу()Графики OHLC
Графики OHLC (открытие, максимум, минимум и закрытие) похожи на свечные графики и важны, поскольку они работают с ценой закрытия.
fig = go.Figure(data=go.Ohlc(x=old['Date'], открыть=старый['Открыть'], высокий=старый['Высокий'], низкий=старый['Низкий'], закрыть=старый['Закрыть'])) рис.шоу()Заключение
YFinance — это библиотека, которая настоятельно рекомендуется аналитикам финансовых данных, поскольку не нужно вести запись локально. Его можно использовать для создания подробного финансового отчета различных компаний. Точно так же мы можем визуализировать данные с помощью Plotly и создавать интерактивные и визуально привлекательные диаграммы/графики для дальнейшего анализа биржевых данных.
python — TypeError: объект «модуль» не вызывается
Спросил
Изменено 13 дней назад
Просмотрено 1,8 млн раз
Файл "C:\Users\Administrator\Documents\Mibot\oops\blinkserv.py", строка 82, в __init__ self.serv = сокет (AF_INET, SOCK_STREAM) TypeError: объект «модуль» не вызывается
Почему я получаю эту ошибку? Я смущен.
Что вам нужно знать, чтобы ответить на мой вопрос?
- питон
- розетки
2
сокет
представляет собой модуль, содержащий сокет класса .
Вам нужно сделать socket.socket(...)
или из сокета импорта сокета
:
>>> импорт сокета >>> розетка <модуль 'сокет' из 'C:\Python27\lib\socket.pyc'> >>> сокет.сокет <класс 'socket._socketobject'> >>> >>> из сокета импорта сокета >>> розетка <класс 'socket._socketobject'>
Вот что означает сообщение об ошибке:
В нем говорится, что объект модуля не вызывается
, потому что ваш код вызывает объект модуля . Объект модуля — это то, что вы получаете при импорте модуля. То, что вы пытались сделать, это вызвать объект класса класса в объекте модуля, который имеет то же имя, что и модуль, который его содержит.
Вот способ логически разбить такого рода ошибки:
- "
объект модуля не вызывается
. Python говорит мне, что мой код пытается вызвать что-то, что нельзя вызвать. Что мой код пытается вызвать?" - "Код пытается вызвать
сокет
. Это должно быть вызываемо! Является ли переменнаясокет
тем, что я думаю?"` - Я должен распечатать, что такое сокет и проверить
print(socket)
13
Предположим, что содержимое YourClass. py :
class YourClass: # ......
Если вы используете:
from YourClassParentDir import YourClass # означает YourClass.py
Таким образом, вы получите TypeError: объект 'module' не вызывается , если вы попытаетесь вызвать YourClass()
.
Но, если вы используете:
from YourClassParentDir.YourClass import YourClass # означает Class YourClass
или используйте YourClass.YourClass()
, это работает.
3
Добавить к основному __init__.py
в YourClassParentDir, например:
из .YourClass import YourClass
Затем у вас будет готовый экземпляр вашего класса, когда вы импортируете его в другой скрипт:
from YourClassParentDir import YourClass
1
Краткий ответ: Вы вызываете файл/каталог как функцию, а не реальную функцию
Читайте дальше:
Такая ошибка возникает, когда вы импортируете модуль, считая его функцией, и вызываете его. Итак, в модуле Python есть файл .py. Пакеты (каталоги) также можно рассматривать как модули.
Допустим, у меня есть файл create.py . В этом файле у меня есть такая функция:
#inside create.py деф создать(): проходить
Теперь в другом файле кода, если я сделаю так:
#внутри файла main.py импортировать создать create() #здесь create относится к create.py , поэтому create.create() будет работать здесь
Выдает эту ошибку, поскольку я вызываю файл create.py как функцию. поэтому я должен сделать это:
из создать импорт создать create() #теперь это работает.
Вот еще одна ошибка, которую мне потребовалось некоторое время, чтобы увидеть даже после прочтения этих сообщений. Я настраивал скрипт для вызова моих скриптов bin python. Я тоже получал модуль, который нельзя было вызвать.
Мой зиг заключался в том, что я делал следующее:
из mypackage.bin import myscript ... мой скрипт(...)
, когда моему загу нужно было сделать следующее:
из mypackage.bin.myscript import myscript ... мой скрипт(...)
Таким образом, дважды проверьте вложенность вашего пакета и модуля.
То, что я пытаюсь сделать, это иметь каталог сценариев, который не имеет расширения *.py, и при этом иметь модули «bin», которые должны находиться в mypackage/bin, и они имеют мое расширение *.py. Я новичок в упаковке и стараюсь следовать стандартам, как я их интерпретирую. Итак, у меня в корне установки:
setup.py скрипты/ сценарий1 мой пакет/ мусорное ведро / script1.py подпакет1/ subpackage_etc/
Если это не соответствует стандарту, сообщите мне об этом.
Похоже, вы импортировали модуль socket
как import socket
. Поэтому сокет
является модулем. Вам либо нужно изменить эту строку на self.serv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
, а также любое другое использование модуль сокета
или измените оператор импорта на из сокета импорта сокета
.
Или у вас есть импортный сокет
после вашего из импорта сокета *
:
>>> из импорта сокета * >>> серв = сокет(AF_INET,SOCK_STREAM) >>> импортировать сокет >>> серв = сокет(AF_INET,SOCK_STREAM) Traceback (последний последний вызов): Файл "", строка 1, вTypeError: объект «модуль» не вызывается
3
Я знаю, что этой теме уже год, но настоящая проблема в вашем рабочем каталоге.
Я считаю, что рабочий каталог C:\Users\Administrator\Documents\Mibot\oops\
. Проверьте наличие файла с именем socket.py
в этом каталоге. Как только вы найдете его, переименуйте или переместите его. Когда вы импортируете сокет, socket.py
из текущего каталога используется вместо socket.py
из каталога Python. Надеюсь, это помогло. 🙂
Примечание: Никогда не используйте имена файлов из каталога Python для сохранения имени файла вашей программы; это будет конфликтовать с вашей программой(ами).
1
При настройке точки входа console_scripts в setup.py я обнаружил, что эта проблема существует, когда конечной точкой является модуль или пакет, а не функция внутри модуля.
Трассировка (последний последний вызов): Файл "/Users/ubuntu/.virtualenvs/virtualenv/bin/mycli", строка 11, вload_entry_point('мой-пакет', 'console_scripts', 'mycli')() TypeError: объект «модуль» не вызывается
Например,
из настройки импорта setuptools настраивать ( # ... вход_точки = { 'console_scripts': [mycli=package.module.submodule] }, # ... )
Должно было быть
из настройки импорта setuptools настраивать ( # ... вход_точки = { 'console_scripts': [mycli=package.module.submodule:main] }, # ... )
Чтобы он относился к вызываемой функции, а не к самому модулю. Кажется, нет никакой разницы, если модуль имеет , если __name__ == '__main__': блок
. Это не сделает модуль вызываемым.
1
Столкнулся с такой же проблемой. затем я попытался не использовать из YourClass import YourClass
Я просто скопировал весь код YourClass.py и запустил его в основном коде (или текущем коде). Это решило ошибку
Думаю, вы переопределили встроенную функцию/переменную или что-то еще "модуль", установив глобальную переменную "модуль". просто распечатайте модуль, посмотрите, что в нем.
Вот возможный дополнительный пограничный случай, на который я наткнулся и какое-то время был озадачен, надеюсь, это кому-нибудь поможет:
В some_module/a.py
:
def a(): проходить
В some_module/b.py
:
из . импортировать защита б(): а()
В some_module/__init__.py
:
из .b импортировать b из .a импортировать
main.py
:
из импорта some_module b б()
Затем, потому что когда main. py загружает b, он проходит через
__init__.py
, который пытается загрузить b.py
до a.py
. Это означает, что когда b.py
пытается загрузить a
, он получает модуль, а не функцию, то есть вы получите сообщение об ошибке объект модуля не вызывается
Решение здесь состоит в том, чтобы поменять порядок в some_module/__init__.py
:
из .a импортировать из .b импортировать b
Или, если это создаст циклическую зависимость, измените имена файлов, чтобы они не соответствовали функциям, и загрузите напрямую из файлов, а не полагайтесь на __init__.py
Простой способ решить эту проблему — экспортировать переменную среды PYTHONPATH
. Например, для Python 2.6 в Debian/GNU Linux:
export PYTHONPATH=/usr/lib/python2.6`
В других операционных системах сначала нужно найти расположение этого модуля или файла socket.
. py
проверьте операторы импорта, так как модуль не вызывается. В Python все (включая функции, методы, модули, классы и т. д.) является объектом.
yahoofinancials · PyPI
Модуль Python, который возвращает финансовые данные об акциях, криптовалютах, форексе, взаимных фондах, товарных фьючерсах, ETF и Казначействе США от Yahoo Finance.
Текущая версия: v1.6
Версия выпущена: 18.10.2020
Сообщите о любых ошибках, открыв вопрос здесь: https://github.com/JECSand/yahoofinancials/issues
Обзор
Мощный модуль финансовых данных, используемый для извлечения фундаментальных и технических данных из Yahoo Finance.
Начиная с версии 0.10, Yahoo Financials теперь возвращает исторические данные о ценах на товарные фьючерсы, криптовалюты, ETF, взаимные фонды, казначейские обязательства США, валюты, индексы и акции.
Установка
yahoofinancials работает на Python 2.7, 3.
3, 3.4, 3.5, 3.6 и 3.7.
Работа пакета зависит от BeautifulSoup4 и Pytz.
Установка с помощью pip:
Linux/Mac:
$ pip установить yahoofinancials
> python -m pip установить yahoofinancials
Установка с помощью github (Mac/Linux):
$ клон git https://github.com/JECSand/yahoofinancials.git $ cd yahoofinancials $ установка python setup.py
Демонстрация с использованием прилагаемого демонстрационного сценария:
$ компакт-диск yahoofinancials $ Python demo.py -h $ Python demo.py $ Python demo.py WFC C BAC
Проверка с использованием включенного сценария модульного тестирования:
$ компакт-диск yahoofinancials $ тест Python/test_yahoofinancials.py
Методы модуля
Финансовые данные всех методов возвращаются в формате JSON.
Вы можете запускать несколько символов одновременно, используя введенный массив, или запускать отдельный символ, используя введенную строку.
YahooFinancials работает с Python 2.7, 3.3, 3.4, 3.5, 3.6 и 3.7 и работает во всех операционных системах. (Виндовс, Мак, Линукс).
Рекомендуемые методы
get_financial_stmts (частота, statement_type, переформатировать = True)
периодичность может быть «ежегодной» или «ежеквартальной».
statement_type может быть «доход», «баланс», «наличные» или список из нескольких.
переформатировать необязательное значение по умолчанию true. Введите False для необработанных необработанных данных из Yahoo Finance.
get_stock_price_data(reformat=True)
get_stock_earnings_data(reformat=True)
get_summary_data(reformat=True)
Возвращает сводные финансовые данные по криптовалютам, акциям, валютам, ETF, взаимным фондам, казначейским обязательствам США, товарным фьючерсам и индексам.
переформатировать необязательное значение по умолчанию true. Введите False для необработанных необработанных данных из Yahoo Finance.
get_stock_quote_type_data()
get_historical_price_data(start_date, end_date, time_interval)
Этот метод извлекает исторические данные о ценах на акции, валюты, ETF, взаимные фонды, казначейские обязательства США, криптовалюты, товары и индексы.
start_date следует вводить в формате «ГГГГ-ММ-ДД». Это первый день, за который будут извлекаться данные.
end_date следует вводить в формате «ГГГГ-ММ-ДД». Это последний день, за который будут извлекаться данные.
time_interval может быть «ежедневно», «еженедельно» или «ежемесячно». Эта переменная определяет временной интервал для вашего запроса.
Ответ данных включает соответствующие данные ценовых событий, такие как дивиденды и дробление акций.
get_num_shares_outstanding(price_type='current')
Методы, добавленные в версии 1.5
Методы дополнительных модулей
get_interest_expense()
get_operating_income()
get_total_operating_expense()
get_total_revenue()
get_cost_of_revenue()
get_income_before_tax()
get_income_tax_expense()
get_gross_profit()
get_net_income_from_continuing_ops()
get_research_and_development()
get_current_price()
get_current_change()
get_current_percent_change()
get_current_volume()
get_prev_close_price()
get_open_price()
get_ten_day_avg_daily_volume()
get_three_month_avg_daily_volume()
get_stock_exchange()
get_market_cap()
get_daily_low()
get_daily_high()
get_currency()
get_yearly_high()
get_yearly_low()
get_dividend_yield()
get_annual_avg_div_yield()
get_five_yr_avg_div_yield()
get_dividend_rate()
get_annual_avg_div_rate()
get_50day_moving_avg()
get_200day_moving_avg()
get_beta()
get_payout_ratio()
get_pe_ratio()
get_price_to_sales()
get_exdividend_date()
get_book_value()
get_ebit()
get_net_income()
get_earnings_per_share()
get_key_statistics_data()
Примеры использования
Конструктор класса может принимать либо один тикер, либо список тикеров в качестве параметра.
Это позволяет легко инициировать несколько классов для различных групп финансовых активов.
Квартальные данные отчета возвращают данные за последние 4 периода, а годовые — за последние 3.
Пример одного тикера
из yahoofinancials импорт YahooFinancials тикер = 'AAPL' yahoo_financials = YahooFinancials (тикер) balance_sheet_data_qt = yahoo_financials.get_financial_stmts('ежеквартально', 'баланс') yield_statement_data_qt = yahoo_financials.get_financial_stmts('ежеквартально', 'доход') all_statement_data_qt = yahoo_financials.get_financial_stmts('ежеквартально', ['доход', 'наличные деньги', 'баланс']) apple_earnings_data = yahoo_financials.get_stock_earnings_data() apple_net_income = yahoo_financials.get_net_income() history_stock_prices = yahoo_financials.get_historical_price_data('2008-09TYX'] yahoo_financials_tech = YahooFinancials(tech_stocks) yahoo_financials_banks = YahooFinancials(bank_stocks) yahoo_financials_commodities = YahooFinancials(commodity_futures) yahoo_financials_cryptocurrencies = YahooFinancials (криптовалюты) yahoo_financials_currencies = YahooFinancials(валюты) yahoo_financials_mutualfunds = YahooFinancials(паевые_фонды) yahoo_financials_treasuries = YahooFinancials(us_treasuries) tech_cash_flow_data_an = yahoo_financials_tech.get_financial_stmts («годовой», «наличные») bank_cash_flow_data_an = yahoo_financials_banks.get_financial_stmts («годовой», «наличные») banks_net_ebit = yahoo_financials_banks.get_ebit() tech_stock_price_data = yahoo_financials_tech.get_stock_price_data() daily_bank_stock_prices = yahoo_financials_banks.get_historical_price_data('2008-09-15", "2018-09-15", "ежедневно") daily_commodity_prices = yahoo_financials_commodities.get_historical_price_data('2008-09-15', '2018-09-15', 'ежедневно') daily_crypto_prices = yahoo_financials_cryptocurrencies.get_historical_price_data('2008-09-15', '2018-09-15', 'ежедневно') daily_currency_prices = yahoo_financials_currencies.get_historical_price_data('2008-09-15', '2018-09-15', 'ежедневно') daily_mutualfund_prices = yahoo_financials_mutualfunds.get_historical_price_data('2008-09-15', '2018-09-15', 'ежедневно') daily_treasury_prices = yahoo_financials_treasuries.get_historical_price_data('2008-09-15", "2018-09-15", "ежедневно")
Примеры возвращаемых данных JSON
Данные годового отчета о прибылях и убытках для Apple:
yahoo_financials = YahooFinancials('AAPL') print(yahoo_financials.get_financial_stmts('годовой', 'доход'))
{ "incomeStatementHistory": { "ААПЛ": [ { "2016-09-24": { "minorityInterest": ноль, «другие операционные расходы»: ноль, "netIncomeFromContinuingOps": 45687000000, "общий доход": 21563
Данные годового баланса Apple:
yahoo_financials = YahooFinancials('AAPL') print(yahoo_financials.get_financial_stmts('годовой', 'баланс'))
{ "История баланса": { "ААПЛ": [ { "2016-09-24": { "otherCurrentLiab": 8080000000, "другие текущие активы": 8283000000, "гудвилл": 5414000000, «короткие инвестиции»: 46671000000, "longTermInvestments": 170430000000, "наличные": 20484000000, «неттоматериальные активы»: 1196200, "общие активы": 321686000000, "другоеЛяб": 36074000000, "общий акционерный капитал": 12824
00, "инвентарь": 2132000000, "retainedEarnings": 96364000000, «нематериальные активы»: 3206000000, "totalCurrentAssets": 10686
00, "otherStockholderEquity": 634000000, "shortLongTermDebt": 11605000000, "propertyPlantEquipment": 27010000000, "отложенныйLongTermLiab": 2930000000, "чистая дебиторская задолженность": 2929
Данные квартального отчета о движении денежных средств для Citigroup:
yahoo_financials = YahooFinancials('C') print(yahoo_financials.get_financial_stmts('ежеквартально', 'наличные'))
{ "CashflowStatementHistoryQuarterly": { "С": [ { "2017-06-30": { "totalCashFromOperatingActivities": -18505000000, "effectOfExchangeRate": -117000000, "totalCashFromFinancingActivities": 39798000000, "чистый доход": 3872000000, "выплачено дивидендов": -760000000, "ПродажаПокупкаСклада": -1781000000, "капитальные расходы": -861000000, "changeToLiabilities": -7626000000, «другие денежные потоки от инвестиционной деятельности»: 82000000, "totalCashflowsFromInvestingActivities": -22508000000, "netBorrowings": 33586000000, "амортизация": 0000, "changeInCash": -1332000000, "changeToNetincome": 1444000000, "otherCashflowsFromFinancingActivities": 8753000000, "changeToOperatingActivities": -17096000000, "инвестиции": -23224000000 } } ] } }
Ежемесячные исторические данные о ценах на акции Wells Fargo:
yahoo_financials = YahooFinancials('WFC') print(yahoo_financials.get_historical_price_data("2018-07-10", "2018-08-10", "ежемесячно"))
{ "ВФК": { "валюта": "доллар США", "данные событий": { "дивиденды": { "2018-08-01": { "количество": 0,43, "дата": 1533821400, "formatted_date": "2018-08-09" } } }, "firstTradeDate": { "дата": 76233600, "formatted_date": "1972-06-01" }, "instrumentType": "АКЦИЯ", "Цены": [ { "adjclose": 57,172924805, "близко": 57.61000061035156, "дата": 1533096000, "formatted_date": "2018-08-01", «высокий»: 59,5, "низкий": 57.08000183105469, «открыто»: 57.9599972656, "объем": 1380 } ], "часовой пояс": { "гмтофсет": -14400 } } }
Ежемесячные исторические ценовые данные для EURUSD:
yahoo_financials = YahooFinancials('EURUSD=X') print(yahoo_financials.get_historical_price_data("2018-07-10", "2018-08-10", "ежемесячно"))
{ "EURUSD=X": { "валюта": "доллар США", "данные событий": {}, "firstTradeDate": { "дата": 1070236800, "formatted_date": "2003-12-01" }, "instrumentType": "ВАЛЮТА", "Цены": [ { "adjclose": 1.1394712924957275, "закрыть": 1.1394712924957275, "дата": 1533078000, "formatted_date": "2018-07-31", "высокий": 1.169864296
Ежемесячные исторические ценовые данные для BTC-USD:
yahoo_financials = YahooFinancials('BTC-USD') print(yahoo_financials.get_historical_price_data("2018-07-10", "2018-08-10", "ежемесячно"))
{ «БТД-Доллар США»: { "валюта": "доллар США", "данные событий": {}, "firstTradeDate": { "дата": 1279 г.321200, "formatted_date": "2010-07-16" }, "instrumentType": "КРИПТОВАЛЮТА", "Цены": [ { "adjclose": 6285.02001953125, "близко": 6285.02001953125, "дата": 1533078000, "formatted_date": "2018-07-31", «высокий»: 7760.740234375, "низкий": 6133.02978515625, «открыто»: 7736,25, "том": 4334347882 } ], "часовой пояс": { "гмтофсет": 3600 } } }
Еженедельные исторические данные о ценах на фьючерсы на сырую нефть:
yahoo_financials = YahooFinancials('CL=F') print(yahoo_financials.get_historical_price_data("2018-08-01", "2018-08-10", "еженедельно"))
{ "КЛ=Ф": { "валюта": "доллар США", "данные событий": {}, "firstTradeDate": { "дата": 1522555200, "formatted_date": "2018-04-01" }, "instrumentType": "БУДУЩЕЕ", "Цены": [ { "adjclose": 68,58999633789062, "близко": 68.58999633789062, "дата": 15320, "formatted_date": "30.07.2018", «высокий»: 69.3499984741211, "низкий": 66.816894531, «открыто»: 68.37000274658203, "том": 683048039 }, { "adjclose": 67,75, «близко»: 67,75, "дата": 1533528000, "formatted_date": "2018-08-06", "высокий": 69.
Котировки акций Apple:
yahoo_financials = YahooFinancials('AAPL') печать (yahoo_financials.get_stock_quote_type_data())
{ "ААПЛ": { "базовыйExchangeSymbol": ноль, "exchangeTimezoneName": "Америка/Нью-Йорк", "базовый символ": ноль, "headSymbol": ноль, "shortName": "Apple Inc.", "символ": "AAPL", "uuid": "8b10e4ae-9ТЫКС": 3,062 }
BTC-USD Сводные данные:
yahoo_financials = YahooFinancials('BTC-USD') печать (yahoo_financials.get_summary_data())
{ «БТД-Доллар США»: { "алгоритм": "SHA256", "спросить": ноль, "аскСизе": ноль, "среднедневной объем10День": 545573809, "средний объем": 496761640, "averageVolume10days": 545573809, "бета": ноль, "ставка": ноль, "Размер ставки": ноль, "циркуляционный запас": 17209812, "валюта": "доллар США", "дневной максимум": 6266,5, «дневной минимум»: 5891,87, "дивидендрейт": ноль, "дивидендный доход": ноль, "exDividendDate": "-", "годен до": "-", "50DayAverage": 6989.074, "fiftyTwoWeekHigh": 19870,62, "fiftyTwoWeekLow": 2979,88, "fiveYearAvgDividendYield": ноль, «впередPE»: ноль, "fromCurrency": "БТД", "lastMarket": "CCCAGG", "маркеткап": 106325663744, "maxAge": 1, "maxSupply": 21000000, "navPrice": ноль, «открыто»: 6263,2, "openInterest": ноль, "payoutRatio": ноль, "предыдущийЗакрыть": 6263.2, "ЦенаПодсказка": 2, «priceToSalesTrailing12Months»: ноль, "regularMarketDayHigh": 6266,5, "regularMarketDayLow": 5891,87, "regularMarketOpen": 6263,2, "regularMarketPreviousClose": 6263,2, "regularMarketVolume": 755834368, "дата начала": "03 января 2009 г.", "strikePrice": ноль, "totalAssets": ноль, "торгуемый": ложь, "trailingAnnualDividendRate": ноль, "trailingAnnualDividendYield": ноль, "двухсотдневный средний": 8165,154, "объем": 755834368, "объем24ч": 750196480, "volumeAllCurrencies": 2673437184, "выход": ноль, "ytdReturn": ноль } }
Ключевые статистические данные Apple:
yahoo_financials = YahooFinancials('AAPL') печать (yahoo_financials.get_key_statistics_data())
{ "ААПЛ": { "annualHoldingsTurnover": ноль, "EnterpriseToRevenue": 2,973, "beta3Year": ноль, "маржи прибыли": 0,22413999, "enterpriseToEbitda": 9.652, "52WeekChange": -0,12707871, "morningStarRiskRating": ноль, "форвардЭпс": 13.49, "revenueQuarterlyGrowth": ноль, «акции в обращении»: 4729800192, "fundInceptionDate": "-", "annualReportExpenseRatio": ноль, "totalAssets": ноль, «книжная стоимость»: 22,534, "sharesShort": 44

Данные о ежедневных дивидендах Apple и Wells Fargo:
start_date = '1987-09-15' end_date = '1988-09-15' yahoo_financials = YahooFinancials(['AAPL', 'WFC']) print(yahoo_financials.get_daily_dividend_data(start_date, end_date))
{ "ААПЛ": [ { "дата": 564157800, "formatted_date": "1987-11-17", "количество": 0,08 }, { "дата": 571674600, "formatted_date": "12 февраля 1988 г.Библиотека", "количество": 0,08 }, { "дата": 579792600, "formatted_date": "16 мая 1988 г.", "количество": 0,08 }, { "дата": 587655000, "formatted_date": "15 августа 1988 г.", "количество": 0,08 } ], "ВФК": [ { "дата": 562861800, "formatted_date": "1987-11-02", "сумма": 0,3008 }, { "дата": 570724200, "formatted_date": "1988-02-01", "сумма": 0,3008 }, { "дата": 578583000, "formatted_date": "1988-05-02", "количество": 0,3344 }, { "дата": 586445400, "formatted_date": "1988-08-01", "количество": 0,3344 } ] }
Последнее обновление: 3 ноября 2020 г.
- Что такое yfinance?
- Библиотека yfinance бесплатна?
- Зачем мне использовать библиотеку yfinance?
- Почему мне не следует использовать библиотеку yfinance?
- Какие есть альтернативы библиотеке yfinance?
- RapidAPI
- yahoo_fin
- Как начать работу с библиотекой yfinance?
- Установка
- Схема библиотеки
- Как загрузить исторические данные с помощью библиотеки yfinance?
- Демо с одним тикером
- Демо с несколькими тикерами
- Как загрузить фундаментальные данные с помощью библиотеки yfinance?
- Отношение цены к прибыли
- Дивиденды
- Основные данные с несколькими тикерами одновременно
- Сравнение по определенному атрибуту
- Как загрузить торговые данные с помощью библиотеки yfinance?
- Рыночная капитализация
- Объем
- Максимумы и минимумы
- Как загрузить данные об опционах с помощью библиотеки yfinance?
- Как узнать даты истечения срока действия?
- Как получить данные о звонках?
- Как получить данные о путах?
- Распространенные ошибки
- Заключительные мысли
- Ссылка для загрузки используемого кода
Что такое yfinance?
yfinance — популярная библиотека с открытым исходным кодом, разработанная Раном Арусси как средство доступа к финансовым данным, доступным на Yahoo Finance.
Yahoo Finance предлагает отличный набор рыночных данных по акциям, облигациям, валютам и криптовалютам. Он также предлагает новости рынка, отчеты и анализ, а также дополнительные параметры и основные данные, что отличает его от некоторых конкурентов.
У Yahoo Finance раньше был собственный официальный API, но он был выведен из эксплуатации 15 мая 2017 года из-за широко распространенного неправомерного использования данных.
В настоящее время существует ряд неофициальных API и библиотек для доступа к одним и тем же данным, включая, конечно же, yfinance.
Обратите внимание, что вы могли знать о yfinance под старым названием — fix-yahoo-finance , поскольку оно было переименовано 26 мая 2019 года в то же время, когда он подвергся капитальному ремонту, чтобы исправить некоторые проблемы с удобством использования.
Чтобы обеспечить обратную совместимость, fix-yahoo-finance теперь в любом случае импортирует и использует yfinance, но Ран Арусси по-прежнему рекомендует устанавливать и использовать yfinance напрямую.
В этой статье мы сосредоточимся в основном на библиотеке yfinance, но более подробно обсудим общий набор вариантов и других альтернативных поставщиков в нашей родительской статье Yahoo Finance API — полное руководство.
Является ли библиотека yfinance бесплатной?
Да, yfinance полностью бесплатный и с открытым исходным кодом. Вы можете найти документацию здесь.
Зачем мне использовать библиотеку yfinance?
- Бесплатно
- Быстрая и простая настройка
- Простой
- Высокая степень детализации данных (данные 1 мин/2 мин/5 мин)
- Возвращает данные непосредственно в кадры/серии данных pandas
Как мы только что упомянули yfinance с открытым исходным кодом и бесплатно. Существуют и другие способы доступа к данным Yahoo Finance, как бесплатные, так и платные, и есть определенные преимущества для некоторых опций, которые требуют оплаты, например, гарантированное обслуживание решения, но всем нравится бесплатность!
Установка не может быть проще и быстрее . У yfinance всего 4 зависимости, все они в любом случае поставляются с Anaconda и полностью устанавливаются в одну строку кода. Не требуется создание учетной записи или регистрация и использование ключей API!
Это просто . Дизайн yfinance очень питонический и невероятно оптимизирован. Это так же просто, как создать объект тикера для определенного тикера/списка тикеров, а затем просто вызвать все методы этого объекта. Вот так:
импортировать yfinance как yf яблоко = yf.Ticker ("aapl") # показать действия (дивиденды, сплиты) apple.actions # показать дивиденды яблоко.дивиденды # показать сплиты яблоко.разбивается # + другие методы и т. д.
Не волнуйтесь, мы немного разберем этот код!
Кроме того, документация умещается на одной странице, а имена методов говорят сами за себя.
Высокая степень детализации данных . Одна интересная особенность yfinance заключается в том, что вы можете получать очень точные данные, вплоть до 5-минутных, 3-минутных и даже 1-минутных данных! Полный диапазон доступных интервалов:
1 м, 2 м, 5 м, 15 м, 30 м, 60 м, 90 м, 1 ч, 1 д, 5 д, 1 нед, 1 мес, 3 мес
Однако важно отметить, что данные 1m можно получить только за последние 7 дней, а внутридневные (интервал <1d) — только за последние 60 дней.
yfinance также удобно возвращает данные непосредственно в фреймах данных padas или сериях . Это отличается от некоторых других вариантов доступа к данным Yahoo Finance, где вы получите длинные JSON, которые вам нужно проанализировать для получения конкретной информации, которую вы хотите, и вам придется вручную конвертировать в кадры данных самостоятельно.
Почему мне не следует использовать библиотеку yfinance?
- Не имеет специализированных функций
- Некоторые методы ненадежны
- Неофициальные/не обязательно поддерживаемые
- Можно попасть в черный список/с ограниченной скоростью
Не хватает специальных функций . Несмотря на то, что вы можете использовать его для получения большого количества основных данных, включая данные об опционах и фундаментальные данные, yfinance не предоставляет метода очистки каких-либо новостных отчетов/анализов, доступных на Yahoo Finance.
Это, очевидно, не идеально, если вы хотите построить модель, частично основанную на анализе настроений, поэтому, если вам нужны данные такого рода, вы можете проверить RapidAPI (о котором будет рассказано позже), который предлагает такие данные. .
Кроме того, другие альтернативные рыночные данные часто содержат интересные дополнения. Например, Alpha Vantage предоставляет модули, которые рассчитывают для вас различные индикаторы технического анализа — очевидно, вы сэкономите огромные усилия, если захотите построить алгоритм, использующий любой из них! yfinance предоставляет только основы.
Некоторые методы ненадежны . yfinance в основном делает вызовы API к Yahoo Finance для сбора своих данных, но иногда использует парсинг HTML и парсинг таблиц pandas для неофициального сбора информации с веб-сайта Yahoo Finance для некоторых своих методов. Таким образом, функциональность некоторых из его методов находится во власти Yahoo, которая не меняет макет или дизайн некоторых своих страниц. На самом деле, широко известно, что у yfinance уже есть несколько проблем.
Вкратце: парсинг данных работает путем простой загрузки HTML-кода веб-страницы и поиска по всем тегам HTML, чтобы найти нужные элементы страницы.
Например, ниже приведена страница исторических данных Yahoo Finance Apple («AAPL»):
Если метод для извлечения исторических данных HTML, он будет искать различные теги div , class и tr и т. д. для различных идентификаторов, чтобы выбрать данные, которые должны быть возвращены.
Например, идентификатор класса «Py(10px) Pstart(10px)» относится к историческим ценам, заполняющим таблицу. Если бы в этом случае Yahoo Finance изменила идентификатор класса, указывающий на это значение, метод мог бы вернуть совершенно неверные данные или вообще ничего. Опять же, подобная уязвимость распространяется не на все методы yfinance — большинство из них на самом деле делают прямые вызовы API, — но на некоторые из них она влияет.
Это неофициальное решение . Опять же, поскольку yfinance является просто результатом тяжелой работы одного человека и никоим образом не связана с Yahoo Finance, нет никакой гарантии, что в случае поломки он будет поддерживаться.
Как мы уже упоминали, у него было большое обновление для устранения проблем 26 мая 2019 года, в тот же день, когда он был переименован, но это не гарантирует, что проблемы будут исправлены в будущем. Вы уверены, что хотите построить торговый алгоритм на основе данных, которые однажды могут внезапно и без предупреждения оказаться неверными? Уже есть несколько известных проблем с yfinance, о которых мы расскажем позже в этой статье.
Вы можете попасть в черный список/с ограничением скорости. Опять же, поскольку yfinance собирает данные для нескольких своих функций, вы иногда рискуете получить ограничение по скорости или попасть в черный список из-за слишком большого количества попыток очистки.
Это риск, который всегда присутствует при попытке парсить веб-сайты, но когда вы создаете приложения, торгующие реальными деньгами поверх инфраструктуры, которая может делать много запросов данных, соотношение риска и вознаграждения меняется.
Заключение
В целом yfinance невероятно удобен для начинающих. Вы сможете сразу погрузиться в работу и протестировать идеи, не тратя время на изучение сложной документации, и в то же время имея доступ к большому количеству данных!
Тем не менее, риск получить неверные данные или быть заблокированным от получения каких-либо данных при использовании алгоритмов, торгующих реальными деньгами, абсолютно неприемлем.
Мы думаем, что yfinance отлично подходит для прототипирования, или если вы новичок, или просто хотите загрузить кучу исторических данных.
Но если вам нужна полная уверенность в том, что серьезная торговая система будет работать с абсолютной надежностью, мы настоятельно рекомендуем обратиться к официальному и альтернативному поставщику рыночных данных — желательно к тому, который утверждает, что предоставляет данные с низкой задержкой непосредственно с бирж.
Polygon и IEX могут сделать хорошие ставки.
Какие есть альтернативы библиотеке yfinance?
РапидAPI
Из двух альтернатив yfinance, которые мы рассмотрим, RapidAPI является наиболее отличной.
Во-первых, хотя у него все еще есть бесплатный уровень ограниченного использования, вам придется платить за все, что превышает 500 запросов в месяц:
Во-вторых, начать работу с yfinance не так просто, как с yfinance. Вам нужно будет зарегистрировать учетную запись, чтобы получить собственные API-ключи доступа.
Тем не менее, большим плюсом RapidAPI является то, что вы можете использовать его с 15 различными языками, если по какой-то причине Python вам не подходит:
Он также предлагает более широкий спектр данных, чем другие наши варианты, в частности, возможность загрузки рыночных новостей и аналитики, которая фантастически полезна, если вы хотите добавить степень анализа настроений в свою модель!
Принятие мгновенных торговых решений на основе машинного сканирования новостей намного быстрее, чем это когда-либо делал человек, может быть одним из способов (хотя и немного неуверенным) получить торговое преимущество.
Тем не менее, у RapidAPI есть несколько недостатков.
Как вы можете видеть, запросы имеют среднюю задержку 1660 мс, что не так уж и страшно, но альтернативные поставщики данных, такие как polygon.io, предлагают задержки от 200 мс до 1 мс — большая разница.
Больше беспокоит тот факт, что запросы имеют только 98% успешности . Сбой 1 из 50 запросов данных может иметь большое значение, если у вас есть система, торгующая реальными деньгами, особенно если вы совершаете более низкие запросы. Определенно что-то рассмотреть.
Возвращаемые результаты также могут быть в довольно длинных и вложенных JSON-файлах, что делает данные более сложными для подготовки к использованию, чем при использовании yfinance:
Тем не менее, еще одним плюсом RapidAPI является то, что он предлагает огромный набор API для других целей, поэтому ознакомление с тем, как использовать их API для данных Yahoo Finance, может быть легко перенесено на использование другого их API для другого проекта в будущее.
Таким образом, RapidAPI предлагает очень ограниченный уровень бесплатного пользования, но, возможно, при использовании решения, где некоторые люди платят, более вероятно, что любые проблемы со скрейпингом из-за изменений структуры Yahoo Finance будут решены быстрее.
Его также сложнее использовать и с ним сложнее начать работу, но он предоставляет больший диапазон данных, чем наши два других варианта.
yahoo_fin
yahoo_fin — бесплатная библиотека с открытым исходным кодом, похожая на yfinance.
Вы можете найти документацию здесь.
Он предлагает тот же набор данных, что и yfinance, но, в частности, имеет несколько функций, которые генерируют для вас все тикеры для определенных рынков:
- tickers_dow()
- tickers_nasaq()
- tickers_other()
- tickers_sp500()
полезная функция, которой не хватает yfinance.
На самом деле мы сосредоточимся на библиотеке yahoo_fin в разделах с примерами нашей родительской статьи Yahoo Finance API — полное руководство, поэтому мы не будем больше говорить об этом здесь.
Как начать работу с библиотекой yfinance?
Установка
Начать работу с библиотекой yfinance очень просто.
Имеет следующие зависимости:
- pandas >= 0.
24
- numpy >= 1.15
- запросы >= 2.21
- многозадачность >= 0.0.7
Все они входят в стандартную комплектацию при установке Anaconda, но для некоторых их действительно легко установить вручную почему у вас их нет.
После этого все просто:
$ pip install yfinance --upgrade --no-cache-dir
или
$ conda install -c ranaroussi yfinance
для установки yfinance.
Макет библиотеки
Сам макет тоже очень простой, всего три модуля:
- yf.Tickers
- yf.download
- yf.pandas_datareader
- 8 9 00198
Практически все методы находятся в модуле Тикеры .
Модуль загрузки предназначен для быстрой загрузки исторических данных нескольких тикеров одновременно.
и pandas_datareader предназначены для обратной совместимости с устаревшим кодом, который мы проигнорируем как не относящийся к делу, поскольку, если вы читаете это, вы, вероятно, новый пользователь библиотеки!
Как загрузить исторические данные с помощью библиотеки yfinance?
Демо с одним тикером
Во-первых, давайте импортируем yfinance как yf и создадим себе объект тикера для определенного тикера (акции):
импортировать yfinance как yf aapl=yf.Ticker("aapl") аапл
yfinance.Ticker объект
Помните, что теперь мы используем этот объект тикера aapl почти для всего — вызывая для него различные методы.
Чтобы получить исторические данные, мы хотим использовать метод history() , который является самым «сложным» методом в библиотеке yfinance.
На вход принимаются следующие параметры:
- период : период данных для загрузки (используйте параметр периода или используйте начало и конец) Допустимые периоды:
- “ 1д”, “5д”, “1мес”, “3мес”, “6мес”, “1г », «2y», «5y», «10y», «ytd», «max»
- interval : интервал данных (данные 1 м доступны только за последние 7 дней, а интервал данных <1d для последние 60 дней) Допустимые интервалы:
- « 1 мин», «2 мин», «5 мин», «15 мин», «30 мин», «60 мин», «9 мин».0м», «1ч», «1д», «5д», «1нед», «1мес», «3мес»
- начало : Если точка не используется – в формате (гггг-мм-дд) или дата и время.
- конец : Если точка не используется – в формате (гггг-мм-дд) или дата/время.
- препост : Включить в результаты обычные рыночные данные до и после? (По умолчанию
False
) – обычно нет необходимости изменять это значение с False - auto_adjust : автоматически настроить все OHLC (цены открытия/максимума/минимума/закрытия)? (по умолчанию
True
)- просто оставьте это всегда как true и не беспокойтесь об этом - действия : Загрузить дивиденды по акциям и события дробления акций? (По умолчанию
True
)
Это может показаться немного сложным, но в основном вы будете просто изменять период (или начало и конец) и параметры интервала.
Итак, например, чтобы получить 1-минутные исторические данные для Apple между 06.02.2020 и 06.07.2020 (британский формат), мы просто используем объект тикера, который мы создали и запустили:
aapl_historical = aapl.history(start="2020-06-02", end="2020-06-07", interval="1m") aapl_исторический
Это так просто!
Демо с несколькими бегущими строками
Чтобы загрузить исторические данные для нескольких тикеров одновременно, вы можете использовать модуль загрузки .
Он принимает в основном те же аргументы, что и метод history() для объекта тикера, но дополнительно:
- group_by : группировка по столбцу или бегущей строке («столбец»/«бегущая строка», по умолчанию — «столбец»)
- темы : использовать темы для массовой загрузки? (True/False/Integer)
- proxy : URL-адрес прокси-сервера, если вы хотите использовать прокси-сервер для загрузки данных (необязательно, по умолчанию — None)
Apple и Google одновременно мы можем запустить:
data = yf.download("AMZN AAPL GOOG", start="2017-01-01", end="2017-04-30") данные
Обратите внимание, что по умолчанию без указания интервала используются ежедневные данные.
Затем, если мы хотим сгруппировать по тикеру вместо Open/High/Low/Close, мы можем сделать:
data = yf.download("AMZN AAPL GOOG", start="2017-01-01", end="2017-04-30", group_by='тикеры') данные
Как загрузить фундаментальные данные с помощью библиотеки yfinance?
Отношение цены к прибыли
Вы можете получить отношение цены к доходу с помощью метода Ticker.info() .
Ticker.info() возвращает словарь с широким спектром информации о тикере, включая такие сведения, как сводное описание, количество сотрудников, рыночная капитализация, объем, соотношение P/E, дивиденды и т. д. — рекомендуем ознакомиться с ним. себя, так как это занимает много места, чтобы показать, но, короче говоря, если вы не можете найти информацию, которую ищете, с помощью других методов, попробуйте метод info ()!
Чтобы получить точное соотношение цены и прибыли, найдите в словаре слово «forwardPE»:
aapl = yf.Ticker("aapl") aapl.info['forwardPE']
22.799461
Дивиденды
Вы также можете получить годовой дивиденд в % с помощью info():
aapl.info['дивидендрейт']
3.2800000000000002
А если вам нужна разбивка каждой выплаты дивидендов по мере ее возникновения и даты, вы можете использовать Тикер . дивиденды() :
апл.дивиденды
Дата 11 мая 1987 г. 0,00214 10 августа 1987 г. 0,00214 1987-11-17 0,00286 12 февраля 1988 г. 0,00286 1988-05-16 0,00286 ... 2019-05-10 0.77000 2019-08-09 0.77000 2019-11-07 0.77000 07.02.2020 0.77000 08.05.2020 0.82000 Имя: Дивиденды, Длина: 67, dtype: float64
Основные данные с несколькими тикерами одновременно
Мы также можем захотеть получить основные (или другие) данные сразу для нескольких тикеров.
Давайте попробуем это сделать, а затем попробуем сравнить наши тикеры по определенному атрибуту!
Для этого мы можем начать с создания списка тикеров, для которых мы хотим получить данные, и пустого словаря для хранения всех данных.
Нам нужно будет использовать библиотеку pandas для управления фреймами данных:
импортировать панд как pd tickers_list = ["aapl", "goog", "amzn", "BAC", "BA"] # список примеров tickers_data= {} # пустой словарь
Затем мы просматриваем список тикеров, в каждом случае добавляя в наш словарь пару ключей , значений , где ключ — это тикер, а значение — кадр данных, возвращаемый метод info() для этого тикера:
для тикера в tickers_list: ticker_object = yf.Ticker(тикер) #конвертировать вывод информации() из словаря в фрейм данных temp = pd.DataFrame.from_dict(ticker_object.info, orient="index") temp.reset_index (на месте = Истина) temp.columns = ["Атрибут", "Последние"] # добавить (тикер, кадр данных) в основной словарь tickers_data[тикер] = темп. тикеры_данные
Затем мы объединяем этот словарь фреймов данных в один фрейм данных:
comb_data = pd.concat(tickers_data) комбинированные_данные = комбинированные_данные.reset_index() комбинированные_данные
Затем удалите ненужный столбец «level_1» и очистите имена столбцов:
del Combined_data["level_1"] # очистить ненужный столбец Combined_data.columns = ["Ticker", "Attribute", "Recent"] # обновить имена столбцов комбинированные_данные
Отлично, теперь мы знаем, как получить любые данные, которые мы хотим для нескольких тикеров одновременно, в один и тот же фрейм данных!
Но как легко сравнивать по определенному признаку?
Сравнение по определенному атрибуту
На самом деле это довольно просто, давайте попробуем использовать один из атрибутов в info() – fullTimeEmployees count:
сотрудников = комбинированные_данные[комбинированные_данные["Атрибут"]=="fullTimeEmployees"].reset_index() del employee["index"] # очищаем ненужную колонку сотрудников
Итак, теперь у нас есть кадр данных только с подсчетами сотрудников — одна запись на тикер — и теперь мы можем упорядочивать по столбцу «Последние»:
employee_sorted = employee.sort_values («Последние», по возрастанию = Ложь) сотрудники_сортированные
Бум! Очевидно, что это не требуется, если в нашем списке всего 5 тикеров, но это фантастически простой и мощный способ быстрого сравнения по определенному атрибуту, если бы у нас был список тикеров всего рынка!
Вы можете легко использовать этот же метод для сравнения любого атрибута, который вы хотите!
Как загрузить торговые данные с помощью библиотеки yfinance?
Вы можете найти данные для всех трех показателей рыночной капитализации, объема и максимумов и минимумов с помощью метода info().
Рыночная капитализация
Чтобы получить рыночную капитализацию, используйте:
aapl.info["marketCap"]
1525510701056
Том
Чтобы найти текущий том, выполните:
aapl.info["том"]
8021292
Если вам нужен средний объем за последние 24 часа, введите:
aapl.info["среднийобъем"]
42532806
И, наконец, если вам нужен средний объем за последние 10 дней:
aapl.info["averageVolume10days"]
39594100
Взлеты и падения
Помните, что вы можете найти максимумы и минимумы для любого временного интервала:
- " 1м", "2м", "5м", "15м", "30м", "60м", "90м", "1ч", "1д", "5д", "1нед", "1мес" , «3mo»
в течение желаемого периода с помощью метода history() и настройки интервала.
Например, чтобы получить еженедельные максимумы и минимумы для всех существующих исторических данных, используйте:
aapl_historical = aapl.history(период="макс", интервал="1 нед") aapl_исторический
Вау, данные почти за 40 лет!
Просто отфильтруйте кадр данных с помощью:
- aapl_исторический["Высокий"]
- aapl_исторический["Низкий"]
И так далее, чтобы получить отдельные столбцы.
Кроме того, вы можете использовать info() для получения следующей полезной информации о максимуме/минимуме:
- dayHigh
- dayLow
- FiveTwoWeekHigh
- FiveTwoWeekLow
Например:
aapl.info["fiftyTwoWeekHigh"]
354,77
Как загрузить данные опционов с помощью библиотеки yfinance?
Вкратце, опционы — это контракты, дающие трейдеру право, но не обязательство , купить (колл) или продать (пут) базовый актив, который они представляют, по определенной цене в определенную дату или до нее.
Для загрузки данных опционов мы можем использовать option_chain() 9Метод 0004. На вход принимает параметр:
- дата : (ГГГГ-ММ-ДД), срок годности. Если Нет, вернуть все данные опций.
И имеет методы opt.call и opt.puts .
Как узнать даты истечения срока действия?
Чтобы получить различные даты истечения опционов для определенного тикера, это так же просто, как:
аапл.опции
Как получить данные о вызовах?
Чтобы получить данные о звонках, мы можем сделать:
# получить данные вызовов цепочки опционов на конкретную дату экспирации opt = aapl.option_chain (дата = '2020-07-24') опт.вызовы
Как получить данные путов?
Чтобы получить данные о путах, делаем:
опт.путы
Наконец, opts сам по себе возвращает объект тикера, содержащий как вызовы, так и данные, если это вам полезно!
Распространенные ошибки
Как мы уже отмечали в начале этой статьи, yfinance — это неофициальное решение для сбора данных из Yahoo Finance, поэтому оно может быть взломано, если Yahoo Finance изменит какой-либо из его макетов.
К сожалению, частично это уже произошло, и при написании этого руководства были обнаружены следующие проблемы:
- Тикеры , объект нескольких тикеров для одновременного взаимодействия с несколькими тикерами, похоже, не работает. Мы предоставили более ручной обходной путь для этого в разделе «Основные данные с несколькими тикерами одновременно».
- финансовые отчеты , квартальные_финансовые отчеты , баланс_отчет , квартальный_баланс_лист , денежный поток , квартальный_денежный поток , прибыль , квартальный_заработок Тикер методы не работают и возвращают пустые кадры данных.
Это большая проблема, так как во многих случаях нет альтернативного пути к данным в некоторых из этих методов из других методов в yfinance.
Если вы создаете что-то, для чего требуются какие-либо из этих данных, например, балансовые отчеты и отчеты о доходах и движении денежных средств, и при этом вам нужен бесплатный доступ к данным Yahoo Finance, ознакомьтесь с yahoo_fin library в разделе примеров нашего руководства https://algotrading101.com/learn/yahoo-finance-api/, в котором есть рабочие методы для получения всех этих данных!
Заключительные мысли
Как мы только что продемонстрировали, yfinance НЕ является надежной ставкой для создания критической инфраструктуры.
Если вы хотите создавать алгоритмы, торгующие реальными деньгами, мы настоятельно рекомендуем вам использовать официальный источник данных/API, желательно напрямую подключенный к обмену данными и с низкой задержкой. Что-то вроде Polygon.io или IEX может подойти вам больше.
Если вы абсолютно ДОЛЖНЫ использовать данные Yahoo Finance специально, мы рекомендуем, по крайней мере, заплатить за неофициальный API, такой как RapidAPI, где вы делаете хорошую ставку на то, что активная команда разработчиков постоянно поддерживает API. Помните, что у RapidAPI все еще есть бесплатный уровень ограниченного использования!
Тем не менее, yfinance может быть полезно использовать для создания тестовых приложений новичкам, так как его разделы, которые действительно работают, фантастически легко начать и использовать.
Особая сильная сторона yfinance заключается в том, что threads Параметр yf.download позволяет очень быстро загружать историю для нескольких тикеров, если установлено значение True !
Вы можете найти код, использованный в этой статье здесь.
10001268611_02_PN-264521
%PDF-1.6 % 1 0 объект >/OCGs[22 0 R]>>/Страницы 3 0 R/Тип/Каталог>> эндообъект 2 0 объект >поток application/pdf










Высокоэффективный фотокатализатор для разложения газа, извлеченного из почвы под действием видимого света
3 , Шых-Вэй Чен 4 , Жэнь-Цзе Вэй 2 , Шэн-Цзе Ю 2 , Ya-Fen Wang 2
+ Показать информацию об авторах
1 Факультет гражданского строительства, Христианский университет Чунг Юань, Таоюань 32023, Тайвань
2 Факультет экологического проектирования им. 32023, Тайвань
3 Бюро по охране окружающей среды, правительство города Цзяи, Цзяи 60045, Тайвань
4 Администрация по охране окружающей среды Исполнительный юань, город Тайбэй 10042, Тайвань
Получено:
6 октября 2019 г.
Пересмотрено:
27 октября 2019 г.
Принято:
9 ноября 2019 г.
Скачать Цитата:
||https://doi.org/10.4209/aaqr.2019.10.0499
- Скачать: PDF
Цитировать эту статью:
Фенелон, Э. , Хуссейн, А., Ян, Т.Х., Чанг, Г.М., Чен, С.В., Вэй, Р.Дж., Ю, С.Дж. и Ван, Ю.Ф. (2019). Модуль высокого фотокатализатора по деградации извлеченного газа из почвы под видимым светом. Аэрозоль Air Qual. Рез. 19: 2865-2878. https://doi.org/10.4209/aaqr.2019.10.0499
- Коммерческий фотокаталитический модуль потенциально может обрабатывать добычу почвенного газа.
- Коммерческий фотокаталитический модуль очень стабилен в течение длительного времени эксперимента.
- Оптимальная влажность окружающей среды для всего модуля составляла 4 %.
РЕЗЮМЕ
Фотокаталитическое окисление (ФКО) является многообещающей технологией очистки воздуха благодаря низким эксплуатационным расходам, потенциально длительному сроку службы и простоте обслуживания. С целью установления высокой эффективности удаления твердофазной экстракции (SVE) в данном исследовании использовали активированный уголь для адсорбции SVE и диоксид титана, легированный лантаном, в качестве фотокатализатора. Фотокатализатор наносили на ткань из стекловолокна и наносили на фотокаталитический модуль, а затем проводили разложение толуола с концентрацией 15 частей на миллион. Адсорбционный модуль использовался для устранения остаточных загрязнений. Рентгеновская дифракция (XRD), сканирующая электронная микроскопия (SEM) и спектроскопия диффузного отражения (DRS) показали, что синтез катализатора был успешно подготовлен, и фотокаталитический коммерческий модуль был разработан из четырех фотокаталитических тканей из стекловолокна под видимым светом. Адсорбционный модуль был выполнен из пяти слоев активированного угля, каждый слой содержал 30 г наборов активированного угля в фотокаталитическом модуле. Когда относительная влажность окружающей среды составляет менее 4%, эффективность удаления превышает 9%.5% в течение 1 часа. Экспериментальные результаты показывают, что фотокаталитический коммерческий модуль собран с расходом менее 3 литров в минуту, а эффективность удаления может быть стабильной в течение более 72 часов.
Ключевые слова:
фотокатализ; Добыча почвенного газа; Диоксид титана; Толуол; Видимый свет.
Большое значение имеет качество воздуха в помещении, особенно в общественных местах, таких как школы, офисы, торговые центры. в основном из-за герметичности зданий для энергосбережения и в некоторых случаях из-за плохой вентиляции. Однако в большинстве систем не учитывается концентрация загрязняющих веществ в помещении, которая может колебаться во времени (Li and Biswas, 2017).
Фотокатализатор — это метод, использующий световую энергию с потенциальным уровнем для обеспечения энергии для химической реакции (Feng et al. , 2019). В последние годы, в связи с развитием науки и техники, состоянием уровня жизни людей, в основном у людей есть собственные автомобили; люди используют все больше и больше топлива в транспорте. Подземные нефтяные резервуары и большие резервуары для хранения нефтехимических продуктов на бытовых заправочных станциях устарели из-за ослабления трубопроводов или оседания грунта, что приводит к утечке хранящегося в резервуаре материала и приводит к загрязнению почвы и грунтовых вод. Некоторые предварительные исследования показали, что наиболее распространенными загрязняющими веществами в почве и грунтовых водах, загрязненных нефтью, являются общее количество нефтяных углеводородов (TPH), бензол, толуол, ксилолы, этилбензол, фенол (Irie и др. , 2003) и других летучих органических углеродов (ЛОС), которые вызывают повреждение центральной нервной системы (Lerner et al. , 2012; Hua et al. , 2018; Juuti et al. , 2019) человеческого организма а также ухудшение состояния окружающей среды. Кроме того, источниками ЛОС являются промышленность, коммерческие объекты, государственные учреждения, жилые домохозяйства, добыча и переработка ископаемого топлива и сжигание биомассы (Ou-Yang et al. , 2017; Widiana et al. , 2017; Алвим и др. , 2018; Ху и др. , 2018). Тем не менее комплексная глобальная оценка характера и концентрации выбросов ЛОС, связанных с операциями по переработке, никогда не проводилась (Guerra et al.
, 2017). ЛОС — это всеобъемлющий термин для многочисленных органических соединений с достаточно низкой температурой кипения и, следовательно, высокой летучестью (Ishikawa et al. , 2018; Wang et al. , 2018). Из-за сложности и уникальности мебельной промышленности, а также различий в технологиях контроля выбросов между предприятиями ни один коэффициент выбросов не может эффективно измерять выбросы ЛОС (Cheng и др. , 2018).
Для удаления летучих органических соединений (ЛОС) из почвы или грунтовых вод общепринятой бытовой технологией очистки является удаление твердых паров (SVE) (Yu et al. , 2019). Принцип заключается в непрерывном использовании вакуумной откачки через насосную скважину для создания отрицательного давления из загрязненной почвы (Ратфельдер и др. , 1995), вызываемого загрязняющими веществами, хранящимися в почве, и переноса загрязнителей из твердой или жидкой фазы в газовая фаза, загрязняющие вещества могут быть извлечены в направлении насосной скважины с различным давлением для извлечения газа в почве. Наконец, газ в почве можно удалить и сбросить после обработки.
В целях соблюдения правил, большая часть внутреннего применения используется под башнями с активированным углем для обработки загрязняющих веществ. Таким образом, это исследование было предназначено для разработки коммерческого модуля, который может быть напрямую подключен к отработке метода SVE с использованием диоксида титана, легированного лантаном, и небольшого количества активированного угля.
Хотя диоксид титана обладает высокой фотокаталитической активностью, однако он может вступать в реакцию только в ультрафиолетовом свете. Многие ученые стремятся улучшить фотокаталитическую активность диоксида титана в видимом свете, чтобы решить проблему загрязнения окружающей среды для экономии энергии и повышения эффективности. Результаты видны сквозь металл (Eshaghi and Moradi, 2018; Gao и др. , 2019; Матос и др. , 2019; Цю и др. , 2019) неметалл (Hoseini et al. , 2017; Barmeh et al. , 2018; Ho et al. , 2019; Shafei and Sheibani, 2019; Tbessi 909 3 , 209 9000.9000. и редкоземельные элементы (Chiou and Juan, 2007; Yajun et al. , 2011; Shao et al. , 2018; Thiruppathi et al. , 2018; Singh et al. , 2018) peded с титаном диоксид может эффективно улучшить эффективность разложения диоксида титана на загрязнители.
В этом исследовании элемент лантана был подмешан к коммерческому диоксиду титана и приготовлен золь-гель методом покрытия из диоксида титана, легированного лантаном, для уменьшения ширины запрещенной зоны катализатора и улучшения фотокаталитической активности материала в видимом свете. Кроме того, TiO 2 , легированный La, может способствовать разделению электронов и дырок, поскольку La 3+ может оказывать синергетический эффект и захватывать фотоиндуцированные электроны (Huang et al. , 2017). Кроме того, фотокатализатор был нанесен на ткань из стекловолокна и нанесен на фотокаталитический модуль. Наконец, процесс адсорбции остаточного выхлопного газа осуществлялся через адсорбционный модуль. В этой статье фотокаталитический коммерческий модуль был собран из адсорбционного модуля и фотокаталитического модуля, которые используются для уменьшения содержания толуола как опасного газа, присутствующего в почве, посредством процесса извлечения паров почвы (SVE) для обработки почвенных газов. Наконец, обработка производительности фотокаталитического коммерческого модуля была протестирована в реальных условиях.
ЭКСПЕРИМЕНТАЛЬНЫЙ
Материалы
Следующие химические вещества, использованные в этом исследовании, были аналитической чистоты (Huang et al. , 2017). Его не нужно очищать, и его можно использовать напрямую, все разведения были обработаны деионизированной водой, приготовленной Lab Water Purification Systems (ELGA Lab Water, Великобритания). Используются следующие химикаты: тетрабутилтитанат (ТБОТ) от Alfa Aesar, безводный этанол из Японии (990,5%), азотная кислота от Panreac AppliChem, нитрат лантана от FERAK, стандартный газ толуол от Ming yang Special Gas Company.
Подготовка ткани из стекловолокна, покрытой диоксидом титана, легированным лантаном (La-TiO 2 )
Метод получения La-TiO 2 относится к методу (Hoseini et al. , 2017). Сначала тщательно перемешивали 50 мл этанола и 10 мл тетрабутилтитаната при 400 об/мин в течение 10 минут. Это была реакция предшественника; Затем 5M 4,5 мл раствора азотной кислоты медленно добавляли к 4,5 мл деионизированной воды и растворяли в 1,864 г лантана (1% по массе). Это решение было реакцией катализатора; реакционный катализатор медленно добавляли по каплям к реакционному предшественнику и перемешивали при 800 об/мин в течение 10 минут. Кроме того, парафиновую пленку герметизировали, скорость доводили до 400 об/мин и перемешивали в течение 2 часов. После этого раствор геля помещали в печь при 60°С на 12 часов, затем гель удаляли и помещали при комнатной температуре. Для приготовления ткани из стекловолокна с покрытием золь-гель заливали в сосуд, а затем ткань из стекловолокна погружали в раствор для равномерного покрытия диоксидом титана, легированным лантаном. После сушки ее помещали в печь при 400°С на 2 часа для получения фотокаталитической ткани из стекловолокна.
Разработка фотокаталитического модуля
В этом исследовании была собрана конструкция фотокаталитического модуля, показанная на рис. 1, модуль представлял собой цилиндрический бак-реактор с внутренним диаметром 19 см и внутренней емкостью 6785,84 мл. Внутри модуля находятся 5 патронов для ламп, регулируемых в разных положениях; спереди, сзади, слева, справа и посередине модуля соответственно. В окружающей части средней лампы имелся трубчатый каркас, реакционный с камерой, куда отводился загрязнённый газ. В камере также размещена для реакции фотокаталитическая ткань из стекловолокна. Средний объем покрытия каждой ткани из стекловолокна составляет 80,62 мл легированного латанием золя диоксида титана. В этом исследовании в тесте модуля использовалась различная влажность окружающей среды и фотокаталитическое стекловолокно.
Рис. 1. Фотокаталитический модуль.
Разработка модуля адсорбции
Спецификация адсорбционного модуля на рис. 2, общая спецификация адсорбционного модуля представляет собой акриловый модуль длиной 22 см, шириной 21 см и высотой 23,5 см. В конце нижней стороны устроена подставка длиной 2 см, шириной 2 см и высотой 10 см, а в верхней части модуля диаметр входного отверстия для воздуха составляет 1/4 дюйма. Внизу имеется вентиляционное отверстие диаметром 1/4 дюйма, а над и под модулем расположены расходящиеся каналы для облегчения быстрой диффузии загрязненного газа. Верхняя часть была снабжена ректификационной пластиной, а внутренняя спецификация ректификационной пластины составляла 14 × 12 отверстий с радиусом 0,2 см, и во избежание утечки внутренних загрязнений во время использования модуля каждый внутренний компонент снабжен с 8 отверстиями под винты (М3) и на внутреннюю поверхность нанесена смола.
Рис. 2. Конструкция корпуса адсорбционного модуля .
Технические характеристики внутреннего носителя адсорбционного модуля ректификационной пластины показаны на Рис. 3. Общая спецификация носителя представляет собой акриловый модуль длиной 20 см, шириной 16,5 см и высотой 3 см, а также ректификационным модулем. плита расположена внизу. Внутренняя спецификация пластины выпрямителя — 1412 отверстий радиусом 0,2 см.
В этом исследовании были проверены оптимальные параметры адсорбционного модуля путем тестирования количества слоев в носителе, количества активированного угля и потока загрязняющих веществ. Каждый эксперимент был протестирован путем равномерного распределения активированного угля на носителе.
Рис. 3. Конструкция носителя адсорбционного модуля.
Поле для экспериментального режима
Испытание использованного оборудования показано на Рис. 4. Трубопровод, используемый в системе, был присоединен к тефлоновой трубке диаметром 1/4. Сначала стандартный газ толуол в баллоне обрабатывался генераторами газа с нулевым значением при высокой температуре и через два поплавковых расходомера. Затем смешанный газ использовали для регулирования относительной влажности через другой поплавковый расходомер. Загрязняющие вещества тестируются с помощью модулей предварительного тестирования. Наконец, фотоионизационный детектор (ФИД) использовался для расчета скорости удаления загрязняющих веществ.
Рис. 4. Лабораторная модель поля.
РЕЗУЛЬТАТЫ И ОБСУЖДЕНИЕ
Результат SEM
Результат СЭМ показан на рис. 5(а) и 5(б) фотокатализатор, нанесенный на стекловолокно. Показано, что поверхность катализатора гладкая и имеет малое количество примесей. Было показано, что поверхность материала была покрыта катализатором, но катализатор имел крупный размер частиц, неравномерную дисперсию и агломерацию, а связывание было невысоким, а нагрузка была небольшой на рис. 5(c) и 5(d) фотокатализатор, покрытый активированным углем. В результате было доказано, что присутствие всего материала в композите и четкое признание того, что активированный уголь, нанесенный на фотокатализатор, показал наилучшую площадь поверхности, больший размер пор, более гладкую и более правильную форму. Это может быть объяснением того, почему фотокаталитические модули очень хорошо работают при фотодеградации толуола.
Рис. 5. (а, б) Фотокатализатор, нанесенный на стекловолокно и (в, г) Фотокатализатор, нанесенный на активированный уголь.
Результаты рентгенофазового анализа
На Рис. 6 показан рентгеноструктурный анализ диоксида титана, легированного лантаном. Справочный номер диоксида титана JCPDS Card No. 21–1272, которые видны под углами 2θ (27.0, 35.6, 40.8, 54.0, 53.9, 56.1 и 61.0, соответствующие (110), (101), (200), (111), грани кристалла (210 ), (211), (220), (002) и (310), а также номер карты JCPDS для рутила 65–019. 1, и видно, что кристаллическая форма легированного диоксида титана претерпевает множество изменений. Кроме того, 1% диоксида титана, легированного лантаном, может показать, что все пики его кристаллической формы основаны на чистом диоксиде титана, из чего можно сделать вывод, что кристаллическая форма анатаза все еще была неповрежденной, до количества легирования 3% или более. показывает, что кристаллическая форма титана была разрушена. Кристаллическая форма анатаза диоксида титана также анализируется с помощью Search-Match программного обеспечения для XRD-анализа на фиг. 4.5.1-2 и по сравнению с pdf № 84–1286 библиотеки XRD. Можно видеть, что нелегированная кристаллическая форма диоксида титана является относительно полной, и все пики различных кристаллических форм анатаза в библиотеке являются обратной связью с кристаллической формой анатаза в этом исследовании.
Рис. 6. Рентгенограмма диоксида титана, легированного лантаном.
Можно сделать вывод, что экспериментальный метод позволяет эффективно производить диоксид титана, который можно использовать, а диоксид титана, легированный 1% церием, все еще может воспроизводить пик кристаллической формы анатаза.
Результаты анализа DRS
Ультрафиолетово-видимая спектроскопия диффузного отражения и поглощения анализ различных количеств легирования диоксида титана, ультрафиолетовый свет-видимый интервал электромагнитных волн непрерывного спектра в качестве источника света для освещения образца, для изучения относительной силы молекулы материала для спектрального поглощения и путем спектр наблюдения для анализа диапазона поглощения света образцом и качественного анализа материала.
( αHV ) 1/N = A ( HV - E G ) (1)
Два способа получить ширину запрещенной зоны полупроводника из спектра DRS UV-Vis: метод перехвата; другой, который появляется чаще, — это метод Tauc polt из метода Tauc polt, в основном основанный на Tauc, Davis and Mott et al. Предлагаемая формула, широко известная как график Тауца. Единицы формулы следующие: α — значение поглощения, h — постоянная Планка, v — частота, A — постоянная, Eg — ширина запрещенной зоны полупроводника. Показатель n напрямую связан с типом полупроводника: прямозонный полупроводник: n = 1/2; полупроводник с непрямой запрещенной зоной: n = 2. После построения графика (αhv)1/n для hv можно получить карту измерений ширины запрещенной зоны, а затем оценить изменение ширины запрещенной зоны.
Согласно литературным данным, фотокатализатор, легированный эрбием, является полупроводником с непрямой запрещенной зоной, поэтому формула (αhv) 1/2 = A(hv – E g ), а данные спектра поглощения диффузного отражения в ультрафиолетовой и видимой областях используется в качестве эталона, а затем рассчитывается конверсия. Для данных о ширине запрещенной зоны и нарисуйте два графика в виде графика, чтобы наблюдать за изменением способности поглощения света.
На рис. 7 показан анализ поглощения диффузного отражения в УФ-видимом диапазоне для различных количеств легирования диоксида титана. Легирование диоксида титана вызывает изменение диапазона поглощения образца. Огромное поглощение может быть связано с энергией, необходимой для возбуждения валентной зоны диоксида титана в зону проводимости, и было высказано предположение, что нелегированный диоксид титана находится в ультрафиолетовом диапазоне, поэтому световой интервал имеет хорошие характеристики поглощения.
Рис. 7. Анализ поглощения диффузного отражения в УФ-видимом диапазоне различных количеств легирующих добавок на диоксиде титана.
На Рис. 8 можно понять ширину полосы различных количеств легирования диоксида титана. Вспомогательное наблюдение за изменением ширины полосы, ширина полосы нелегированного диоксида титана 3,06 эВ; однако, 1 мас.% La-TiO 2 ширина полосы 2,57 эВ, 3 мас.% La-TiO 2 ширина полосы 2,3 эВ, 5 мас.% La-TiO 2 имеет ширину полосы 1,85 эВ. В соответствии с изменением ширины полосы чем меньше ширина запрещенной зоны, тем выше степень красного смещения, так что можно получить легированный фотокатализатор. Он способен изменять свою светопоглощающую способность и вызывать эффект красного смещения. Его легирование может уменьшить размер наночастиц образца, а фотокаталитическая реакция может быть направлена из исходной области, поглощающей ультрафиолет, в область поглощения, видимую.
Рис. 8. Различное количество легирования ширины полосы диоксида титана.
Тест на влажность фотокатализатора
Влияние различной влажности окружающей среды на эффективность удаления толуола с 1 мас. % La-TiO 2 показан на рис. 9. Экспериментальные результаты подтвердили, что повышение влажности (Кавар и Андерхилл, 1999) влияет на эффективность разложения толуола с использованием диоксида титана, легированного лантаном. Когда влажность окружающей среды превышает 4 % относительной влажности, максимальная мгновенная эффективность разложения достигает 24 %, если влажность окружающей среды составляет 60 % относительной влажности и 80 % относительной влажности, максимальная мгновенная эффективность разложения достигает 23,21 % и 18,18 % соответственно. Это явление происходит из-за того, что фотокатализатор облучали светом для получения энергии, превышающей ширину запрещенной зоны. Индуцированные электроны на фотокатализаторе вызывают переход электронов из валентной зоны в зону проводимости. Супероксидные радикалы ( ● O 2 – ) и гидроксильные радикалы ( ● OH) образуются под действием генерируемых электронов и дырок, перенесенных на поверхность фотокатализатора. Следовательно, повышение влажности окружающей среды может также увеличить образование супероксидных радикалов ( ● O 2 – ) и гидроксильных радикалов ( ● OH). Добавление определенной доли влажности окружающей среды к загрязняющим веществам повышало эффективность удаления фотокатализатора загрязняющих веществ. Однако при высокой влажности окружающей среды большое количество молекул воды прикрепляется к поверхности фотокатализатора. Вероятность контакта между фотокатализатором и загрязняющим веществом меньше, в результате чего обычно снижается эффективность удаления (Тируппати и др. , 2018).
Рис. 9. Влияние различной влажности окружающей среды на удаление толуола на 1 мас. % La-TiO 2 .
Тестирование фотокаталитического модуля
Сравнение эффективности удаления толуола в фотокаталитическом модуле с использованием различного количества волокон фотокаталитического стекла в видимом свете показано на рис. 10. Экспериментальный результат показывает, что фотокаталитический модуль состоял из 4 кусков ткани из фотокаталитического стекловолокна (1 ,2,3,4) соответственно эффективность удаления 4-го куска достигала 66,9%, что является лучшей эффективностью удаления по сравнению с другими частями.
Рис. 10. Влияние количества комбинаций фотокаталитического стекловолокна на эффективность удаления толуола.
Конструкция адсорбционного модуля
Чтобы избежать явления короткого потока внутри адсорбционного модуля, используйте программное обеспечение ANSYS для анализа методом конечных элементов для анализа поля внутреннего потока модуля. Настройка аналитической модели в этом исследовании представляла собой модель внутренней жидкости адсорбционного модуля 1/4, граничные условия модели для скорости притока, скорости оттока, были установлены симметричные все поверхности и неизменяемые стенки, скорость потока всасываемого воздуха была рассчитана следующим образом. Формула параметров жидкости использует параметры газа толуола из встроенной базы данных ANSYS.
Результаты анализа поля потока адсорбционного модуля показаны на Рис. 11. Результаты анализа показали, что из-за конструкции выпрямляющей пластины внутри адсорбционного модуля, внутри твердого адсорбционного модуля практически отсутствует явление короткого потока. После поступления загрязненного газа в адсорбционный модуль он сначала ректифицируется через первый слой ректификационной плиты и закрепляется на корпусе модуля. Таким образом, загрязняющий газ проходит через каждое маленькое отверстие в ректификационной пластине соответственно, и ректификационная пластина одновременно рассеивает загрязняющие вещества. Ректифицирующая пластина может одновременно рассеивать скорость потока всасываемого загрязненного газа, а когда скорость потока жидкости была низкой, возникновение короткого потока также уменьшалось. Эта конструкция эффективно уменьшила явление короткого потока, которое может возникнуть внутри адсорбционного модуля 9. 0009
Рис. 11. Анализ внутренней жидкости адсорбционного модуля.
Влияние количества носителей на концентрацию разложения толуола
При анализе влияния различного количества носителей активированный уголь помещали в среднем 60 г на различное количество носителей и распределяли его по различному количеству носителей, дополнительно проверяя, влияет ли количество носителей на эффективность удаления адсорбции. модуль. Экспериментальные результаты показаны на Фиг.12, лучший эффект от несущего слоя был у 3-го слоя носителя, и где в каждом слое носителя используется количество активированного угля 20 г/слой. Адсорбционный эффект на толуоле достигал около 92,4%. Наименьший адсорбционный эффект обнаружен при использовании 1-го слоя, который имеет адсорбционное действие по толуолу 84,7%, хотя его можно покрыть активированным углем, используя только один слой носителя. Однако экспериментальные результаты показывают, что большое количество активированного угля может вызвать плохую внутреннюю ректификацию. Таким образом, общий эффект адсорбции был низким, эффект адсорбции был снижен, а загрязняющее вещество не полностью контактировало с активированным углем при использовании небольшого количества активированного угля. Кроме того, при использовании большего количества слоев количество активированного угля становится выше, фотокаталитическая активность модулей влияла, когда активированный уголь был выше оптимального. Однако оптимальное количество слоев равно 2 или 3, поэтому эффективность удаления снижается при увеличении количества слоев более чем на 3, поскольку количество активированного угля увеличивается при увеличении количества слоев.
Рис. 12. Влияние количества носителей на концентрацию разложения толуола.
Эффект количества активированного угля в тесте однослойного носителя
Как показывают экспериментальные результаты на Рис. 13, размещение активированного угля разного веса на 1-м слое носителя для подтверждения того, было ли добавлено количество активированного угля для эффективности удаления адсорбционного модуля. Наилучшая скорость деградации обнаружена при 30 г активированного угля в однослойном носителе, эффект удаления толуола достигается при 92,6%, в то время как другие скорости разложения были обнаружены при 60 г, 50 г, 40 г и 20 г активированного угля в однослойном носителе, эффект удаления толуола достигался 84,7%, 85,1%, 90,2% и 85,2% соответственно. По этому результату был сделан вывод, что 60 г активированного угля в однослойном носителе имеют самый низкий показатель эффективности из-за избыточного количества активированного угля на ректификационной пластине по сравнению с другим количеством активированного угля. Следовательно, соответствующее количество активированного угля может только повысить эффективность удаления адсорбционного модуля.
Рис. 13. Различное количество активированного угля в тесте однослойного носителя.
Влияние различной скорости потока загрязнителя
На скорость потока загрязнителя влияло удаление всего модуля адсорбции в единицу времени. Поэтому скорость потока является важным параметром в адсорбционном модуле. Путем тестирования потока загрязняющих веществ определяется максимальное количество загрязняющих веществ, которое может быть удалено адсорбционным модулем в единицу времени. Сравнение эффективности удаления адсорбционного модуля при различных расходах загрязняющих веществ показано на рис. 14. Согласно экспериментальным результатам, адсорбционный модуль показывает, что эффективность удаления была незначительной при расходах 1 л мин – 1 , мин. 2 л – 1 и мин. 3 л – 1 . Эффект удаления был достигнут до 92,6%, 93,3% и 93,5% для 1 л мин – 1 , 2 л мин – 1 и 3 л мин – 1 соответственно. Таким образом, после общей оценки модуль адсорбции использует скорость потока 3 л мин – 1 в качестве наилучшего параметра.
Рис. 14. Влияние различных расходов загрязняющих веществ на эффективность удаления адсорбционного модуля.
Тестирование фотокаталитического коммерческого модуля
Механизм фотокаталитической реакции облучали видимым светом. Для получения большей энергии, чем ширина полосы; тем самым электроны фотокатализатора перемещались из валентной зоны в зону проводимости. Супероксидные радикалы ● O 2 – и гидроксильные радикалы ● OH генерируются под действием сгенерированных электронов и дырок, переносимых на поверхность фотокатализатора. Следовательно, образование супероксидных радикалов ● O 2 – и гидроксильные радикалы ● OH увеличивались при увеличении влажности окружающей среды. Таким образом, влажность является важным параметром фотокаталитических реакций. Однако влажность окружающей среды снижала адсорбционную способность активированного угля (Barmeh et al. , 2018), поскольку активированный уголь не только адсорбирует загрязняющие вещества, но и молекулы воды также адсорбируются. Как только молекулы воды конденсируются на поверхности активированного угля, скорость адсорбции снижается. Фотокаталитический коммерческий модуль состоит из фотокаталитического модуля и адсорбционного модуля, поэтому стоит изучить влияние влажности окружающей среды на его параметры.
Скорость удаления толуола из фотокаталитических коммерческих модулей при различной влажности
Результаты испытаний фотокаталитического коммерческого модуля при различной влажности окружающей среды представлены на рис. 15. Экспериментальные результаты подтвердили, что фотокаталитический коммерческий модуль демонстрирует наилучшую эффективность удаления выше 95% при относительной влажности окружающей среды ниже 4%. концентрация толуола внутри фотокаталитического коммерческого модуля также была низкой и не определялась фотоионизационным детектором (ФИД) через 58 минут при влажности окружающей среды ниже 4%. Эффективность удаления фотокаталитического коммерческого модуля достигла более 90% при влажности окружающей среды ниже 10% относительной влажности и 77,12% при влажности окружающей среды 60% относительной влажности соответственно.
Рис. 15. Скорость удаления толуола из фотокаталитических коммерческих модулей при различной влажности.
Влияние различной скорости потока загрязнителя в фотокаталитических коммерческих модулях
Параметр скорости потока на входе контролирует время контакта загрязняющих веществ, фотокатализатора и активированного угля. Чем выше скорость потока, тем больше загрязняющих веществ может быть переработано в единицу времени. Скорость потока загрязняющего вещества является важнейшим параметром в фотокаталитическом коммерческом модуле. Поэтому в этом исследовании проверялась эффективность удаления толуола из фотокаталитических коммерческих модулей при различных концентрациях загрязнителя. Влияние фотокаталитических коммерческих модулей на эффективность разложения толуола при различных скоростях потока показано на Рис. 16. Экспериментальные результаты показывают, что фотокаталитический коммерческий модуль собирается при скорости потока менее 3 литров в минуту. У лучшего для фотокаталитического коммерческого модуля эффективность удаления толуола достигалась выше 95%. В дальнейшем расход загрязняющего вещества поддерживали, используя 3 л мин – 1 для дальнейших экспериментов.
Рис. 16. Сравнение эффективности удаления загрязнений различной скорости потока в фотокаталитических коммерческих модулях.
Испытание фотокаталитических коммерческих модулей длительного действия
Долгосрочные испытания показали, что фотокаталитические коммерческие модули могут быть практически применены для восстановления почвенных паров (SVE) в будущем. Продолжительность этого экспериментального испытания составила 3 дня. Экспериментальный результат показал, что фотокаталитический коммерческий модуль обладал хорошей устойчивостью к разложению загрязняющих веществ в течение длительного времени в будущем; вероятность применения фотокаталитических коммерческих модулей в оборудовании для восстановления SVE может быть значительно повышена.
Результаты длительных испытаний фотокаталитического коммерческого модуля представлены на рис. 17, результаты экспериментов показали, что фотокаталитический коммерческий модуль может удалять около 90% загрязняющих веществ в течение 22 мин. На 58-й минуте концентрация внутренних загрязняющих веществ в модуле была ниже 5%, и, наконец, на 59-й минуте концентрация толуола полностью ухудшилась. Внутренняя концентрация толуола в модуле была ниже предела обнаружения фотоионизационного детектора (ФИД) и сохранялась до конца эксперимента. Благодаря этому эксперименту стало известно, что собранный фотокаталитический коммерческий модуль может удалять загрязняющие вещества в течение длительного времени эксперимента. Также была проверена возможность применения модуля к реальному сайту.
Рис. 17. Испытание фотокаталитических коммерческих модулей длительного действия.
Фотокаталитический коммерческий модуль Испытание на месте
Чтобы проверить, был ли собран фотокаталитический коммерческий модуль в этом исследовании, его можно практически применить к оборудованию для восстановления паров почвы (SVE). Фактические испытания проводились на заправочной станции на севере Тайваня. Результаты испытаний фотокаталитического коммерческого модуля на фактическом участке показаны на Рис. 18. Экспериментальные результаты показали, что удаление загрязняющих веществ внутри фотокаталитического модуля было ниже предела прибора фотоионизационного детектора (ФИД) во время первого 15 минут эксперимента. Таким образом, он может быть известен как фотокаталитический коммерческий модуль, установленный научно-исследовательским институтом, который может эффективно и быстро удалять загрязняющие вещества в реальном поле загрязнения.
Рис. 18. Фотокаталитический коммерческий модуль Испытание на месте.
Эксперимент на реальном сайте
Модуль предварительного тестирования газообразного толуола на первом этапе был пропущен через фотоионизационный детектор (ФИД) для расчета начальной концентрации газообразного толуола, которая после расчета концентрации на объекте составила 30 частей на миллион. На этапе 2 и коммерческий фотокаталитический модуль вводили в газообразный толуол. В этом процессе газообразный толуол был соединен с фотокаталитическим модулем, затем прошел через адсорбционный модуль, а затем газ из точки выпуска был соединен с фотоионизационным детектором (ФИД) для расчета общего разложения газообразного толуола.
После прохождения газообразного толуола через фотокаталитический коммерческий модуль он был подключен к ФИД. Реальное показано на Рис. 19, в первые 2 минуты концентрация газообразного толуола постепенно снижалась, через 2 минуты разложение достигло 100% и остается таким же до 30 минут.
Рис. 19. Эксперимент на реальной площадке.
Уравнение реакции фотокаталитического механизма деградации
Механизм разложения толуола показан на Рис. 20. Посредством которого La-TiO 2 под видимым светом образовывал гидроксильные и супероксидные радикалы, описывается следующими реакциями:
La-TiO 2 → e + + h +
e – + O 2 → ● O 2 –
h + + H 2 O → H + + ● OH
2h + + 2H 2 O → 2H + + H 2 O 2
H 2 O 2 → 2 ● OH
36 ● 9174 OH + C OH
36 ● 9174 OH + C OH
36 ● 9174 OH + C OH
36 ● 9174 OH + C OH
36 ● 9174 OH + C OH
36 . + 22ч 2 О
Рис. 20. Механизм фотокаталитического разложения.
Удаление толуола из предварительных исследований Исследователи сравнили с нашим исследованием
Большая часть удаления толуола у предварительных исследователей была реализована под воздействием УФ-излучения, поскольку УФ-свет показал лучшие результаты, чем видимый свет. но УФ-метод требует больше энергии и также более опасен для человека, однако в нашем исследовании мы использовали видимый свет с низкой энергией и высокой эффективностью удаления, кроме того, видимый свет является более легким источником света, доступным для нас, поэтому те Сравнение показало в Таблице 1 , что наш метод можно было использовать везде для восстановления газообразного толуола.
ЗАКЛЮЧЕНИЕ
В этом исследовании был подготовлен фотокаталитический коммерческий модуль, состоящий из фотокаталитического модуля с адсорбционным модулем и фотокаталитическим методом под видимым светом для деградации извлечения паров почвы (SVE), сравните и выберите лучшие параметры фотокаталитического коммерческого модуля, регулируя различные параметры . Рентгеновская дифракция (XRD), сканирующая электронная микроскопия (SEM) и спектроскопия диффузного отражения (DRS) показали, что синтез катализатора прошел успешно. После завершения использования оптимальных параметров фотокаталитического коммерческого модуля с этим параметром было проведено испытание на месте фактического загрязнения. Результаты испытаний показали, что наилучшие параметры фотокаталитического коммерческого модуля расположены из 4 отрезков фотокаталитического стекловолокна в фотокаталитический модуль. В адсорбционном модуле использовалось 5 слоев носителя и 30 г активированного угля в каждом носителе, а оптимальная влажность окружающей среды всего модуля составляла <4% относительной влажности. Используя вышеуказанные параметры, можно поддерживать эффективность удаления газообразного толуола более чем в 9 раз.5% в течение 1 часа, а эффективность удаления может оставаться стабильной более 72 часов. Таким образом, по результатам различных экспериментов стало известно, что фотокаталитический коммерческий модуль может улучшить оборудование для очистки выхлопных газов и существующего метода извлечения почвенного газа.