Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用geopandas multilinestring从xarray数据集中提取值_Python_Geopandas_Python Xarray - Fatal编程技术网

Python 使用geopandas multilinestring从xarray数据集中提取值

Python 使用geopandas multilinestring从xarray数据集中提取值,python,geopandas,python-xarray,Python,Geopandas,Python Xarray,我有几百个GeoPanda多行线,沿着感兴趣的对象进行跟踪(几年内每周一行跟踪墨西哥湾流),我想使用这些线从其他一些xarray数据集中提取值,以了解海表温度、叶绿素-a、,以及每周沿着这条路径的其他变量 我不确定如何准确地使用这些geopandas行从xarray数据集中提取值。我曾考虑过将它们分成若干点,并在每个点上获取数据集值,但这似乎有点麻烦。有什么简单的方法可以执行此操作吗?因为GeoPandas使用与Pandas相同的约定,所以最好的方法是在处理它时统一数据类型。您可以在xarray

我有几百个
GeoPanda
多行线,沿着感兴趣的对象进行跟踪(几年内每周一行跟踪墨西哥湾流),我想使用这些线从其他一些
xarray
数据集中提取值,以了解海表温度、叶绿素-a、,以及每周沿着这条路径的其他变量


我不确定如何准确地使用这些
geopandas
行从
xarray
数据集中提取值。我曾考虑过将它们分成若干点,并在每个点上获取数据集值,但这似乎有点麻烦。有什么简单的方法可以执行此操作吗?

因为GeoPandas使用与Pandas相同的约定,所以最好的方法是在处理它时统一数据类型。您可以在xarray中通过以下方式执行此操作:

xr.Dataset.from_数据帧(df)

将线拆分为点,然后提取点实际上非常简单

将geopandas导入为gpd
将numpy作为np导入
将shapely.geometry作为sg导入
将xarray作为xr导入
#设置示例数据阵列:
y=np.arange(20.0)
x=np.arange(20.0)
da=xr.DataArray(
数据=np.rand.rand(y.size,x.size),
coords={y:y,x:x},
dims=[“y”,“x”],
)
#设置一个示例geodataframe:
gdf=gpd.GeoDataFrame(
几何学=[
sg.LineString([(0.0,0.0),(5.0,5.0)],
sg.LineString([(10.0,10.0),(15.0,15.0)],
]
)
#获取质心,并为DataArray创建索引器:
质心=gdf。质心
x_indexer=xr.DataArray(形心.x,dims=[“点”])
y_indexer=xr.DataArray(质心.y,dims=[“点”])
#抓住结果:
da.sel(x=x\u索引器,y=y\u索引器,方法=“最近”)

阵列([0.80121949,0.34728138])
协调:
y(点)浮动64 3.0 13.0
x(点)浮动64 3.0 13.0
*点(点)int64 0 1
主要的事情是决定你想在哪一点取样,或者取样多少点,等等

请注意,geodataframe中的几何体对象也有插值方法,如果您希望沿轨迹在特定点绘制值:

在这种情况下,
.apply
可以派上用场:

gdf.geometry.apply(lambda geom:geom.interpolate(3.0))
0分(2.12132 2.12132)
1分(12.12132 12.12132)
名称:几何体,数据类型:几何体