如何从两个 3D 数据集(时间、纬度、经度)的同一日期提取数据?
How to extract the data from the same date of two 3D datasets (time, lat, lon)?
我有两个 NetCDF 文件:
Data1.shape = (177, 180, 360)
Data2.shape = (179, 180, 360))
Date1= {list: 177}['2002-04', '2002-05', '2002-06', … ]
Date2 = {list: 179}['2002-04', '2002-05', '2002-08', … ]
我只想 filter/extract 那些与 Date1
匹配的数据。
我应该提到两个 NetCDF 文件的日期格式不同,我将它们更改为一致。
我尝试了groupby
、Timestamp、读取给定索引的文件到时间等不同的方式。但是,我发现它们不适用于 3D 数据(时间、经度、纬度)。
已解决:
data1 = xr.open_dataset('path\to\my\data\data_1.nc4')
<xarray.Dataset>
Dimensions: (lat: 180, lon: 360, time: 212)
Coordinates:
* time (time) datetime64[ns] 2002-04-01 ... 2019-11-01
* lon (lon) float32 -179.5 -178.5 -177.5 ... 178.5 179.5
* lat (lat) float32 89.5 88.5 87.5 ... -87.5 -88.5 -89.5
Data variables:
Evap_tavg (time, lat, lon) float32 ...
读取第二条数据。
data2 = xr.open_dataset('path\to\my\data\data_2.nc4')
<xarray.Dataset>
Dimensions: (lat: 180, lon: 360, time: 212)
Coordinates:
* time (time) datetime64[ns] 2003-01-01 ... 2016-12-01
* lon (lon) float32 -179.5 -178.5 -177.5 ... 178.5 179.5
* lat (lat) float32 89.5 88.5 87.5 ... -87.5 -88.5 -89.5
Data variables:
Evap (time, lat, lon) float32 ...
他们有一些共同的数据 date/time,我们想从相似的 date/time 中提取这些数据。
my_new_data = data1.where(data1['time'].isin(data2['time']), drop=True)
我有两个 NetCDF 文件:
Data1.shape = (177, 180, 360)
Data2.shape = (179, 180, 360))
Date1= {list: 177}['2002-04', '2002-05', '2002-06', … ]
Date2 = {list: 179}['2002-04', '2002-05', '2002-08', … ]
我只想 filter/extract 那些与 Date1
匹配的数据。
我应该提到两个 NetCDF 文件的日期格式不同,我将它们更改为一致。
我尝试了groupby
、Timestamp、读取给定索引的文件到时间等不同的方式。但是,我发现它们不适用于 3D 数据(时间、经度、纬度)。
已解决:
data1 = xr.open_dataset('path\to\my\data\data_1.nc4')
<xarray.Dataset>
Dimensions: (lat: 180, lon: 360, time: 212)
Coordinates:
* time (time) datetime64[ns] 2002-04-01 ... 2019-11-01
* lon (lon) float32 -179.5 -178.5 -177.5 ... 178.5 179.5
* lat (lat) float32 89.5 88.5 87.5 ... -87.5 -88.5 -89.5
Data variables:
Evap_tavg (time, lat, lon) float32 ...
读取第二条数据。
data2 = xr.open_dataset('path\to\my\data\data_2.nc4')
<xarray.Dataset>
Dimensions: (lat: 180, lon: 360, time: 212)
Coordinates:
* time (time) datetime64[ns] 2003-01-01 ... 2016-12-01
* lon (lon) float32 -179.5 -178.5 -177.5 ... 178.5 179.5
* lat (lat) float32 89.5 88.5 87.5 ... -87.5 -88.5 -89.5
Data variables:
Evap (time, lat, lon) float32 ...
他们有一些共同的数据 date/time,我们想从相似的 date/time 中提取这些数据。
my_new_data = data1.where(data1['time'].isin(data2['time']), drop=True)