该方法用于将输入的 pandas series 数据映射到地质体系中的表面点,返回表面点的索引、坐标和对应的数据值。
series_data
:pandas series 数据,包含了要映射到表面点的数据值。surface_points
:地质体系中表面点的数据模型。values
:表面点数据模型中要映射数据值的字段名。indices
:映射后的表面点索引列表。coordinates
:映射后的表面点坐标列表。values
:映射后的表面点数据值列表。首先将输入的 series 数据与表面点数据模型中的坐标信息进行匹配,得到每个 series 数据值对应的表面点坐标和索引。
利用表面点索引和坐标信息,得到表面点的数据值,将其作为返回值。如果表面点没有数据,则将其数据值设为 NAN。
将得到的表面点索引、坐标和数据值组成对应的列表,并将其作为函数的返回值返回给用户。
import pandas as pd
import numpy as np
from gempy.core.data_modules.geometric_data import SurfacePoints
# 创建一个 surface_points 对象
surface_points = SurfacePoints(coords=np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]))
# 假设有如下 series 数据
series_data = pd.Series([0.2, 0.3, 0.1])
# 使用 map_data_from_series 方法将 series 数据映射到表面点
indices, coords, data = surface_points.map_data_from_series(series_data, values='data_value')
print(f"indices: {indices}") # 输出:[0 1 2]
print(f"coords: {coords}") # 输出:[[1. 2. 3.]
# [4. 5. 6.]
# [7. 8. 9.]]
print(f"data: {data}") # 输出:[0.2 0.3 0.1]
从示例中可以看出,map_data_from_series 方法将 series 数据成功映射到表面点,并返回了对应的索引、坐标和数据值。