Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Importar archivos NetCDF y datos de OPeNDAP

Lea los datos de un archivo NetCDF con las funciones de alto nivel y, a continuación, lea el archivo utilizando las funciones de bajo nivel del paquete.netcdf

Capacidades NetCDFMATLAB

El formulario de datos comunes de red (NetCDF) es un conjunto de bibliotecas de software y formatos de datos independientes de la máquina que admiten la creación, el acceso y el uso compartido de datos científicos orientados a arreglos de discos. NetCDF es utilizado por una amplia gama de campos de ingeniería y científicos que quieren una forma estándar de almacenar datos para que puedan compartirse.

las funciones de alto nivel simplifican el proceso de importación de datos desde un archivo NetCDF o una fuente de datos OPeNDAP NetCDF. las funciones de bajo nivel permiten un mayor control sobre el proceso de importación, proporcionando acceso a las rutinas en la biblioteca NetCDF C.MATLAB®MATLAB Para utilizar eficazmente las funciones de bajo nivel, debe estar familiarizado con la interfaz de NetCDF C. La documentación de NetCDF está disponible en el.El sitio web de unidata

Nota

Para obtener información sobre la importación de archivos de formato de datos comunes (CDF), que tienen un formato independiente e incompatible, consulte.Importar archivos CDF utilizando funciones de bajo nivel

Leer del archivo NetCDF utilizando funciones de alto nivel

En este ejemplo se muestra cómo mostrar y leer el contenido de un archivo NetCDF mediante funciones de alto nivel.

Mostrar el contenido del archivo NetCDF de ejemplo,.example.nc

ncdisp('example.nc')
Source:
           \\matlabroot\toolbox\matlab\demos\example.nc
Format:
           netcdf4
Global Attributes:
           creation_date = '29-Mar-2010'
Dimensions:
           x = 50
           y = 50
           z = 5
Variables:
    avagadros_number
           Size:       1x1
           Dimensions: 
           Datatype:   double
           Attributes:
                       description = 'this variable has no dimensions'
    temperature     
           Size:       50x1
           Dimensions: x
           Datatype:   int16
           Attributes:
                       scale_factor = 1.8
                       add_offset   = 32
                       units        = 'degrees_fahrenheight'
    peaks           
           Size:       50x50
           Dimensions: x,y
           Datatype:   int16
           Attributes:
                       description = 'z = peaks(50);'
Groups:
    /grid1/
        Attributes:
                   description = 'This is a group attribute.'
        Dimensions:
                   x    = 360
                   y    = 180
                   time = 0     (UNLIMITED)
        Variables:
            temp
                   Size:       []
                   Dimensions: x,y,time
                   Datatype:   int16
    
    /grid2/
        Attributes:
                   description = 'This is another group attribute.'
        Dimensions:
                   x    = 360
                   y    = 180
                   time = 0     (UNLIMITED)
        Variables:
            temp
                   Size:       []
                   Dimensions: x,y,time
                   Datatype:   int16

muestra todos los grupos, cotas y definiciones de variables del archivo.ncdisp Las dimensiones ilimitadas se identifican con la etiqueta,.UNLIMITED

Leer datos de la variable.peaks

peaksData  = ncread('example.nc','peaks');

Mostrar información sobre la salida.peaksData

whos peaksData
  Name            Size            Bytes  Class    Attributes    peaksData      50x50             5000  int16  

Lea el atributo asociado a la variable.description

peaksDesc  = ncreadatt('example.nc','peaks','description')
peaksDesc =  z = peaks(50);

Cree una gráfica de superficie tridimensional de los datos variables. Utilice el valor del atributo como título de la figura.description

surf(double(peaksData)) title(peaksDesc);

Lea el atributo asociado con el grupo.description/grid1/ Especifique el nombre del grupo como la segunda entrada de la función.ncreadatt

g = ncreadatt('example.nc','/grid1/','description')
g =  This is a group attribute.

Lea el atributo global,.creation_date Para los atributos globales, especifique el segundo argumento de entrada como.ncreadatt'/'

creation_date = ncreadatt('example.nc','/','creation_date')
creation_date =  29-Mar-2010

Encontrar todas las dimensiones ilimitadas en el archivo NetCDF

Este ejemplo muestra cómo encontrar todas las dimensiones ilimitadas en un grupo en un archivo NetCDF, utilizando funciones de alto nivel.

Obtenga información sobre el grupo en el archivo de ejemplo, utilizando la función./grid2/example.ncncinfo

ginfo = ncinfo('example.nc','/grid2/')
ginfo = 

      Filename: '\\matlabroot\toolbox\matlab\demos\example.nc'
          Name: 'grid2'
    Dimensions: [1x3 struct]
     Variables: [1x1 struct]
    Attributes: [1x1 struct]
        Groups: []
        Format: 'netcdf4'

Devuelve una matriz de estructura que contiene información sobre el grupo.ncinfo

Obtenga un vector de los valores booleanos que indican las dimensiones ilimitadas para este grupo.

unlimDims = [ginfo.Dimensions.Unlimited] 
unlimDims =       0     0     1

Utilice el vector para mostrar la dimensión ilimitada.unlimDims

