Perfiles NetCDF a clase de entidad (geometría de muestreo discreto) (Multidimensional)

Resumen

Crea una clase de entidad a partir de perfiles de archivos netCDF. En la convención de metadatos de Climate and Forecast (CF), un perfil es un tipo de geometría de muestreo discreta (DSG).

Más información sobre cómo funcionan las herramientas de Geometría de muestreo discreto (DSG)

Uso

  • En la convención de metadatos Climate and Forecast (CF), un perfil es un conjunto ordenado de puntos de datos a lo largo de una línea vertical en una posición horizontal fija y hora fija.

  • Los datasets de geometría de muestreo discreto (DSG) se caracterizan por una dimensionalidad menor que la región espacio-tiempo en la que se muestrean los datos.

  • Los archivos netCDF de entrada deben ser compatibles con Climate and Forecast (CF) (CF 1.6 o posterior). Las convenciones de CF definen los metadatos que describen los datos representados por cada variable y las propiedades espaciales y temporales de los datos.

  • Si los archivos netCDF de entrada no son compatibles con CF, puede especificar un archivo Input Climate and Forecast Metadata (in_cf_metadata en Python) con atributos adicionales o modificados. El archivo Input Climate and Forecast Metadata es un archivo en formato XML con una extensión .ncml. Los atributos de este archivo de metadatos se extenderán o invalidarán los metadatos del archivo netCDF. El archivo Input Climate and Forecast Metadata de entrada también se puede utilizar para especificar una variable de representación cartográfica de cuadrícula si el archivo netCDF de entrada no tiene ninguna.

  • Los tipos de entidad DSG se identifican mediante variables de Id. de instancia marcadas con un atributo cf_role. Es posible convertir varios archivos netCDF con el mismo esquema en una sola clase de entidad con un campo InstanceID único. Cada archivo netCDF debe tener una variable marcada con el mismo atributo cf_role, que se utilizará como campo de identificación en varios archivos. La agregación se producirá estrictamente a lo largo de la dimensión de la instancia de esta variable.

  • Tanto para las variables de instancia como para las de observación, la coincidencia se produce por el nombre de la variable. Es decir, si dos variables de diferentes archivos netCDF tienen el mismo nombre, se interpretará que representan lo mismo.

  • Es posible seleccionar varias variables de instancia y de observación (número de crucero, temperatura, salinidad, etc.) en los parámetros Variables de instancia (instance_variables en Python) y Variables de observación (observation_variables en Python), respectivamente.

  • Puede utilizar el parámetro Extensión de análisis (analysis_extent en Python) para especificar el área de análisis de salida explícitamente para una operación de herramienta independiente o para invalidar la configuración del entorno como parte de un flujo de trabajo. Para especificar la extensión, puede escribir los valores correspondientes, elegir la extensión de visualización, seleccionar una capa o buscar un dataset de entrada.

  • El valor predeterminado de Extensión de análisis se calcula a partir de la extensión de unión de los archivos netCDF de entrada.

  • Si la extensión no se especifica explícitamente como el valor de parámetro, se derivará de la configuración del entorno de análisis.

  • Si se especifica la opción Instancia y observación para el parámetro Esquema de salida (out_schema = "INSTANCE_AND_OBSERVATION" en Python), se crea una clase de entidad de puntos 2D que contiene toda la información de ubicaciones junto con los campos de instancia seleccionados, y se creará una tabla relacionada que contiene las variables de observación seleccionadas. También se puede crear una capa opcional, con lo cual se unirá la tabla a la clase de entidad basándose en el campo InstanceID. Si se especifica la opción Ruta y Evento (out_schema = "ROUTE_AND_EVENT" en Python), se crean dos salidas. Una es una clase de entidad de polilínea vertical con un vértice 3D y un valor de medición para cada nivel vertical. La otra salida es una tabla con valores de observación y campos from_z y to_z. Puede utilizar esta tabla para crear clases de eventos de segmentación dinámica lineales a lo largo de los perfiles. Para este esquema, no se crea ninguna capa de unión. Si se especifica la opción Punto 3D (out_schema = "POINT_3D" en Python), solo se crea una entidad de puntos 3D que contiene todos los registros (todas las ubicaciones con todos los niveles verticales).

  • Una variable de datos del archivo netCDF puede utilizar una variable grid_mapping para definir explícitamente el sistema de referencia de coordenadas (CRS) utilizado para los valores de coordenadas espaciales. El atributo epsg_code de representación cartográfica de cuadrícula se puede usar para seleccionar un GCS o PCS. Además, los atributos esri_pe_string, crs_wkt y spatial_ref de la representación cartográfica de cuadrícula se pueden utilizar para definir una cadena de caracteres WKT 1 o WKT 2. Si cualquiera de estos atributos está presente, no se utiliza ningún otro atributo para el sistema de coordenadas horizontales. Para obtener más información sobre los sistemas de referencia de coordenadas, así como los WKID compatibles, consulte el tema Sistemas de coordenadas, proyecciones y transformaciones.

  • Si los valores de coordenadas espaciales son 3D, la variable grid_mapping también debería especificar un sistema de coordenadas verticales (VCS). Un VCS es una combinación de un datum vertical, una unidad de medida lineal y la dirección (arriba o abajo) que aumentan las coordenadas verticales. El datum se obtiene normalmente de un atributo de la variable de asignación de cuadrícula y las otras propiedades se obtienen de la variable de coordenada vertical. Es posible especificar un datum vertical arbitrario utilizando una cadena de caracteres compuesta de WKT como el valor de uno de los atributos WKT indicados anteriormente. Un datum basado en la gravedad se puede especificar usando el atributo geoid_name o geopotential_datum_name. Además, es posible especificar implícitamente un datum de mareas mediante uno de los nombres estándar de las mareas para la variable de coordenadas verticales. Si no se especifica VCS y no hay una variable de coordenadas verticales, se seleccionará Profundidad del nivel de agua instantánea o Altura (epsg:5831, epsg:5829) como valor predeterminado.

