Альтернативная функция для ncdisp () из MATLAB в python в библиотеке netCDF4 - PullRequest
0 голосов
/ 12 июня 2018

Я использовал эту функцию для всех форматов и размеров файла netCDF.Вот как я использовал это в Matlab:

filename = 'C:\Users\my_name\Desktop\metopa_AM.nc'
ncdisp(filename)

Source:
           C:\Users\my_name\Desktop\metopa_nh3nn_20100101_AM.nc
Format:
           netcdf4
Global Attributes:
           Title              = 'Ammonia total columns retrieved from IASI measurements  from the NH3-ULBNN retrieval algorithm'
           Institution        = 'Universite Libre de Bruxelles (ULB)/Laboratoire atmosph�res, milieux et observations spatiales (LATMOS)'
           Product_Version    = '1.0'
           keywords           = 'satellite, observation, atmosphere, ammonia'
           date_created       = '2016-04-26 12:44:52'
           contact_emails     = 'Simon Whitburn (simon.whitburn@ulb.ac.be) and Lieven Clarisse (lclariss@ulb.ac.be)'
           platform           = 'Metop-A'
           spatial_resolution = '12 km diameter pixel at nadir'
Dimensions:
           time = 649874
Variables:
    time     
           Size:       649874x1
           Dimensions: time
           Datatype:   single
           Attributes:
                       long_name     = 'UTC time of acquisition'
                       standard_name = 'time'
                       units         = 'HHMMSS.ms'
                       example       = '252.9025=000252.9025 >> HH=00, MM=02, SS=52, ms=902'
    latitude 
           Size:       649874x1
           Dimensions: time
           Datatype:   single
           Attributes:
                       long_name     = 'latitude'
                       standard_name = 'latitude'
                       units         = 'degrees_north'
                       valid_range   = [-90  90]
    longitude
           Size:       649874x1
           Dimensions: time
           Datatype:   single
           Attributes:
                       long_name     = 'longitude'
                       standard_name = 'longitude'
                       units         = 'degrees_east'
                       valid_range   = [-180  180]
    column   
           Size:       649874x1
           Dimensions: time
           Datatype:   single
           Attributes:
                       long_name     = 'Ammonia total column'
                       standard_name = 'NH3_total_column'
                       units         = 'molec.cm^{-2}'
                       missing_value = 'NaN'
    error    
           Size:       649874x1
           Dimensions: time
           Datatype:   single
           Attributes:
                       long_name     = 'Error on the ammonia total column'
                       standard_name = 'NH3_total_column_error'
                       units         = '%'
                       missing_value = 'NaN'
    CLcov    
           Size:       649874x1
           Dimensions: time
           Datatype:   single
           Attributes:
                       long_name     = 'Cloud coverage in the on ground pixel'
                       standard_name = 'cloud_cover'
                       units         = '%'
    VertProf 
           Size:       649874x1
           Dimensions: time
           Datatype:   int32
           Attributes:
                       long_name     = 'Vertical profile used in the retrieval procedure. 0= Sea profile, 1= Land profile, 2= PBL height'
                       standard_name = 'profile_type'
    angle    
           Size:       649874x1
           Dimensions: time
           Datatype:   single
           Attributes:
                       long_name     = 'viewing angle of the satellite'
                       standard_name = 'angle'
                       units         = 'degree'

Есть ли альтернативная функция для удаления всех атрибутов из файла netcdf в python?

1 Ответ

0 голосов
/ 12 июня 2018

NetCDF4, похоже, не имеет такой опции "pretty print" , в лучшем случае вы можете открыть файл NetCDF и просто напечатать объект;который предоставляет некоторую информацию о переменных, размерах и т. д.:

import netCDF4 as nc4
test = nc4.Dataset('rico.default.0000000.nc')
print(test)

В качестве альтернативы, xarray имеет опцию для "довольно печати" информации о переменных, размерах, атрибуты:

import xarray as xr
test = xr.open_dataset('rico.default.0000000.nc')
print(test.info())

Возвращает почти тот же вывод, что и ncdump -h, например (небольшая часть полного вывода):

xarray.Dataset {
dimensions:
    t = 7 ;
    z = 100 ;
    zh = 101 ;

variables:
int32 iter(t) ;
    iter:units = - ;
    iter:long_name = Iteration number ;
float64 t(t) ;
    t:units = s ;
    t:long_name = Time ;
float32 z(z) ;
    z:units = m ;
    z:long_name = Full level height ;
float32 zh(zh) ;
    zh:units = m ;
    zh:long_name = Half level height ;

............

В конце он также печатаетглобальные атрибуты (которых нет в этом конкретном файле NetCDF).

...