簡體   English   中英

如何從 xyz 點數據創建 xarray 數據集?

[英]How to create an xarray dataset from xyz point data?

我是 xarray 的新手,對我應該如何構建數據集和 DataArrays 感到困惑。 我有 xyz 點數據,每個點都有 2 個數據值。

下面是我這樣做的嘗試,但我收到錯誤ValueError: Could not convert tuple of form (dims, data[, attrs, encoding]): ... to Variable. 我相信這告訴我我的 point_data1 和 point_data2 需要是 3 維的,但我對如何以對我的用例有意義的方式做到這一點感到困惑。

import numpy as np

num_points = 20
point_locations = np.random.randint(99, size=(num_points, 3))
point_data1= np.ones(num_points)
point_data2 = np.random.randint(5, size=num_points)

ds = xr.Dataset({'point_data1': (['x', 'y', 'z'], point_data1 ),
                 'point_data2 ': (['x', 'y', 'z'], point_data2 )},
                coords={'x': point_locations[:,0], 'y': point_locations[:,1], 'z': point_locations[:,2]})

這似乎完成了我想要的。 這也允許您將sparse=True傳遞給from_dataframe

import numpy as np
import pandas as pd
import xarray as xr

num_points = 20
point_locations = np.random.randint(99, size=(num_points, 3))
point_data1 = np.ones(num_points)
point_data2 = np.random.randint(5, size=num_points)

df = pd.DataFrame()
df['x'] = point_locations[:, 0]
df['y'] = point_locations[:, 1]
df['z'] = point_locations[:, 2]
df['point_data1'] = np.ones(num_points)
df['point_data2'] = np.random.randint(5, size=num_points)
df = df.set_index(['x', 'y', 'z'])
ds = xr.Dataset.from_dataframe(df)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM