用xarray过滤多个变量

2024-06-17 09:41:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个在不同位置和时间进行的海洋观测的.nc文件。我只想选择那些在某个日期之前,在一定位置范围内进行的观察。我曾尝试使用xarray.open_dataset()打开文件,并在数据集上使用.where,但这似乎占用了过多的内存。nc文件只有44MB,但我运行的python进程在我杀死它之前已经增长到21GB内存

我正在使用的数据文件可以从这里下载:Norwegian Marine Data Centre

我的代码如下所示:

import numpy as np
import xarray as xr

d = xr.open_dataset('../data/58GS_CTD_2010.nc')
march1 = np.datetime64('2010-03-01T00:00:00.0')
subset = d.where((d.TIME < march1) & ((2 < d.LONGITUDE) & (d.LONGITUDE < 4)) & ((59 < d.LATITUDE) & (d.LATITUDE < 61)))

数据集的元数据如下所示:

<xarray.Dataset>
Dimensions:      (DEPTH: 3357, LATITUDE: 691, LONGITUDE: 691, POSITION: 691, TIME: 691)
Coordinates:
  * TIME         (TIME) datetime64[ns] 2010-05-18T09:33:27.000000256 ... 2010-11-30T17:36:08
  * LATITUDE     (LATITUDE) float32 70.0708 57.0002 56.9983 ... 60.1025 60.4287
  * LONGITUDE    (LONGITUDE) float32 9.5065 3.4033 7.3588 ... 5.4277 5.267
Dimensions without coordinates: DEPTH, POSITION
Data variables:
    TIME_QC      (TIME) float32 ...
    DIRECTION    (TIME) object ...
    POSITION_QC  (POSITION) float32 ...
    DEPH         (TIME, DEPTH) float32 ...
    DEPH_QC      (TIME, DEPTH) float32 ...
    TEMP         (TIME, DEPTH) float32 ...
    TEMP_QC      (TIME, DEPTH) float32 ...
    CNDC         (TIME, DEPTH) float32 ...
    CNDC_QC      (TIME, DEPTH) float32 ...
    PSAL         (TIME, DEPTH) float32 ...
    PSAL_QC      (TIME, DEPTH) float32 ...
Attributes:
    data_type:                  OceanSITES vertical profile
    format_version:             1.2
    platform_code:              MYO_AR_58GS
    platform_name:              G.O. Sars
    date_update:                2017-03-01T09:16:34Z
    institution:                Institute of Marine Research
    site_code:                  
    source:                     Shipborne Observation
    data_mode:                  D
    quality_control_indicator:  5
    quality_index:              A
    references:                 
    comment:                    
    Conventions:                CF-1.6 OceanSITES-Manual-1.2 Copernicus-InSit...
    netcdf_version:             3.5
    title:                      
    summary:                    
    naming_authority:           OceanSITES
    id:                         AR_PR_CT_MYO_AR_58GS_2010
    cdm_data_type:              Point
    area:                       North Atlantic Ocean
    geospatial_lat_min:         56.1492
    geospatial_lat_max:         78.653702
    geospatial_lon_min:         -18.0065
    geospatial_lon_max:         43.095798
    geospatial_vertical_min:    1.0
    geospatial_vertical_max:    3363.0
    institution_references:     http://www.imr.no
    contact:                    datahjelp@imr.no
    author:                     Norwegian Marine Datacenter
    data_assembly_center:       Norwegian Marine Datacenter
    pi_name:                    
    distribution_statement:     These data follow Copernicus standards; they ...
    citation:                   These data were collected and made freely ava...
    update_interval:            void
    qc_manual:                  OceanSITES User's Manual v1.1
    wmo_platform_code:          
    history:                    
    time_coverage_start:        2010-01-29T15:07:40Z
    time_coverage_end:          2010-11-30T17:36:08Z

Tags: 文件数据datatimepositionxarrayncdepth