【发布时间】:2019-03-17 09:35:11
【问题描述】:
我正在使用 xarray 根据来自另一个数据集的值的条件创建一个新的数据集。
输入的Dataset对象ds_season是按季节划分的,具有如下三个维度。
<xarray.Dataset>
Dimensions: (latitude: 106, longitude: 193, season: 4)
Coordinates:
* latitude (latitude) float32 -39.2 -39.149525 ... -33.9
* longitude (longitude) float32 140.8 140.84792 ... 150.0
* season (season) object 'DJF' 'JJA' 'MAM' 'SON'
Data variables:
FFDI 95TH PERCENTILE (season, latitude, longitude) float64 dask.array<shape=(4, 106, 193), chunksize=(4, 106, 193)>
我需要创建一个具有纬度、经度和时间三个维度的新数据集。经纬度应与输入Dataset的坐标相同,时间坐标应为10年以上的天数。
例如,生成的数据集是这样的:
<xarray.Dataset>
Dimensions: (latitude: 106, longitude: 193, time: 3653)
Coordinates:
* latitude (latitude) float32 -39.2 -39.149525 ... -33.950478 -33.9
* longitude (longitude) float32 140.8 140.84792 140.89584 ... 149.95209 150.0
* time (time) datetime64[ns] 1972-01-01T00:00:00 1972-01-02T00:00:00 1972-01-03T00:00:00 ... 1981-12-30T00:00:00 1981-12-31T00:00:00
Data variables:
FFDI 95TH PERCENTILE (time, latitude, longitude) float64 dask.array<shape=(3653, 106, 193), chunksize=(3653, 106, 193)>
一天的变量应该与当天所在季节的变量相同。这意味着,1972-01-01、1972-02-02 和 1972-02-28 应该具有相同的值DJF 的赛季;并且 1972-04-01、1972-05-02 和 1972-05-31 应该具有与 MAM 季节相同的值。
我正在考虑数据集的 where() 函数,但不知道从哪里开始。 http://xarray.pydata.org/en/stable/generated/xarray.Dataset.where.html?highlight=where#xarray.Dataset.where
【问题讨论】:
-
这与您在此处提出的问题基本相同:stackoverflow.com/questions/55002275/…。我建议你努力改进你的第一个问题并关闭这个问题。
-
谢谢@jhamman。我认为这个问题是关于使用 where() 来解决问题,而另一个问题是使用 resample()。我不确定哪一个最适合。
标签: python numpy python-xarray