Один из самых удобных способов записать данные это использование готовых форматов, такие как JSON или YAML.
Из плюсов такого подхода стоит отметить вот что:
🔸 готовый, повсеместно используемый и поддерживаемый формат
🔸 простой и понятный файл, удобочитаемый для человека
🔸 можно легко редактировать в любом текстовом редакторе без специальных программ и библиотек
Но есть и минусы
🔹 затраты времени при записи файла (кодирование данных в нужный формат строки)
🔹 затраты времени при чтении файла (декодирование данных в Python объекты)
🔹 размер файла увеличивается из-за разметки данных (скобки, запятые, переносы, отступы...)
🔹 перед записью все данные должны быть помещены в память в полном объёме (не всегда)
🔹 при чтении необходимо считать весь файл в память и только потом декодировать данные
Если нужно писать немного данных в несколько файлов, то затраты по времени не ощутимы. Обычно это файлы конфига или какие-либо метаданные. Это отличный вариант под такие задачи.
Есть и другой поход к записи файлов - это бинарные файлы. Используется, когда данных достаточно много и никто их не собирается читать глазками😳.
🔸 очень быстрая запись
🔸 чтение значительно быстрей чем JSON, YAML итд
🔸 размер файла значительно меньше, так как нет разметки
🔸 можно записывать данные по мере поступления не загружая всё в память
🔸 можно извлечь любую часть данных независимо
Из минусов
🔹 нужно определить свой формат записи данных (если не используете готовую спецификацию определённого формата)
🔹 не получится открыть файл и визуально понять что там записано, а для чтения файла потребуется знать его спецификацию.
🔹 не так-то просто создать такой файл без специальной библиотеки
В таком виде удобно записывать большой массив любых однородных данных. Например, мониторинг валютной биржи или кэшированная анимация 3D геометрии.
(Это не означает что нельзя записать данные разного типа, просто это будет не так удобно)
Представьте себе JPG-картинку. По сути это немного мета-информации и большой массив пикселей. Тоже самое со звуком или видео файлом. Поэтому, если вы попробуете открыть картинку в текстовом редакторе вы увидите что-то вроде такого
f15d cd29 a564 4578 ...
09e2 9bc4 a696 1253 ...
84e9 4de1 3b23 c24a ...
2534 5161 28e0 709d ...
...
Это и есть записанные байтики. И для их чтения требуется определённый софт который знает что с ними делать. Под каждый тип файла.
К чему это я? Читайте в следующем посте...
#tricks#basic
Комплексное глубокое обучение для моделей месторождений. Нажал на кнопочку - готово!
Руслан Мифтахов выпустил очередное видео, на этот раз про комплексное (end-to-end) глубокое обучение для моделирования месторождений. Посмотрите, будет интересно тем кто этим занимается. Видео основано на статье специалистов SLB "Deep learning for end-to-end subsurface modeling and interpretation: An example from the Groningen gas field".
Как и рассказывает Руслан, идея end-to-end глубокого обучения для моделирования месторождений довольно крутая и у нее есть прекрасная аналогия в мире беспилотных автомобилей - собираем все возможные алгоритмы прогнозы обстановки на дороге и автоматизации в одну систему. Что если сделать подобное и для дорогостоящего и длительного процесса моделирования подземных месторождений чего угодно, хоть нефти, хоть минералов 🤔?
Например, есть несколько видов данных (со скважин и сейсмические данные). Их нужно обработать, интерпретировать каждый вид данных особым способом, закартировать и наконец сделать 3D модель свойств горных пород и флюидов - типа, бурить сюда! Интересно, что модели машинного обучения уже представлены для каждого процесса в отдельности. Есть модели машинного обучения для обработки скважинных данных, есть модели машинного обучения для автоматического выделения тектонических разломов на сейсмике и так далее. Авторы статьи, делают один, на мой взгляд пока небольшой, шаг к полной автоматизации процесса интерпретации и моделирования. Они говорят, давайте соберем все эти модели и придумаем автоматический процесс, чтобы собрать данные, нажать на кнопочку и на выходе получить модель свойств всея Земли (на картинке). Это может быть модель пористости или плотности пород, да чего угодно.
Я лично знаком с авторами, коллеги все-таки. Действительно, у них есть работающие компоненты, которые они собрали в статье под одним зонтиком. Это в основном сверточные нейронные сети для различных задач. Идея крутая, но даже для частичной ее реализации, на мой взгляд, нужно пройти большой путь. Ведь то, что у нас под ногами скрыто от наших глаз, в отличие от того, что видит камера беспилотного автомобиля. Подземного сканера с супер-разрешением все еще нет, где ты Илон Маск? Поэтому в игру вступают неопределенность и сдвиг данных.
Неопределенность геологических моделей будет всегда, потому что этих моделей бескочнечность, ведь мы точно никогда не узнаем что там под землей, а можем лишь догадываться по обрывкам данных. Если эту неопределенность не учитывать - будет финансово больно, даже при наличии самых красивых моделей и самых глубоких обучателей. Сдвиг данных, возникает тогда, когда модель обученная на одних данных, попадает в новые условия. И в геонауках это серьезная проблема. Не смотря на аналогии, нет двух одинаковых месторождений, и даже если модель обучить на 1000 месторждениях, 1001-е будет другое и производительность модели будет значительно ниже и вероятно не понравится, людям принимающим решение о бурении скважины стоимостью стопицот миллионов . Умные геоинженеры и обучатели машин сейчас работают над тем, чтобы побороть эти две проблемы для моделирования месторождений, но с переменным успехом (на мой взгляд опять же).
Пост может показатья кому-то скептическим, но на самом деле я полон оптимизма. Каких-то пять лет назад даже 10-я часть предложенных алгоритмов была невозможна по разным причинам, а сегодня уже идут разговоры о полной автоматизации моделирования с помощью машинного обучения. Повсеместная адаптация займет еще много лет, но все равно впереди блестящее будущее!
📖статья
#ML#AI#geo#subsurface
Breakthrough Energy Билла Гейтца вкладывается в геологический водород
Вышла новость, что Breakthrough Energy Билла Гейтца вложилась в стартап (91 мульён долларов), который работал в секретном режиме буквально до прошлой недели. Называется Koloma, состоит сплошь из выходцев из нефтянки. Koloma собирается добывать геологический водород на среднем западе США. Ну и конечно, планирует подать заявку на получение субсидий в соответствии с Законом о снижении инфляции (IRA) 😁.
Билл Гейтц считает водород "швейцарским ножом" в энергетике (кстати, почитайте его книжку How to Avoid a Climate Disaster, даже если не согласны с повесточкой - она интересная!)
#hydrogen#decarbonization#subsurface
🪐 Scientists are exploring the possibility that life could exist deep below the surface of Mars, where underground water reservoirs may still provide a stable environment protected from harsh surface radiation and extreme cold. Evidence from orbiting spacecraft suggests networks of ancient, buried rivers and salty brines—which could help microbes survive in the Martian subsurface even today. ✨
#Mars⚡#life⚡#subsurface⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
IMAGE'23 и генерация моделей по подсказке
Всем привет! Пропал-пропал, был на конференции IMAGE'23. Это такая огромная, на тысяч 6-7 человек, геотехническая конференция в Хьюстоне для специалистов в области геонаук, полезных ископаемых и (уже) декарбонизации.
Самые большие секции были посвящены машинному обучению в геонауках. На одной из них я показал наши эксперименты в области Генеративного ИИ (Generative AI), а именно первые наброски того как можно генерировать реалистичные геологические\сейсмические модели с помощью семантически понятного текста. Типа говоришь "йоу, модель, сделай мне низкочастотный сейсмический разрез с двумя сбросовыми разломами в восточной части и добавь немного шума". И на выходе получаешь реалистичный сейсмический разрез удовлетворяющий твоему описанию, или получаешь сразу несколько разных разрезов, ведь генерация стохастическая.
Использовали мы немного модифицированную версию знаменитой нейронки Dalle-E2 от Open AI, которую обучили с нуля. Точнее три ее компонента: ✅CLIP - для семантической связи между текстом и изображением(моделью) и преобразования последнего в векторное представление; ✅ Diffusion Prior - для стохастической генерации текстовых векторных представлений в текстовые представления изображения(модели) и ✅ Decoder - для стохастической генерации самих изображений(моделей) из их векторного представления. Последняя нейроночка использует диффузионную модель. Получилось неплохо! На второй картинке пример моделей, которые сгенерировались по соответствующей подсказке. Конечно отправлять в продакшн еще рановато, но идея, кажется, работает не только на кошечках и собачках.
#Image23#conference#ML#AI#subsurface
RockPhyPy - рок-физика 🤘 в Питоне 🐍
Рок-физика - занимательная часть наук по исследованию недр, а не то что вы подумали. Правильный перевод конечно "физика горных пород", но на пост-советском пространстве это название заразервировала немного другая дисциплина.
Рок-физика изучает взаимоотношения между физическими свойствами пород и геофизическими наблюдениями в разных условиях. Например, как количественно оценить изменение свойств горных пород на основе поведения сейсмических волн, распространяющихся через них. В рок-физике особое внимание уделяют и эффекту наличия того или иного флюида в порах горных пород и как в связи с этим изменится геофизический сигнал. Это важно для УВ, захоронения СО2 и геотермалки.
Такое вступление, чтобы представить вам RockPhyPy - набор инструментов в Питоне для моделирования в этой области. Вся научная основа взята из Справочника рок-физика (Rock Physics Handbook).
И в догонку статья с описанием API и всего инструментария.
#subsurface#geo#programming#rockphysics
Вся геология Нидерланд в одном проекте в Petrel
Petrel - это наверное самый популярный софт для геолого-геофизического моделирования, интерпретации и визуализации. Как Автокад для проектировщиков.
Университет в Утрехте опубликовал всю геологическую базу данных Нидерланд в едином проекте в Petrel 🤯: 10,599 2D сейсмики, 280 3D сейсмики, 6,590 скважин and 4,752 измерений в скважинах.
Может для обучения пригодится!
#seismic#database#geo#subsurface