Файлы LAS - Python

Я почти уверен, что это очень простой вопрос о файлах LAS, но я не совсем знал, как это сделать в Google. Для контекста я пытаюсь создать сюжет с учетом информации в файле LAS.

      import lasio as ls
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

well = ls.read(r'1051325649.las')
df = well.df() 

fig = plt.subplots(figsize=(10,10))

#Set up the plot axes
ax1 = plt.subplot2grid((1,3), (0,0), rowspan=1, colspan = 1) 
ax2 = plt.subplot2grid((1,3), (0,1), rowspan=1, colspan = 1)
ax3 = plt.subplot2grid((1,3), (0,2), rowspan=1, colspan = 1)

ax1.plot("GR", "DEPT", data = df, color = "green") # Call the data from the well dataframe
ax1.set_title("Gamma") # Assign a track title
ax1.set_xlim(0, 200) # Change the limits for the curve being plotted
ax1.set_ylim(400, 1000) # Set the depth range
ax1.grid() # Display the grid

Файл LAS выглядит примерно так, где я хочу создать график, где крайний левый столбец «DEPT» должен быть осью X. Однако столбец «DEPT» или столбец глубины не может быть преобразован в формат, позволяющий мне построить его. ** Примечание: справа нет столбца GR, которого нет на этом рисунке, так что не беспокойтесь. Любые советы очень помогут.

2 ответа

Короткий ответ:

plt.plot ожидает, что оба "GR" а также "DEPT" являются столбцами в, однако последние ( DEPT) не столбец, это индекс. Вы можете решить эту проблему, преобразовав индекс в df в столбец:

      df2 = df.reset_index()
ax1.plot("GR", "DEPT", data = df2, color = "green")

При чтении .lasфайлы с использованием lasioбиблиотеки и преобразовать их в pandasdataframe, он автоматически устанавливается в качестве индекса для dataframe.

Есть два решения этой проблемы:

  1. Используйте данные как есть:
      import matplotlib.pyplot as plt
import lasio

well = lasio.read('filename.las')
well_df = well.df()

plt.plot(well_df.GR, well_df.index)

А также well_df.indexбудут значения.

  1. Сбросьте индекс и используйте DEPTкак столбец
      import matplotlib.pyplot as plt
import lasio

well = lasio.read('filename.las')
well_df = well.df()

well_df = well_df.reset_index()

plt.plot(well_df.GR, well_df.DEPT)
Другие вопросы по тегам