ArcGIS AllSource admite varios tipos de entidades de geometría de muestreo discreto (DSG, por sus siglas en inglés): punto, perfil, serie temporal y trayectoria. Los elementos de una entidad de DSG deben estar asociados a coordenadas de espacio y tiempo. Las variables de observación se geolocalizan a coordenadas espaciales con un atributo de coordenadas.
Los datos de DSG de entrada deben seguir la convención de Climate and Forecast (CF) para su uso directo. Los archivos de NetCDF creados a partir de versiones anteriores de la convención o que carezcan de algunos atributos necesarios se pueden utilizar complementando los metadatos con un archivo XML.
Las siguientes herramientas de DSG del conjunto de herramientas NetCDF crean una salida de clase de entidad a partir de varios tipos de archivos netCDF:
- Puntos NetCDF a clase de entidad
- Perfiles NetCDF a clase de entidad
- Serie temporal NetCDF a clase de entidad
- Trayectorias NetCDF a clase de entidad
Las salidas principales de las herramientas de DSG son una clase de entidad y una tabla. Existen varios esquemas de salida disponibles dependiendo del tipo de entidad de DSG.
Las siguientes secciones presentan cómo se representa un tipo de entidad de geometría de muestreo discreto en un archivo netCDF mediante la convención CF. Se describen los requisitos específicos para los tipos de entidades de DSG compatibles con ArcGIS AllSource, así como un ejemplo de cada una de ellos. También aprenderá cómo se asocian los elementos de una entidad de DSG a las coordenadas de espacio y tiempo, cómo se geolocalizan las variables de observación y cómo utilizar un atributo adicional para asignar las variables de observación a coordenadas espaciales. En el caso de los archivos netCDF que no cumplan la versión requerida de la convención CF o que carezcan de información, puede utilizar un suplemento de mecanismo o modificar los metadatos a través de un archivo externo de metadatos .xml. Se presentan detalles sobre el tipo de salida principal de las herramientas de DSG y los tipos de esquema disponibles. Dos de estas herramientas pueden generar salidas en esquemas diferentes y se describen en la sección final.
Geometrías de muestreo discreto
Las geometrías de muestreo discreto (DSG) son entidades multidimensionales almacenadas en formato netCDF. Los datasets de DSG se caracterizan por una dimensionalidad inferior en comparación con la región de espacio-tiempo que se muestrea, que suelen ser rutas por espacio-tiempo, como series temporales, perfiles verticales y trayectorias. Por ejemplo, consulte el diagrama esquemático que aparece a continuación y muestra perfiles verticales de datos oceánicos. Normalmente, los datasets de DSG son conjuntos de entidades en los que la entidad de palabra representa un único ejemplo de geometría de muestreo discreto (por ejemplo, una única trayectoria).
Los archivos netCDF típicos contienen dimensiones, variables y atributos. Los conjuntos DSG se identifican mediante variables de instancia (que pueden identificar exclusivamente una instancia DSG) y variables de observación (que almacenan los datos observados). La dimensión de la instancia (i) se utiliza para identificar una entidad concreta de entre un conjunto de entidades. Las variables que solo tienen la dimensión de instancia se conocen como variables de instancia y proporcionan metadatos que describen toda una entidad individual. El elemento de término (o) se utiliza para diferenciar los elementos de datos que componen una sola entidad. Por ejemplo, en una colección de entidades de serie temporal, cada instancia de serie temporal (i), tiene valor de datos cada hora (o).
Más información sobre los datos netCDF
Más información sobre la convención de Climate and Forecast
Más información sobre el vocabulario de netCDF
Tipos de entidades de DSG
Existen nueve tipos de entidades de DSG. Los archivos de DSG que cumplen la convención CF contienen un único tipo de entidad. Se utilizan las relaciones entre las coordenadas espaciotemporales del dataset para definir los tipos de entidades de DSG. Para los tipos de entidad de punto, serie temporal y trayectorias, en el dataset, la variable de coordenadas o coordenadas auxiliar que contenga un atributo cf_role se identifica como la variable de Id. de objeto. Esta variable debe proporcionar un identificador único para cada instancia de entidad, y la dimensión de esta variable identifica la dimensión de la instancia. Para el tipo de punto, cf_role no es necesario, pero los datos y las coordenadas deben compartir la misma dimensión de instancia.
En ArcGIS AllSource, las herramientas Puntos NetCDF a clase de entidad, Perfiles NetCDF a clase de entidad, Serie temporal NetCDF a clase de entidad y Trayectorias NetCDF a clase de entidad pueden leer cuatro tipos de entidad DSG —puntos, perfiles, series temporales y trayectorias—, respectivamente. Estas herramientas están disponibles en el conjunto de herramientas NetCDF de la caja de herramientas Multidimensional.
Punto
Un punto es un solo punto de datos, que no tiene una relación de coordenadas implícita con otros puntos. Los datos de punto representan ubicaciones dispersas, como las estaciones meteorológicas. Los datos y la coordenada deben compartir la misma dimensión de instancia, por lo que no se necesita ninguna dimensión de elemento. La estructura lógica puede representarse como sigue:
- Todas las variables con la misma dimensión de instancia: data(I), x(i), y(i), z(i, o) y t(i) Todas las variables con la misma dimensión de instancia: data(I), x(i), y(i), z(i, o) y t(i)
Los archivos de datos de punto DSG pueden contener una o varias entidades de punto. El número de puntos se especifica mediante la dimensión de instancia. Cada punto puede tener varias variables de datos. Para identificar las variables de coordenadas auxiliares espaciales y temporales pertinentes, se utilizará un atributo de coordenadas para cada variable de datos.
Explorar un punto de un archivo netCF
Tomemos como ejemplo los datos de las estaciones meteorológicas. En este ejemplo, los datos humidity(i) y temp(i) están asociados con los valores de las coordenadas time(i), lat(i), lon(i) y alt(i), que pueden utilizarse como Variables de instancia en la herramienta Puntos NetCDF a clase de entidad.
dimensions:
obs = 1234 ;
variables:
double time(obs) ;
time:standard_name = “time”;
time:long_name = "time of measurement" ;
time:units = "days since 1970-01-01 00:00:00" ;
float lon(obs) ;
lon:standard_name = "longitude";
lon:long_name = "longitude of the observation";
lon:units = "degrees_east";
float lat(obs) ;
lat:standard_name = "latitude";
lat:long_name = "latitude of the observation" ;
lat:units = "degrees_north" ;
float alt(obs) ;
alt:long_name = "vertical distance above the surface" ;
alt:standard_name = "height" ;
alt:units = "m";
alt:positive = "up";
alt:axis = "Z";
float humidity(obs) ;
humidity:standard_name = "specific_humidity" ;
humidity:coordinates = "time lat lon alt" ;
float temp(obs) ;
temp:standard_name = "air_temperature" ;
temp:units = "Celsius" ;
temp:coordinates = "time lat lon alt" ;
Perfil
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 datos de perfil son una serie de observaciones conectadas a lo largo de una línea vertical, por ejemplo, sondeos atmosféricos u oceánicos. La estructura lógica de los datos del perfil contiene dos partes:
- Variable de observación con las dimensiones de instancia y elemento: data(i,o)
- Variables de coordenadas obligatorias: x(i), y(i), z(o) y t(i)
Los archivos de datos de perfil DSG pueden contener una o varias entidades de perfil. El número de perfiles se especifica mediante la dimensión de instancia. Los perfiles pueden contener varias variables de instancia. Debe haber al menos una variable de instancia (de cualquier tipo de datos) con el atributo cf_role definido como profile_id. El valor de esta variable de instancia se utilizará para crear un campo en la clase de entidad de salida. Utilice el parámetro Variables de instancia de la herramienta Perfil NetCDF a clase de entidad para seleccionar y agregar otras variables de instancia a la clase de entidad de salida. Si un archivo de datos de perfil DSG presenta varias variables de observación, utilice el parámetro Variables de observación para seleccionarlas y agregarlas a la tabla de salida.
Explorar un perfil de un archivo netCF
Considere un ejemplo de un perfil de sondeo atmosférico. Utilice las variables pressure(i,o), temperature(i,o) y humidity(i,o) como variables de observación en la herramienta. Se asocian a los valores de coordenadas obligatorios time(i), lat(i), lon(i) y z(o) a través de la instancia (profile) o la dimensión del elemento (z). La variable profile es la variable de instancia con el atributo cf_role definido como profile_id. La dimensión de la instancia (perfil) o del elemento (z) puede ser la dimensión sin límite de netCDF.
dimensions:
z = 42 ;
profile = 142 ;
variables:
int profile(profile) ;
profile:cf_role = "profile_id";
double time(profile);
time:standard_name = "time";
time:long_name = "time" ;
time:units = "days since 1970-01-01 00:00:00" ;
float lon(profile);
lon:standard_name = "longitude";
lon:long_name = "longitude" ;
lon:units = "degrees_east" ;
float lat(profile);
lat:standard_name = "latitude";
lat:long_name = "latitude" ;
lat:units = "degrees_north" ;
float z(z) ;
z:standard_name = “altitude”;
z:long_name = "height above mean sea level" ;
z:units = "km" ;
z:positive = "up" ;
z:axis = "Z" ;
float pressure(profile, z) ;
pressure:standard_name = "air_pressure" ;
pressure:long_name = "pressure level" ;
pressure:units = "hPa" ;
pressure:coordinates = "time lon lat z" ;
float temperature(profile, z) ;
temperature:standard_name = "surface_temperature" ;
temperature:long_name = "skin temperature" ;
temperature:units = "Celsius" ;
temperature:coordinates = "time lon lat z" ;
float humidity(profile, z) ;
humidity:standard_name = "relative_humidity" ;
humidity:long_name = "relative humidity" ;
humidity:units = "%" ;
humidity:coordinates = "time lon lat z" ;
Serie temporal
Una serie temporal es una serie de puntos de datos en la misma ubicación espacial con tiempos en aumento monotónico. Los datos de las series temporales se toman con períodos de tiempo en un conjunto de puntos discretos o ubicaciones espaciales. La estructura lógica de los datos de las series temporales contiene dos partes:
- Variable de observación con las dimensiones de instancia y elemento: data(i,o)
- Variables de coordenadas obligatorias: x(i), y(i), z(i, o) y t(i)
De forma similar a los datos de perfiles DSG, los archivos de datos de series temporales DSG también pueden contener una o varias entidades de serie temporal. La dimensión de la instancia también especifica el número de series temporales. También pueden existir varias variables de instancia y variables de observación. Debe haber al menos una variable de instancia (de cualquier tipo de datos) con el atributo cf_role definido como timeseries_id. Utilice el parámetro Variables de instancia de la herramienta Serie temporal NetCDF a clase de entidad para seleccionar y agregar otras variables de instancia a la clase de entidad de salida. Utilice el parámetro Variables de observación para seleccionar y agregar variables de observación adicionales a la tabla de salida.
Explorar una serie temporal de un archivo netCF
Considere un ejemplo de una serie temporal de estaciones meteorológicas. humidity(i,o) es la variable de observación que se va a utilizar como valor del parámetro Variables de observación en la herramienta. Se asocia a los valores de coordenadas obligatorios time(o), lat(i), lon(i) y alt(i) a través de la instancia (station) o la dimensión del elemento (time). La variable station_name es la variable de instancia que tiene el atributo cf_role definido como timeseries_id. La dimensión de la instancia (estación) o del elemento (tiempo) puede ser la dimensión sin límite de netCDF.
dimensions:
station = 10 ; // measurement locations
time = UNLIMITED ;
variables:
float humidity(station,time) ;
humidity:standard_name = "specific humidity" ;
humidity:coordinates = "lat lon alt station_name" ;
humidity:_FillValue = -999.9f;
double time(time) ;
time:standard_name = "time";
time:long_name = "time of measurement" ;
time:units = "days since 1970-01-01 00:00:00" ;
float lon(station) ;
lon:standard_name = "longitude";
lon:long_name = "station longitude";
lon:units = "degrees_east";
float lat(station) ;
lat:standard_name = "latitude";
lat:long_name = "station latitude" ;
lat:units = "degrees_north" ;
float alt(station) ;
alt:long_name = "vertical distance above the surface" ;
alt:standard_name = "height" ;
alt:units = "m";
alt:positive = "up";
alt:axis = "Z";
string station_name(station) ;
station_name:long_name = "station name" ;
station_name:cf_role = "timeseries_id";
Trayectoria
Una trayectoria es una serie de puntos de datos situados a lo largo de una ruta en el espacio con tiempos en aumento monotónico. Los datos se toman a lo largo de rutas discretas a través del espacio y cada ruta consta de un conjunto de puntos conectados, por ejemplo, a lo largo de una trayectoria de vuelo o de una trayectoria de navegación. La estructura lógica de los archivos de trayectoria contiene dos partes:
- Variables de observación: data(i,o)
- Variables de coordenadas obligatorias: x(i,o), y(i,o), z(i,o) y t(i,o)
De forma similar a los datos de perfiles y series temporales DSG, los archivos de datos de trayectorias DSG también pueden contener entidades de trayectorias únicas o múltiples. Debe haber al menos una variable de instancia (de cualquier tipo de datos) con el atributo cf_role definido como trajectory_id.
Explorar una trayectoria de un archivo netCF
Considere un ejemplo de la trayectoria de un globo sonda meteorológico. NO3(i,o) and O3(i,o) son variables de observación asociadas con las variables de coordenadas obligatorias time(i,o), lat(i,o), lon(i,o) y z(i,o) a través de la instancia (trajectory) y la dimensión del elemento (obs). La variable trajectory es la variable de instancia que tiene el atributo cf_role definido como trajectory_id. La dimensión de la instancia (trajectory) o del elemento (obs) puede ser la dimensión sin límite de netCDF.
dimensions:
obs = 1000 ;
trajectory = 77 ;
variables:
string trajectory(trajectory) ;
trajectory:cf_role = "trajectory_id";
trajectory:long_name = "trajectory name" ;
double time(trajectory, obs) ;
time:standard_name = "time";
time:long_name = "time" ;
time:units = "days since 1970-01-01 00:00:00" ;
float lon(trajectory, obs) ;
lon:standard_name = "longitude";
lon:long_name = "longitude" ;
lon:units = "degrees_east" ;
float lat(trajectory, obs) ;
lat:standard_name = "latitude";
lat:long_name = "latitude" ;
lat:units = "degrees_north" ;
float z(trajectory, obs) ;
z:standard_name = “altitude”;
z:long_name = "height above mean sea level" ;
z:units = "km" ;
z:positive = "up" ;
z:axis = "Z" ;
float O3(trajectory, obs) ;
O3:standard_name = “mass_fraction_of_ozone_in_air”;
O3:long_name = "ozone concentration" ;
O3:units = "1e-9" ;
O3:coordinates = "time lon lat z" ;
float NO3(trajectory, obs) ;
NO3:standard_name = “mass_fraction_of_nitrate_radical_in_air”;
NO3:long_name = "NO3 concentration" ;
NO3:units = "1e-9" ;
NO3:coordinates = "time lon lat z" ;
Sistema de referencia de coordenadas
Todas las entidades de un archivo de DSG se deben asociar a un conjunto extensible de variables de instancia que identifiquen de forma única a la entidad y proporcionen otros metadatos necesarios para describirla. Cada elemento de cada entidad se debe asociar con sus coordenadas de espacio y tiempo y con la entidad que lo contiene. El atributo coordinates se debe adjuntar a todas las variables de observación para indicar las variables de coordenadas espaciotemporales necesarias para geolocalizar los datos. El atributo grid_mapping adjunto a las variables de observación también se utiliza en muchos casos para especificar valores de coordenadas espaciales en archivos de DSG.
Para declarar explícitamente un sistema de referencia de coordenadas (CRS), se puede definir una variable de representación cartográfica de cuadrícula a través de atributos simples o múltiples. El atributo epsg_code de la variable de asignación de cuadrícula se puede utilizar para especificar un CRS. Por ejemplo, el Sistema geodésico mundial de 1984 (WGS84), que se utiliza comúnmente en el sistema de navegación por satélite GPS, se puede especificar de la siguiente manera:
int crs ;
crs:epsg_code = "EPSG:4326" ;
Los atributos de variable de representación cartográfica de cuadrícula esri_pe_string, crs_wkt y spatial_ref se pueden utilizar para definir una cadena de caracteres de texto conocido 1 (WKT 1) o texto conocido 2 (WKT 2). Normalmente, los productos de ArcGIS utilizan WKT 1; sin embargo, dado que las herramientas admiten ambas variantes, se pueden utilizar para el valor de este atributo. Encontrará más información sobre las diferencias de formato en un PDF de los procedimientos del taller técnico de Esri: Estándares de sistemas de coordenadas: una introducción a los estándares y su implementación en la plataforma ArcGIS.
Si existen varios atributos en la variable de representación cartográfica de cuadrícula, se construye una referencia espacial utilizando el siguiente orden de esquemas de prioridad:
- Código EPSG
- Sistema de coordenadas proyectadas (PCS) con nombre
- Sistema de coordenadas geográficas (GCS) con nombre y parámetros de proyección
- Radio de esferoide o de esfera y parámetros de proyección
- Datum horizontal y parámetros de proyección
- GCS con nombre y parámetros de proyección
- Radio de esferoide o de esfera y parámetros de proyección
- Datum horizontal y parámetros de proyección
Si el sistema de coordenadas se especifica utilizando las opciones 1 y 2, se ignoran todos los demás atributos de representación cartográfica de la cuadrícula. Las opciones 3, 4 y 5 se usan para construir un GCS y las opciones 6, 7 y 8 se usan para construir un PCS.
Aunque se puede usar la representación cartográfica de la cuadrícula para especificar tanto un PCS y como un GCS, los detalles necesarios son diferentes entre los dos. Si se especifica un GCS, se utiliza normalmente una variable de representación cartográfica de cuadrícula para definir la figura de la Tierra (datum) (elipsoide WGS84, esfera, etc.). Al especificar un PCS (las coordenadas espaciales horizontales son valores Este y Norte en una proyección de mapa), una variable de representación cartográfica de cuadrícula debe declarar claramente más detalles de una proyección de mapa concreta.
En la siguiente tabla se muestra la forma de concordar una proyección grid_mapping_name con una proyección utilizada por los productos de ArcGIS.
Nombre de representación cartográfica de cuadrícula | Nombre de proyección Esri (y WKID Esri) |
---|---|
albers_conical_equal_area | 43007 Albers |
azimuthal_equidistant | 43032 Azimuthal_Equidistant |
lambert_azimuthal_equal_area | 43033 Lambert_Azimuthal_Equal_Area |
lambert_conformal_conic | 43020 Lambert_Conformal_Conic |
lambert_cylindrical_equal_area | 43034 Cylindrical_Equal_Area |
mercator | 43069 Mercator_Variant_A (factor de escala y meridiano central) o bien 43004 Mercator (paralelo estándar y meridiano central) |
oblique_mercator | 43037 Hotine_Oblique_Mercator_Azimuth_Center |
Orthographic | 43058 Local |
polar_stereographic | 43066 Polar_Stereographic_Variant_A (scale_factor_at_projection_origin) o bien 43067 Polar_Stereographic_Variant_B (paralelo estándar) |
Sinusoidal | 43008 Sinusoidal |
transverse_mercator | 43006 Transverse_Mercator |
Cada uno de los nombres de representación cartográfica de cuadrícula enumerados en la tabla anterior presenta un conjunto único de atributos que se utilizan para asignar valores a los parámetros de la asignación. Dado que muchos de los atributos se comparten entre varias representaciones cartográficas, la siguiente tabla contiene la forma de asignarlos a los parámetros de proyección Esri.
Nombre de atributo de representación cartográfica de cuadrícula | Nombre e índice del parámetro de proyección |
---|---|
false_easting | 0 False_Easting |
false_northing | 1 False_Northing |
longitude_of_central_meridian | 2 Central_Meridian |
latitude_of_projection_origin | 6 Latitude_Of_Origin |
longitude_of_projection_origin | 2 Central_Meridian |
scale_factor_at_projection_origin | 5 Scale_Factor |
azimuth_of_central_line | 7 Azimuth |
standard_parallel | 3 Paralelo estándar 1, latitud del primer punto 4 Paralelo estándar 2, latitud del segundo punto |
straight_vertical_longitude_from_pole | 2 Central_Meridian |
scale_factor_at_central_meridian | 5 Scale_Factor |
Además de un sistema de coordenadas horizontales, también debe especificar un sistema de coordenadas verticales (VCS), ya que se pueden generar clases de entidad 2D o 3D. Típicamente, un VCS es una combinación de un datum vertical, una unidad de medida lineal y la dirección (arriba o abajo) en la que aumentan las coordenadas verticales. Los productos de ArcGIS utilizan las unidades y la dirección de eje para renderizar los datos correctamente en una vista de escena. Se necesita un VCS si una de las variables de coordenadas que se van a convertir es vertical y especifica una unidad lineal (lo cual no es el caso de las unidades de presión, por ejemplo).
Existen varias formas de especificar un VCS.
Una manera es utilizar un nombre estándar que indique un datum de marea estándar. En este caso, no se requiere ninguna otra especificación de un datum vertical. Los datums de marea son metadatos descriptivos. Un dataset con un datum vertical de marea no se puede transformar en otro datum vertical. Los nombres estándar que seleccionan datums de marea son los siguientes:
- tidal_sea_surface_height_above_lowest_astronomical_tide
- tidal_sea_surface_height_above_mean_higher_high_water
- tidal_sea_surface_height_above_mean_lower_low_water
- tidal_sea_surface_height_above_mean_low_water_springs
- tidal_sea_surface_height_above_mean_sea_level
Otra forma consiste en utilizar los atributos esri_pe_string, crs_wkt y spatial_ref con un valor WKT compuesto para especificar un VCS.
Una tercera forma es utilizar el atributo geoid_name o geopotential_datum_name en la variable grid_mapping. La lista actual de nombres de datum verticales admitidos está disponible en formato PDF en el sitio de ArcGIS Developer.
Nota:
Debe haber iniciado sesión en una cuenta de ArcGIS Online para descargar el archivo PDF.
Se utilizarán Instantaneous_Water_Level_Height (WKID 5829) o Instantaneous_Water_Level_Depth (WKID 5831) como datum vertical predeterminado si no se ha especificado ninguno. Al igual que con los datums de marea, se trata de metadatos descriptivos y no admiten directamente las conversiones automáticas a otros datums verticales. Resultan útiles para conservar la unidad vertical y la dirección vertical de las coordenadas en aumento.
Nota:
El atributo standard_name de la variable de coordenada vertical debe ser compatible con el datum especificado. Por ejemplo, ya que se contradicen, se producirá un error de validación de la herramienta si se utiliza el nombre estándar height_above_reference_ellipsoid junto con un atributo geoid_name cuyo valor sea EGM2008_Geoid.
En algunos casos, las coordenadas verticales dimensionales son una función de la ubicación horizontal y de los parámetros que dependen de la ubicación vertical. Actualmente, las herramientas de DSG no admiten estas coordenadas verticales paramétricas. Encontrará más información acerca de ellas en la sección 4.3.3 Coordenadas verticales paramétricas del sitio de convenciones de CF.
Metadatos complementarios de Climate and Forecast
La convención de CF se utiliza para definir los metadatos que proporcionan una descripción definitiva de los datos de cada variable y sus propiedades espaciales y temporales. Esta convención puede ayudarle a determinar qué cantidades son comparables entre diferentes fuentes de datos.
Más información sobre las convenciones de netCDF
El nombre de la convención se presenta como un atributo global en un archivo netCDF. Para poder leerlos con las herramientas de DSG, los datos de DSG de entrada deben seguir la convención de CF 1.6 o una versión posterior.
Muchos archivos netCDF contienen variables de instancia DSG y de observación basadas en una convención de CF anterior o carecen de los atributos necesarios. Para utilizar estos archivos netCDF no compatibles con las convenciones de CF como entrada de las herramientas de DSG de ArcGIS AllSource, especifique un archivo XML de metadatos adicional para ellos mediante el parámetro Input Climate and Forecast Metadata. El archivo de metadatos se debe escribir utilizando el lenguaje de marcado NetCDF (NcML).
Lenguaje de marcado NetCDF
El NcML es una representación XML de metadatos netCDF que le permite definir o redefinir los metadatos ausentes o incorrectos del archivo netCDF de entrada. Puede utilizar un archivo NcML para modificar, eliminar y reestructurar variables.
El parámetro Input Climate and Forecast Metadata le permite utilizar archivos netCDF no compatibles con las convenciones de CF sin tener que modificar ninguno de los archivos netCDF de entrada ni hacer que sean compatibles con las convenciones de CF. No es necesario crear un NcML individual para cada archivo netCDF no compatible de entrada. Se aplicará el mismo NcML a todas las entradas.
Las siguientes secciones describen cómo resolver escenarios comunes con NcML.
Ejemplo de coordenadas ausentes
Considere la siguiente variable de observación Tmax (temperatura máxima diaria) en un archivo de DSG de serie temporal de una estación meteorológica. No contiene ningún atributo de coordenadas adjunto.
float Tmax(stn_num, time) ;
Tmax:units = "C" ;
Tmax:long_name = "daily max temperature" ;
Tmax:_FillValue = 1.e+20f ;
Para que los datos sean legibles por la herramienta de DSG, agregue el siguiente texto al archivo XML de metadatos de Climate and Forecast:
<variable name="Tmax">
<attribute name="coordinates" type="String" value="time lon lat"/>
</variable>
Las correcciones del NcML anteriores no enumeraban la variable elev, por lo que se generará una clase de entidad 2D. Para obtener una clase de entidad 3D, agregue la variable elev.
<variable name="Tmax">
<attribute name="coordinates" type="String" value="time lon lat elev"/>
</variable>
Ejemplo de representación cartográfica de cuadrícula ausente
El siguiente archivo de DSG representa datos de trayectorias de pesquerías. No existe ninguna variable de representación cartográfica de cuadrícula.
dimensions:
node = 19483 ;
time = UNLIMITED ; // (24 currently)
variables:
float X(node) ;
X:long_name = "East-West Coordinate" ;
X:projection = "UTM Zone 10N" ;
X:units = "meters" ;
float Y(node) ;
Y:long_name = "North-South Coordinate" ;
Y:projection = "UTM Zone 10N" ;
Y:units = "meters" ;
float time(time) ;
time:units = "seconds since 2017-01-01 00:00" ;
time:long_name = "Time" ;
time:calendar = "Local" ;
float salinity(time, siglay, node) ;
salinity:long_name = "Salinity" ;
salinity:units = "parts per thousand" ;
salinity:grid = "fvcom_grid" ;
Para definir el sistema de coordenadas horizontales de la salida como UTM Zone 10N (epsg_code:26910), agregue la siguiente variable:
<variable name="crs" type="char">
<attribute name="epsg_code" type="String" value="EPSG:26910"/>
</variable>
A continuación, modifique la variable de observación (salinity) para asociarla a esta variable:
<variable name="salinity">
<attribute name="grid_mapping" type="String" value="crs"/>
</variable>
Ejemplo de rol de CF definido incorrectamente
Un archivo de DSG puede contener un atributo cf_role mal definido. En el siguiente ejemplo de trayectorias de DSG, la coordenada de la instancia tiene el atributo cf_role incorrectamente designado como profile_id, cuando se debería designar como trajectory_id.
int wod_unique_cast(casts) ;
wod_unique_cast:cf_role = "profile_id" ;
Para cambiar un archivo de DSG de perfil predefinido a un archivo de trayectoria de DSG, agregue la siguiente variable:
<variable name="wod_unique_cast">
<attribute name="cf_role" type="string" value="trajectory_id"/>
</variable>
Salidas de las herramientas de DSG
Todas las herramientas de DSG generan una clase de entidad de salida principal y una o dos salidas opcionales. Si no se selecciona ninguna de las variables de observación o de instancia, solo se crea una clase de entidad de salida. La clase de entidad de salida tendrá al menos un campo adicional. Uno es el campo InstanceID, que es un identificador único para las entidades de DSG creadas por las herramientas de DSG. Para las tres herramientas de DSG distintas de Puntos NetCDF a clase de entidad, se crea otro campo adicional a partir de la variable de instancia del archivo netCDF de entrada que tiene el atributo cf_role. El alias del campo será el mismo que el nombre de la variable.
Para ilustrar la naturaleza de la entidad de salida de las herramientas de DSG, se muestran a continuación ejemplos de los primeros registros de la tabla de atributos de la clase de entidad de salida. En cada caso, se identifica la herramienta y se resaltan los campos específicos mencionados. Estos ejemplos se crean usando la configuración predeterminada de cada herramienta (por ejemplo, el esquema de salida predeterminado para la herramienta Perfil NetCDF a clase de entidad es Observación e Instancia).
El primer ejemplo corresponde a la tabla de atributos de una clase de entidad de salida de la herramienta Serie temporal NetCDF a clase de entidad que utiliza datos de estaciones meteorológicas. Los campos adicionales son InstanceID y stnID, siendo el campo stnID el nombre de la variable de instancia que tiene el atributo cf_role definido como timeseries_id.
La tabla de atributos de la clase de entidad de salida de la herramienta Perfil NetCDF a clase de entidad tendrá otro campo, Time (UTC), que indica la hora a la que se crean los datos de cada instancia de perfil.
La tabla de atributos de clase de entidad de salida de la herramienta Trayectorias NetCDF a clase de entidad tendrá dos campos adicionales, From Time (UTC) y To Time (UTC), que indican la hora de inicio y finalización de cada trayectoria. Estos campos de hora se crean a partir de la variable de coordenada de tiempo de los archivos netCDF de entrada. Como se indica en el alias de campo, estos campos de hora están en formato de hora universal coordinada (UTC).
Para cada variable de instancia especificada en la herramienta, se agrega un campo adicional a la tabla de atributos de la clase de entidad de salida con el nombre de variable como nombre del campo. El alias de campo es el nombre estándar o largo, seguido del nombre de la variable entre paréntesis. Si no se define ni el nombre estándar ni el nombre largo, el alias de campo es el nombre de la variable. La tabla de atributos de clase de entidad de salida de la herramienta Serie temporal NetCDF a clase de entidad que utiliza datos de estaciones meteorológicas tiene el campo adicional stnName. Tendrá Station Name como alias, que es el nombre largo de la variable de instancia seleccionada.
Para especificar una variable de observación, debe especificar el nombre de la tabla de salida y, opcionalmente, el nombre de una capa de entidades. La salida de capa de entidades opcional está disponible para las herramientas Perfil NetCDF a clase de entidad y Serie temporal NetCDF a clase de entidad.
La tabla de salida tendrá al menos dos campos adicionales. El primero es el campo ObservationID creado por la herramienta de DSG para asignar un Id. único a cada registro de observación. El segundo campo es InstanceID, que es el mismo que la salida de clase de entidad y se utiliza como clave externa para unir la clase de entidad de instancia a la tabla de observaciones.
Dependiendo de la herramienta, la salida de la tabla tendrá campos adicionales diferentes. Las variables de coordenadas asociadas con las dimensiones del elemento se convierten en nuevos campos en la tabla de salida. De forma similar a la forma de ilustrar la naturaleza de la entidad de salida de las herramientas de DSG, también se muestran ejemplos de los primeros registros de la tabla de salida. En cada caso, se identifica la herramienta y se resaltan los campos específicos mencionados.
Se agrega el campo Time (UTC) creado a partir de la coordenada de tiempo para la herramienta Serie temporal NetCDF a clase de entidad que indica la hora de cada dato empleado en una serie temporal. El siguiente ejemplo es una tabla de salida creada a partir de esta herramienta utilizando datos de estaciones meteorológicas. Los campos adicionales son ObservationID, InstanceID, Time (UTC) y daily max temperature (el nombre estándar de la variable de observación seleccionada Tmax).
En la tabla de salida Trayectorias NetCDF a clase de entidad, se agregan los campos Time (UTC), From Time (UTC) y To Time (UTC), así como cualquier variable de observación seleccionada. Los campos From Time (UTC) y To Time (UTC) son los puntos medios de hora entre observaciones.
Se agrega un campo Z para la herramienta Perfil NetCDF a clase de entidad que indica la profundidad o altura a la que se toma cada dato de un perfil. Las variables de observación seleccionadas también se agregarán como campos nuevos.
Si se especifica el parámetro Capa de unión de salida, las herramientas Serie temporal NetCDF a clase de entidad y Perfil NetCDF a clase de entidad crean una capa de entidades opcional utilizando el nombre especificado en este parámetro. La capa de entidades de salida será la clase de entidad de salida unida a la tabla de salida utilizando el campo InstanceID como clave. La siguiente es una parte de la tabla de atributos de capa de entidades de salida de la herramienta Perfil NetCDF a clase de entidad:
Para la herramienta Puntos NetCDF a clase de entidad, se crea un campo InstanceID adicional en la tabla de clases de entidades de salida, así como todos los valores del parámetro Variables de instancia seleccionado.
Especificar un esquema de salida adecuado
Las herramientas de DSG permiten producir distintos tipos de esquema de salida en función de la aplicación deseada. La herramienta Serie temporal NetCDF a clase de entidad solo produce un único tipo de esquema. Las herramientas Perfil NetCDF a clase de entidad y Trayectorias NetCDF a clase de entidad cuentan con un parámetro que se puede utilizar para seleccionar un tipo de esquema.
Esquema de salida de la herramienta Perfiles NetCDF a clase de entidad
En la herramienta Perfil NetCDF a clase de entidad, puede elegir el tipo de esquema de salida con el parámetro Esquema de salida: Instancia y observación, Ruta y evento o Punto 3D. La opción Instancia y observación es el tipo de esquema predeterminado. Los resultados de este parámetro se describen en la sección anterior dedicada a las salidas de las herramientas de DSG.
Si el parámetro Esquema de salida se cambia a Ruta y evento, la herramienta crea una clase de entidad de salida y una tabla de eventos de salida con distintas estructuras. No existe ninguna salida opcional disponible. La clase de entidad de salida será una polilínea vertical 3D con profundidad (valores z) como valor de medición en los vértices. Se agregan los mismos campos a la clase de entidad de salida que agrega la opción Instancia y observación.
La tabla de salida tendrá dos campos nuevos, FromZ y ToZ, que se pueden utilizar para eventos lineales a lo largo de los perfiles. Los valores de campo FromZ y ToZ son puntos medios entre los valores z de observación, excepto el primer valor FromZ y el último valor ToZ, que son los mismos que los valores z. La tabla de salida de este esquema también se puede utilizar también con las herramientas de referenciación lineal para crear entidades de eventos lineales.
Más información sobre la referenciación lineal
La siguiente imagen muestra una parte de una tabla de atributos de salida de ejemplo:
Si se cambia el parámetro Esquema de salida a Punto 3D, se crea una clase de entidad de puntos 3D (sin ninguna tabla o salida de capa de unión opcional disponible). La tabla de atributos de la clase de entidad de salida tendrá campos adicionales creados a partir de las variables de observación seleccionadas en comparación con la opción Instancia y observación. Aunque la tabla de atributos de la clase de entidad de salida con este esquema también presenta el campo InstanceID, no todos los valores serán únicos.
Existen ciertas directrices generales que se deben seguir para ayudar a determinar qué esquema utilizar.
A menudo, la opción Instancia y observación constituye la solución más eficiente. La clase de entidad de salida mantiene la ubicación de cada perfil y los datos de observación se almacenan en una tabla separada. Sin embargo, aunque los datos de observación de la tabla de salida se pueden unir a la clase de entidad de salida, la ausencia de un Id. de objeto único en la capa de entidades de salida dificulta su uso en las herramientas que requieren un Id. único.
Si es necesario utilizar las salidas de esta herramienta en otra herramienta que requiera que los valores del campo Id. sean únicos, utilice la opción Punto 3D. La clase de entidad de salida resultante puede ser mayor que los resultados si se utiliza la opción Instancia y observación y puede dar lugar a tiempos de procesamiento más largos.
Si se espera una salida de polilínea, utilice la opción Ruta y evento. Las líneas verticales 3D pueden ilustrar mejor las propiedades verticales de cada perfil.
Esquema de salida de la herramienta Trayectorias NetCDF a clase de entidad
En la herramienta Trayectorias NetCDF a clase de entidad, existen dos tipos de esquemas de salida disponibles mediante el parámetro Esquema de salida: Ruta y evento y Punto. La opción Ruta y evento es el tipo de esquema predeterminado. Los resultados de esta opción se describen en la sección anterior dedicada a las salidas de las herramientas de DSG.
Si el parámetro Esquema de salida se cambia a Punto, la herramienta crea una clase de entidad de puntos 2D o 3D que ilustra las ubicaciones a lo largo de cada trayectoria en los que se realizan las observaciones. En la tabla de atributos de clase de entidad de salida de ejemplo que se muestra a continuación, se crea un campo Time (UTC) a partir de la variable de coordenadas de tiempo en lugar de los campos From Time (UTC) y To Time (UTC) que se crean con la opción Ruta y evento. También se incluirán los campos creados a partir de las variables de observación seleccionadas.
Para utilizar toda la ruta de la trayectoria, cambie el parámetro Esquema de salida a Ruta y evento. Utilice esta opción para utilizar la salida con herramientas de referenciación lineal para crear entidades de eventos lineales. Si se necesitan puntos individuales de cada ubicación a lo largo del recorrido, utilice la opción Punto.
Referencias
- Convenciones de metadatos de CF. Último acceso el 18 de abril 2022 en https://cfconventions.org/.
- Convenciones de NetCDF. Último acceso el 18 de abril 2022 en https://www.unidata.ucar.edu/software/netcdf/conventions.html.
- Esquema anotado para NcML. Último acceso el 18 de abril 2022 en https://docs.unidata.ucar.edu/netcdf-java/current/userguide/annotated_ncml_schema.html.
- Tutorial básico de NcML. Último acceso el 18 de abril 2022 en https://docs.unidata.ucar.edu/netcdf-java/current/userguide/basic_ncml_tutorial.html.