Parámetros

EtiquetaExplicaciónTipo de datos
Archivos o carpetas NetCDF de entrada

Los archivos netCDF de entrada que se utilizarán para crear una clase de entidad. Se pueden utilizar archivos netCDF individuales, así como carpetas que contienen varios archivos netCDF.

Los archivos netCDF de entrada deben tener el mismo tipo de entidad y esquema DSG.

Folder; File
Espacio de trabajo objetivo

Geodatabase corporativa o de archivos en la que se crearán la tabla y clase de entidad de salida. Debe ser un espacio de trabajo existente.

Workspace
Nombre de punto o polilínea de salida

El nombre de la clase de entidad que contendrá las ubicaciones de las variables netCDF. Estas variables se agregarán como campos desde el parámetro Variables de instancia.

String
Variables de observación
(Opcional)

Las variables netCDF que contienen todos los valores de observación de cada ubicación y cada nivel vertical. Se agregarán como campos a la tabla de salida

String
Nombre de la tabla de eventos o unión de salida
(Opcional)

El nombre de la tabla de salida que contendrá todos los registros de las variables de observación.

String
Variables de instancia
(Opcional)

Las variables netCDF que diferencian a las entidades individuales y representan las ubicaciones en las que se realizan las observaciones. Estas variables se agregarán como campos a la clase de entidad de salida.

String
Esquema de salida
(Opcional)

Especifica el tipo de clase de entidad de salida que se creará.

  • Instancia y observaciónSe crea una clase de entidad que contiene los puntos 2D que contienen la ubicación de cada instancia y una tabla relacionada que contiene todas las variables de observación. Esta es la opción predeterminada.
  • Ruta y eventoSe crea una clase de entidad de polilínea vertical con vértices 3D y una tabla de eventos lineales para las variables de observación.
  • Punto 3DSe crea una clase de entidad 3D con todas las instancias en todos los niveles verticales.
String
Incluir subdirectorios
(Opcional)

Especifica si se utilizarán los archivos que residen en los subdirectorios de una carpeta de entrada.

  • Activado: se utilizarán todos los archivos netCDF de todos los subdirectorios.
  • Desactivado: solo se usarán los archivos de la carpeta de entrada. Esta es la opción predeterminada.
Boolean
Input Climate and Forecast Metadata
(Opcional)

El archivo en formato XML con una extensión .ncml que proporcionará información CF ausente o modificada para los archivos netCDF de entrada.

File
Extensión de análisis
(Opcional)

La extensión que define el área de la clase de entidad de salida.

Extent
Capa de unión de salida
(Opcional)

La capa de salida que se creará uniendo la tabla de salida con la clase de entidad de salida. Se trata de una salida opcional y solo está disponible cuando se especifica la opción Instancia y observación para el parámetro Esquema de salida.

Feature Layer

Salida derivada

EtiquetaExplicaciónTipo de datos
Punto o polilínea de salida

La clase de entidad de polilínea o punto de salida.

Feature Class
Tabla de eventos o unión de salida

La tabla de salida.

Table

arcpy.management.NetCDFProfilesToFeatureClass(in_files_or_folders, target_workspace, out_point_or_polyline_name, {observation_variables}, {out_table_name}, {instance_variables}, {out_schema}, {include_subdirectories}, {in_cf_metadata}, {analysis_extent}, {out_join_layer})
NombreExplicaciónTipo de datos
in_files_or_folders
[in_files_or_folders,...]

Los archivos netCDF de entrada que se utilizarán para crear una clase de entidad. Se pueden utilizar archivos netCDF individuales, así como carpetas que contienen varios archivos netCDF.

Los archivos netCDF de entrada deben tener el mismo tipo de entidad y esquema DSG.

