0

我正在尝试使用以下代码进行一些计算:

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

ds1 = xr.open_mfdataset('HIST/*nc')

ds1 = ds1.loc[dict(time=slice('1996-01-01','2005-12-31'))]

ds1 = ds1.resample(time='24H').sum('time')

ds_yrmax1 = ds1.resample(time='AS').max('time')

我回来的完整错误是这样的:

Traceback (most recent call last):
File "GFDL-CM3_interp_hist.py", line 29, in <module>
 ds2 = ds2.resample(time='D').sum('time')
File "/opt/apps/python/3.6.4/lib/python3.6/site- 
 packages/xarray/core/common.py", line 53, in wrapped_func
 **kwargs)
File "/opt/apps/python/3.6.4/lib/python3.6/site- 
 packages/xarray/core/resample.py", line 303, in reduce
 func, self._dim, keep_attrs, **kwargs)
File "/opt/apps/python/3.6.4/lib/python3.6/site- 
 packages/xarray/core/groupby.py", line 654, in reduce
 return self.apply(reduce_dataset)
File "/opt/apps/python/3.6.4/lib/python3.6/site- 
 packages/xarray/core/resample.py", line 272, in apply
 combined = self._combine(applied)
File "/opt/apps/python/3.6.4/lib/python3.6/site- 
 packages/xarray/core/groupby.py", line 619, in _combine
 combined = self._maybe_restore_empty_groups(combined)
File "/opt/apps/python/3.6.4/lib/python3.6/site- 
 packages/xarray/core/groupby.py", line 342, in _maybe_restore_empty_groups
 combined = combined.reindex(**indexers)
File "/opt/apps/python/3.6.4/lib/python3.6/site- 
 packages/xarray/core/dataset.py", line 1767, in reindex
 tolerance, copy=copy)
File "/opt/apps/python/3.6.4/lib/python3.6/site- 
 packages/xarray/core/alignment.py", line 374, in reindex_variables
 new_var = var._getitem_with_mask(key)
File "/opt/apps/python/3.6.4/lib/python3.6/site- 
 packages/xarray/core/variable.py", line 659, in _getitem_with_mask
 data = duck_array_ops.where(mask, fill_value, data)
File "/opt/apps/python/3.6.4/lib/python3.6/site- 
 packages/xarray/core/duck_array_ops.py", line 164, in where
 return _where(condition, *as_shared_dtype([x, y]))
File "/opt/apps/python/3.6.4/lib/python3.6/site- 
 packages/xarray/core/duck_array_ops.py", line 107, in as_shared_dtype
 out_type = dtypes.result_type(*arrays)
File "/opt/apps/python/3.6.4/lib/python3.6/site- 
 packages/xarray/core/dtypes.py", line 186, in result_type
 return np.result_type(*arrays_and_dtypes)
TypeError: invalid type promotion

但是,当我摆脱似乎导致问题的行 ( ds1 = ds1.resample(time='24H').sum('time')) 时,它运行良好,并且在尝试重新采样时不会出现任何其他错误。

这让我很困惑,我不确定问题出在哪里。当代码稍作更改时它工作正常的事实让我认为特别是在取总和而不是我的数据或重新采样本身的问题时出了问题。我不确定,也不知道如何解决。

编辑 1:数据详细信息

数据是 3 小时降雨数据,形状为(10,90,144)。我试图找到每天的总数,然后是每年的最大每日价值。

以下是有关ds1何时打印的完整信息,如果这也有帮助。(*切片之前):

Dimensions:     (bnds: 2, lat: 90, lon: 144, time: 61320)
Coordinates:
  * lat         (lat) float64 -89.0 -87.0 -85.0 -83.0 -81.0 -79.0 -77.0 ...
  * lon         (lon) float64 1.25 3.75 6.25 8.75 11.25 13.75 16.25 18.75 ...
  * time        (time) datetime64[ns] 1985-01-01T01:30:00 ...
Dimensions without coordinates: bnds
Data variables:
    time_bnds   (time, bnds) datetime64[ns] dask.array<shape=(61320, 2), chunksize=(14600, 2)>
    lat_bnds    (time, lat, bnds) float64 dask.array<shape=(61320, 90, 2), chunksize=(14600, 90, 2)>
    lon_bnds    (time, lon, bnds) float64 dask.array<shape=(61320, 144, 2), chunksize=(14600, 144, 2)>
    pr          (time, lat, lon) float32 dask.array<shape=(61320, 90, 144), chunksize=(14600, 90, 144)>
    average_T1  (time) datetime64[ns] dask.array<shape=(61320,), chunksize=(14600,)>
    average_T2  (time) datetime64[ns] dask.array<shape=(61320,), chunksize=(14600,)>
    average_DT  (time) timedelta64[ns] dask.array<shape=(61320,), chunksize=(14600,)>
Attributes:
    title:                  NOAA GFDL GFDL-CM3, historical (run 1) experiment...
    institute_id:           NOAA GFDL
    source:                 GFDL-CM3 2010 atmosphere: AM3 (AM3p9,C48L48); sea...
    contact:                gfdl.climate.model.info@noaa.gov
    project_id:             CMIP5
    table_id:               Table 3hr (31 Jan 2011)
    experiment_id:          historical
    realization:            1
    modeling_realm:         atmos
    tracking_id:            e282fe4d-65a5-446f-8fc5-3cee468e6c71
    Conventions:            CF-1.4
    references:             The GFDL Data Portal (http://nomads.gfdl.noaa.gov...
    comment:                GFDL experiment name: CM3Z_D1_1860-2005_AllForc_H...
    gfdl_experiment_name:   CM3Z_D1_1860-2005_AllForc_H1
    creation_date:          2012-02-21T21:23:03Z
    model_id:               GFDL-CM3
    branch_time:            0.0
    experiment:             historical
    forcing:                GHG,SA,Oz,LU,Sl,Vl,SS,BC,MD,OC (GHG includes CO2,...
    frequency:              3hr
    initialization_method:  1
    parent_experiment_id:   piControl
    physics_version:        1
    product:                output1
    institution:            NOAA GFDL(201 Forrestal Rd, Princeton, NJ, 08540)
    history:                File was processed by fremetar (GFDL analog of CM...
    parent_experiment_rip:  r1i1p1
    institution_id:         NOAA GFDL(201 Forrestal Rd, Princeton, NJ, 08540)
4

0 回答 0