Python и ООП создание петрофизической модели часть 1

preview_player
Показать описание
Это видео продолжает серию видео-записок по Python с обзорами практических приёмов программирования.

В этой видео-заметке начинаю обзор возможностей ООП на Python при создании петрофизической модели, а именно разбираю приемы программирования с использованием классов. Основной темой этой серии видео, которая, как планируется, будет состоять из четырех видеозаметок является петрофизические палетки НК-ГГКп и их применение. Для подробного разбора этой темы в первом видео вначале разберу зачем нужны палетки НК-ГГКп, и расскажу как создать простую плотностную модель пористой среды, затем на практике разберу как смоделировать пористость в Python. За основу возьмём квант (единицу) создадим его с помощью объекта, заранее задав ему базовые параметры и свойства, а затем наполним его измеренными физическими свойствами.

Ссылки на предыдущие видео по теме:
Видео 1: Python настройка рабочего пространства, использование PyCharm
Видео 2: Python функции
Видео 3: Python классы
Видео 4: Графический интерфейс Qt для Python, или PyQt
Видео 5: Python компиляция программ, cx_Freeze и другие компиляторы
Видео 6.1: Библиотека Matplotlib создание графиков для анализа данных
Видео 6.2: Библиотека matplotlib и Qt встраивание графиков в графический интерфейс Qt
Видео 7: Matplotlib модуль Animation класс FuncAnimation (автообновление графиков)
Видео 9.1: Классы QListWidget и QListView сопоставительный анализ, простой пример применения QListWidget
Видео 9.2: Класс QListView пример применения с использованием QtCore.QabstractListModel
Видео 10: Python и Excel взаимодействие с excel (библиотеки xlrd, xlwt, openpyxl, win32com)
Видео 11: обзор виджета QTableWidget и практическое использование
Видео №12.1 обзор виджета QStackedWidget использование QComboBox и QPushButton в качестве переключателей
Видео №12.2 Продолжение обзора виджета QStackedWidget использование QToolButton в качестве переключателей, настройка статического и динамического внешнего вида QToolButton c использованием qss.
Видео 13.1 Python и создание базы данных данных на дви
Рекомендации по теме
Комментарии
Автор

Приятно увидеть видео про Python и геофизику))

s.e
Автор

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 =

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 =

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 =


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