disp(ginfo.Dimensions(unlimDims))
         Name: 'time'        Length: 0     Unlimited: 1 

Leer del archivo NetCDF utilizando funciones de bajo nivel

Este ejemplo muestra cómo obtener información sobre las dimensiones, variables y atributos en un archivo NetCDF utilizando las funciones de bajo nivel de MATLAB en el paquete.netcdf Para utilizar estas funciones eficazmente, debe estar familiarizado con la interfaz de NetCDF C.

Abra el archivo NetCDF

Abra el archivo NetCDF de ejemplo, utilizando la función, con acceso de solo lectura.example.ncnetcdf.open

ncid = netcdf.open('example.nc','NC_NOWRITE')
ncid = 65536 

Devuelve un identificador de archivo.netcdf.open

Obtenga información sobre el archivo NetCDF

Obtenga información sobre el contenido del archivo mediante la función.netcdf.inq Esta función corresponde a la función de la API de C de la biblioteca NetCDF.nc_inq

[ndims,nvars,natts,unlimdimID] = netcdf.inq(ncid)
ndims = 3 
nvars = 3 
natts = 1 
unlimdimID = -1 

Devuelve el número de dimensiones, variables y atributos globales del archivo, y devuelve el identificador de la dimensión ilimitada en el archivo.netcdf.inq Una dimensión ilimitada puede crecer.

Obtenga el nombre del atributo global en el archivo utilizando la función.netcdf.inqAttName Esta función corresponde a la función de la API de C de la biblioteca NetCDF.nc_inq_attname Para obtener el nombre de un atributo, debe especificar el identificador de la variable con la que está asociado el atributo y el número de atributo. Para tener acceso a un atributo global, que no está asociado a una variable determinada, utilice la constante como identificador de variable.'NC_GLOBAL'

global_att_name = netcdf.inqAttName(ncid,...     netcdf.getConstant('NC_GLOBAL'),0)
global_att_name =  'creation_date' 

Obtenga información sobre el tipo de datos y la longitud del atributo mediante la función.netcdf.inqAtt Esta función corresponde a la función de la API de C de la biblioteca NetCDF.nc_inq_att De nuevo, especifique el ID de variable mediante.netcdf.getConstant('NC_GLOBAL')

[xtype,attlen] = netcdf.inqAtt(ncid,...     netcdf.getConstant('NC_GLOBAL'),global_att_name)
xtype = 2 
attlen = 11 

Obtenga el valor del atributo, utilizando la función.netcdf.getAtt

global_att_value = netcdf.getAtt(ncid,...     netcdf.getConstant('NC_GLOBAL'),global_att_name)
global_att_value =  '29-Mar-2010' 

Obtenga información sobre la primera dimensión del archivo, utilizando la función.netcdf.inqDim Esta función corresponde a la función de la API de C de la biblioteca NetCDF.nc_inq_dim La segunda entrada es el identificador de dimensión, que es un índice de base cero que identifica la dimensión.netcdf.inqDim La primera dimensión tiene el valor de índice.0

[dimname,dimlen] = netcdf.inqDim(ncid,0)
dimname =  'x' 
dimlen = 50 

Devuelve el nombre y la longitud de la dimensión.netcdf.inqDim

Obtenga información sobre la primera variable del archivo mediante la función.netcdf.inqVar Esta función corresponde a la función de la API de C de la biblioteca NetCDF.nc_inq_var La segunda entrada es el identificador de variable, que es un índice de base cero que identifica la variable.netcdf.inqVar La primera variable tiene el valor de índice.0

[varname,vartype,dimids,natts] = netcdf.inqVar(ncid,0)
varname =  'avagadros_number' 
vartype = 6 
dimids =       [] 
natts = 1 

Devuelve el nombre, el tipo de datos, el identificador de dimensión y el número de atributos asociados a la variable.netcdf.inqVar La información de tipo de datos devuelta es el valor numérico de las constantes de tipo de datos NetCDF, como, y.vartypeNC_INTNC_BYTE Consulte la documentación de NetCDF para obtener información sobre estas constantes.

Leer datos de NetCDF File

Lea los datos asociados a la variable, en el archivo de ejemplo, utilizando la función.avagadros_numbernetcdf.getVar La segunda entrada es el identificador de variable, que es un índice de base cero que identifica la variable.netcdf.getVar La variable tiene el valor de índice.avagadros_number0

A_number = netcdf.getVar(ncid,0)
A_number = 6.0221e+23 

Ver el tipo de datos de.A_number

whos A_number
  Name          Size            Bytes  Class     Attributes    A_number      1x1                 8  double               

Las funciones del paquete eligen automáticamente la clase MATLAB que mejor coincida con el tipo de datos NetCDF, pero también puede especificar la clase de los datos devueltos mediante un argumento opcional.netcdfnetcdf.getVar

Lea los datos asociados y devuelva los datos como clase.avagadros_numbersingle

A_number = netcdf.getVar(ncid,0,'single'); whos A_number
  Name          Size            Bytes  Class     Attributes    A_number      1x1                 4  single               

Cierre el archivo NetCDF

Cierre el archivo NetCDF,.example.nc

netcdf.close(ncid)

Consulte también

| | | |

Temas relacionados

Sitios web externos