Python и ООП создание петрофизической модели часть 1
Vložit
- čas přidán 6. 09. 2024
- Это видео продолжает серию видео-записок по Python с обзорами практических приёмов программирования.
В этой видео-заметке начинаю обзор возможностей ООП на Python при создании петрофизической модели, а именно разбираю приемы программирования с использованием классов. Основной темой этой серии видео, которая, как планируется, будет состоять из четырех видеозаметок является петрофизические палетки НК-ГГКп и их применение. Для подробного разбора этой темы в первом видео вначале разберу зачем нужны палетки НК-ГГКп, и расскажу как создать простую плотностную модель пористой среды, затем на практике разберу как смоделировать пористость в Python. За основу возьмём квант (единицу) создадим его с помощью объекта, заранее задав ему базовые параметры и свойства, а затем наполним его измеренными физическими свойствами.
Подробнее c этими и дополнительными материалами можно ознакомится на Портале: PyScientist pyscientist.uco...
Если у Вас есть какие либо вопросы по видео, либо по работе исходного кода, предложения по сотрудничеству буду рад с Вами взаимодействовать, пожалуйста обращайтесь на e-mail: sergei-dmitriev@mail.ru, либо пишите в комментарии к видео.
Ссылки на предыдущие видео по теме:
Видео 1: Python настройка рабочего пространства, использование PyCharm
• Python и PyCharm(IDE) ...
Видео 2: Python функции
• Python функции tutoria...
Видео 3: Python классы
• Python и классы на при...
Видео 4: Графический интерфейс Qt для Python, или PyQt
• Python и Qt библиотека...
Видео 5: Python компиляция программ, cx_Freeze и другие компиляторы
• Python exe tutorial ко...
Видео 6.1: Библиотека Matplotlib создание графиков для анализа данных
• Python Matplotlib граф...
Видео 6.2: Библиотека matplotlib и Qt встраивание графиков в графический интерфейс Qt
• Python и Matplotlib py...
Видео 7: Matplotlib модуль Animation класс FuncAnimation (автообновление графиков)
• Python и Matplotlib мо...
Видео 8: Библиотека Matplotlib, отображение графиков функции с использованием библиотеки numexpr (ввод функции из текстовой строки) • Python и Matplotlib py...
Видео 9.1: Классы QListWidget и QListView сопоставительный анализ, простой пример применения QListWidget
• Python и PyQt (QListWi...
Видео 9.2: Класс QListView пример применения с использованием QtCore.QabstractListModel
• Python PyQt и QListV...
Видео 10: Python и Excel взаимодействие с excel (библиотеки xlrd, xlwt, openpyxl, win32com)
• Python и Excel (библио...
Видео 11: обзор виджета QTableWidget и практическое использование
• Python и PyQt обзор ви...
Видео №12.1 обзор виджета QStackedWidget использование QComboBox и QPushButton в качестве переключателей
• Python и PyQt QStakedW...
Видео №12.2 Продолжение обзора виджета QStackedWidget использование QToolButton в качестве переключателей, настройка статического и динамического внешнего вида QToolButton c использованием qss.
• Python и PyQt QStakedW...
Видео 12.3 Python готовое приложение с графическим интерфейсом (GUI) Qt и графической библиотекой Matplotlib (Обзор проекта текущее состояние на июль 2018г). • Python и готовое прило...
Видео 13.1 Python и создание базы данных данных на дви
Приятно увидеть видео про Python и геофизику))
class QuantumVolume():
def __init__(self, dens, res, neu, gr, dtp, fluid):
self.fluid = fluid
self.dens = dens
self.res = res
self.neu = neu
self.gr = gr
self.dtp = dtp
self.v_oil = 0.3
self.v_gas = 0.05
self.v_water = 1-self.v_oil-self.v_gas
self.minerals = {'dolomite':0, 'limestone':1, 'quartz':0, 'halite':0, 'anhydrite':0}
self.fluid_properties()
self.matrix_properties()
self.porosity_by_density()
def porosity_by_density(self):
self.por_den = (self.d_m-self.dens)/(self.d_m-self.d_f)
def matrix_properties(self):
self.dens_prop = {'dolomite':2.85, 'limestone':2.71, 'quartz': 2.65, 'halite':2, 'anhydrite':3}
self.d_m = 0
for key in self.minerals:
self.d_m = self.d_m+self.minerals[key]*self.dens_prop[key]
def fluid_properties(self):
self.d_water = 1
self.d_oil = 0.8
self.d_gas = 0.3
if self.fluid == 'water':
self.d_f = self.d_water
self.dpt_f = 590
if self.fluid == 'oil':
self.d_f = self.d_oil
self.dpt_f = 620
if self.fluid == 'gas':
self.d_f = self.d_gas
self.dpt_f = 700
if self.fluid == 'mixture':
self.d_f = self.d_water*self.v_water+self.d_oil*self.v_oil+self.d_gas*self.v_gas
dens = [2.1, 2.3, 2.4, 2.5]
for den in dens:
quant = QuantumVolume(den, 10, 0.16, 40, 210, 'mixture')
print(quant.por_den)
Очень интересный урок.
Когда следующие уроки ?)
Заканчиваю ремонт, пред праздником будет по базам данных видео сейчас половину записал)
@@PyScientist очень жду
Новые уроки будут или уже все?
Да конечно, никак не соберусь с мыслями), но в этом месяце точно будет по архитектуре ПО.