Folder; File
target_workspace

Geodatabase corporativa o de archivos en la que se crearán la tabla y clase de entidad de salida. Debe ser un espacio de trabajo existente.

Workspace
out_point_or_polyline_name

El nombre de la clase de entidad que contendrá las ubicaciones de las variables netCDF. Estas variables se agregarán como campos desde el parámetro instance_variables.

String
observation_variables
[observation_variables,...]
(Opcional)

Las variables netCDF que contienen todos los valores de observación de cada ubicación y cada nivel vertical. Se agregarán como campos a la tabla de salida

String
out_table_name
(Opcional)

El nombre de la tabla de salida que contendrá todos los registros de las variables de observación.

String
instance_variables
[instance_variables,...]
(Opcional)

Las variables netCDF que diferencian a las entidades individuales y representan las ubicaciones en las que se realizan las observaciones. Estas variables se agregarán como campos a la clase de entidad de salida.

String
out_schema
(Opcional)

Especifica el tipo de clase de entidad de salida que se creará.

  • INSTANCE_AND_OBSERVATIONSe crea una clase de entidad que contiene los puntos 2D que contienen la ubicación de cada instancia y una tabla relacionada que contiene todas las variables de observación. Esta es la opción predeterminada.
  • ROUTE_AND_EVENTSe crea una clase de entidad de polilínea vertical con vértices 3D y una tabla de eventos lineales para las variables de observación.
  • POINT_3DSe crea una clase de entidad 3D con todas las instancias en todos los niveles verticales.
String
include_subdirectories
(Opcional)

Especifica si se utilizarán los archivos que residen en los subdirectorios de una carpeta de entrada.

  • INCLUDE_SUBDIRECTORIESSe utilizarán todos los archivos netCDF de todos los subdirectorios.
  • DO_NOT_INCLUDE_SUBDIRECTORIESSolo se usarán los archivos de la carpeta de entrada. Esta es la opción predeterminada.
Boolean
in_cf_metadata
(Opcional)

El archivo en formato XML con una extensión .ncml que proporcionará información CF ausente o modificada para los archivos netCDF de entrada.

File
analysis_extent
(Opcional)

La clase Extent determina la extensión del dataset ráster de salida.

El formato de la clase Extent es el siguiente:

  • Extent (XMin, YMin, XMax, YMax)

    donde:

    • XMin: el valor XMin de la extensión
    • YMin: el valor YMin de la extensión
    • XMax: el valor XMax de la extensión
    • YMax: el valor YMax de la extensión

Extent
out_join_layer
(Opcional)

La capa de salida que se creará uniendo la tabla de salida con la clase de entidad de salida. Se trata de una salida opcional y solo está disponible cuando se especifica la opción INSTANCE_AND_OBSERVATION para el parámetro out_schema.

Feature Layer

Salida derivada

NombreExplicaciónTipo de datos
out_point_or_polyline

La clase de entidad de polilínea o punto de salida.

Feature Class
out_table

La tabla de salida.

Table

Muestra de código

Ejemplo 1 de NetCDFProfilesToFeatureClass (ventana de Python)

En este ejemplo, se crea una clase de entidad y una tabla a partir de un archivo de perfil DSG netCDF del World Ocean Dataset.

import arcpy
arcpy.md.NetCDFProfilesToFeatureClass(r"C:\WOD\wod_ctd_2019.nc", r"C:\ArcGIS\Projects\output.gdb", 
									  "WOD_2019", "Salinity", None, "WOD_2019_table", 
									  "INSTANCE_AND_OBSERVATION", "INCLUDE_SUBDIRECTORIES",
									  None, "DEFAULT", "WOD_2019_layer")
Ejemplo 2 de NetCDFProfilesToFeatureClass (script independiente)

En este ejemplo, se crea una clase de entidad 3D a partir de un archivo de perfil DSG netCDF de Argo.

# Name: NetCDFProfilesToFeatureClass_Ex_02.py
# Description: Creates a 3D point feature class from a set of float data.

# Import system modules
Import arcpy  

# Set the local variables 
in_files_or_folders = r"C:\Argo" 
target_workspace = r"C:\outputs\argo.gdb" 
out_point_or_polyline_name = "argo_3d" 
observation_variables = "temperature;pressure" 
out_table_name = "" 
instance_variables = "" 
out_schema = "POINT_3D" 
include_subdirectories = "DO_NOT_INCLUDE_SUBDIRECTORIES" 
in_cf_metadata = "" 
analysis_extent = "" 
out_join_layer = "" 

# Execute NetCDFProfilesToFeatureClass
arcpy.md.NetCDFProfilesToFeatureClass(in_files_or_folders, target_workspace,
                                      out_point_or_polyline_name, observation_variables,
                                      out_table_name, instance_variables, out_schema,
                                      include_subdirectories, in_cf_metadata,
                                      analysis_extent, out_join_layer)