Fonctionnement des outils de géométrie d’échantillonnage discret NetCDF

ArcGIS Pro prend en charge plusieurs types d’entités de géométrie d’échantillonnage discret : point, profil, série chronologique et trajectoire. Les éléments d’une entité de géométrie d’échantillonnage discret doivent être associés aux coordonnées d’espace et de temps. Les variables d’observation sont géolocalisées sur des coordonnées spatiales avec un attribut de coordonnées.

Les données de géométrie d’échantillonnage discret en entrée doivent suivre la convention des métadonnées des données de climat et de prévision pour être utilisées directement. Les fichiers NetCDF créés à partir de versions antérieures de la convention ou qui ne comportent pas certains attributs nécessaires peuvent être rendus utilisables en complétant les métadonnées avec un fichier XML.

Les outils de géométrie d’échantillonnage discret suivants du jeu d’outils NetCDF créent une sortie de classe d’entités à partir de plusieurs types de fichiers netCDF :

Les sorties principales des outils de géométrie d’échantillonnage discret sont une classe d’entités et une table. Plusieurs structures en sortie sont disponibles, selon le type d’entité de géométrie d’échantillonnage discret.

Les sections suivantes indiquent comment un type d’entités de géométrie d’échantillonnage discret est représenté dans un fichier netCDF avec la convention des métadonnées des données de climat et de prévision. Les exigences spécifiques des types d’entités de géométrie d’échantillonnage discret que ArcGIS Pro prend en charge sont décrites, et un exemple de chaque cas est fourni. Vous apprendrez comment les éléments dans une entité de géométrie d’échantillonnage discret sont associés aux coordonnées d’espace et de temps, comment ils sont géolocalisés par rapport aux variables d’observation et comment utiliser un attribut supplémentaire pour apparier les variables d’observation aux coordonnées spatiales. Pour les fichiers netCDF qui ne sont pas compatibles avec la version requise de la convention des métadonnées des données de climat et de prévision, ou qui sont incomplets en termes d’informations, vous pouvez utiliser une méthode complémentaire ou modifier les métadonnées via un fichier .xml de métadonnées externe. Le type de sortie principale des outils de géométrie d’échantillonnage discret et les types de structure disponibles sont présentés en détail. Deux des outils peuvent générer une sortie dans différentes structures, ils font l’objet de la dernière section.

Géométries d’échantillonnage discret

Les géométries d’échantillonnage discret sont des entités multidimensionnelles stockées au format netCDF. Les jeux de données de géométrie d’échantillonnage discret se caractérisent par une dimensionnalité inférieure par rapport à la région spatio-temporelle qui est échantillonnée. Il s’agit généralement de chemins à travers l’espace-temps tels que des séries chronologiques, des profils verticaux et des trajectoires. Consultez le diagramme schématique ci-dessous illustrant les profils verticaux des données océaniques pour voir un exemple. Les jeux de données de géométrie d’échantillonnage discret sont généralement des collections d’entités, dans lesquelles le mot entité représente un exemple unique de géométrie d’échantillonnage discret (comme une trajectoire unique).

Diagramme schématique illustrant les profils verticaux des données océaniques
Un diagramme schématique illustre comment les profils verticaux des océans sont collectés via des capteurs positionnés à l’aide de navires.

Un fichier netCDF contient généralement des dimensions, des variables et des attributs. Une collection de géométrie d’échantillonnage discret est identifiée par des variables d’instance (qui peuvent identifier de manière unique une instance de géométrie d’échantillonnage discret) et des variables d’observation (qui stockent les données observées). La dimension d’instance (i) permet d’identifier une entité en particulier dans une collection d’entités. Les variables dotées uniquement de la dimension d’instance s’appellent des variables d’instance. Elles fournissent les métadonnées qui décrivent une entité individuelle entière. L’élément de période (o) permet de distinguer les éléments de données qui composent une entité unique. Par exemple, dans une collection d’entités de séries chronologiques, chaque instance de série chronologique, (i), comporte une valeur de données à chaque heure (o).

Pour en savoir plus sur les données netCDF

En savoir plus sur la convention des métadonnées des données de climat et de prévision

Pour en savoir plus sur le vocabulaire netCDF

Types d’entités de géométrie d’échantillonnage discret

Il existe neuf types d’entités de géométrie d’échantillonnage discret. Un fichier de géométrie d’échantillonnage discret compatible avec la convention des métadonnées des données de climat et de prévision ne comprend qu’un seul type d’entité. Les relations parmi les coordonnées spatio-temporelles du jeu de données permettent de définir les types d’entités de géométrie d’échantillonnage discret. Pour les types d’entités profil, série chronologique et trajectoire, dans le jeu de données, la variable de coordonnée ou de coordonnée auxiliaire qui contient un attribut cf_role est identifiée comme variable d’ID d’objet. Cette variable doit fournir un identifiant unique pour chaque instance d’entité, et la dimension de cette variable identifie la dimension d’instance. Pour le type point, cf_role n’est pas obligatoire, mais les données et les coordonnées doivent partager la même dimension d’instance.

Dans ArcGIS Pro, les outils Points NetCDF vers classe d’entités, Profils NetCDF vers classe d’entités, Séries chronologiques NetCDF vers classe d’entités et Trajectoires NetCDF vers classe d’entités peuvent lire respectivement quatre types d’entités de géométrie d’échantillonnage discret : points, profils, séries chronologiques et trajectoires. Ces outils sont disponibles dans le jeu d’outils NetCDF de la boîte à outils Multidimensional.

Point

Un point est un point de données unique, qui n’a aucune relation de coordonnées implicite avec d’autres points. Les données ponctuelles représentent des emplacements dispersés, comme des stations météorologiques. Les données et les coordonnées doivent partager la même dimension d’instance, de sorte qu’aucune dimension d’élément n’est nécessaire. La structure logique peut être représentée de la façon suivante :

  • Toutes les variables avec la même dimension d’instance : data(I), x(i), y(i), z(i, o) et t(i) Toutes les variables avec la même dimension d’instance : data(I), x(i), y(i), z(i, o) et t(i)

Un fichier de données de points de géométrie d’échantillonnage discret peut contenir des entités points uniques ou multi-points. Le nombre de points est spécifié par la dimension d’instance. Chaque point peut comporter plusieurs variables de données. Pour identifier les variables de coordonnées auxiliaires d’espace et de temps pertinentes, un attribut de coordonnées est utilisé pour chaque variable de données.

Explorer un point dans un fichier netCF

Prenons l’exemple de données de station météorologique. Dans cet exemple, les données humidity(i) et temp(i) sont associées aux valeurs de coordonnées time(i), lat(i), lon(i) et alt(i), qui peuvent être utilisées en tant que Variables d’instance dans l’outil Points NetCDF vers classe d’entités.


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" ;

Profil

Un profil est un ensemble ordonné de points de données le long d’une ligne verticale, à une position horizontale fixe et à une heure fixe. Les données de profil sont une série d’observations connectées le long d’une ligne verticale, par exemple un sondage atmosphérique ou océanique. La structure logique des données de profil se décompose en deux parties :

  • Variable d’observation avec à la fois des dimensions d’instance et d’élément : data(i,o)
  • Variables de coordonnées obligatoires : x(i), y(i), z(o) et t(i)

Un fichier de données de profil de géométrie d’échantillonnage discret peut contenir une seule ou plusieurs entités de profil. Le nombre de profils est spécifié par la dimension d’instance. Les profils peuvent comporter plusieurs variables d’instance. Au moins une variable d’instance doit être présente (quel que soit son type de données) avec l’attribut cf_role défini sur profile_id. La valeur dans cette variable d’instance servira à créer un champ dans la classe d’entités en sortie. Utilisez le paramètre Variables d’instance dans l’outil Profil NetCDF vers classe d’entités pour sélectionner et ajouter d’autres variables d’instance à la classe d’entités en sortie. Si un fichier de données de profil de géométrie d’échantillonnage discret comporte plusieurs variables d’observation, utilisez le paramètre Variables d’observation pour les sélectionner et les ajouter dans la table en sortie.

Explorer un profil dans un fichier netCF

Prenons comme exemple le profil d’un sondage atmosphérique. Utilisez les variables pressure(i,o), temperature(i,o) et humidity(i,o) comme variables d’observation dans l’outil. Elles sont associées aux valeurs de coordonnées obligatoires time(i), lat(i), lon(i) et z(o) à travers la dimension d’instance (profil) ou d’élément (z). La variable profile est la variable d’instance avec l’attribut cf_role défini sur profile_id. La dimension d’instance (profile) ou d’élément (z) peut être la dimension illimitée 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" ;

Série chronologique

Une série chronologique est une série de points de données situés à la même localisation spatiale avec des heures qui augmentent de manière monotone. Les données de série chronologique sont prises sur des périodes de temps à un ensemble de points discrets ou de localisation spatiales. La structure logique des données de série chronologique se décompose en deux parties :

  • Variable d’observation avec à la fois des dimensions d’instance et d’élément : data(i,o)
  • Variables de coordonnées obligatoires : x(i), y(i), z(i, o) et t(i)

Comme des données de profil de géométrie d’échantillonnage discret, un fichier de données de séries chronologiques de géométrie d’échantillonnage discret peut également contenir une seule ou plusieurs entités de série chronologique. Le nombre de séries chronologiques est également spécifié par la dimension d’instance. Il peut également y avoir plusieurs variables d’instance et variables d’observation. Au moins une variable d’instance doit être présente (quel que soit son type de données) avec l’attribut cf_role défini sur timeseries_id. Utilisez le paramètre Variables d’instance dans l’outil Séries chronologiques NetCDF vers classe d’entités pour sélectionner et ajouter d’autres variables d’instance à la classe d’entités en sortie. Utilisez le paramètre Variables d’observation pour sélectionner et ajouter des variables d’observation supplémentaires dans la table en sortie.

Explorer une série chronologique dans un fichier netCF

Prenons comme exemple une série chronologique d’une station météorologique. La variable humidity(i,o) est la variable d’observation à utiliser comme valeur du paramètre Variables d’observation dans l’outil. Elle est associée aux valeurs de coordonnées obligatoires time(o), lat(i), lon(i) et alt(o) à travers la dimension d’instance (station) ou d’élément (time). La variable station_name est la variable d’instance avec l’attribut cf_role défini sur timeseries_id. La dimension d’instance (station) ou d’élément (time) peut être la dimension illimitée 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";

Trajectoire

Une trajectoire est une série de points de données le long d’un chemin à travers l’espace avec des heures qui augmentent de manière monotone. Les données de trajectoire sont prises le long de chemins discrets à travers l’espace, chaque chemin constituant un ensemble connecté de points appelé une trajectoire, par exemple le long d’une trajectoire de vol ou d’un couloir maritime. La structure logique des fichiers de trajectoire se décompose en deux parties :

  • Variables d’observation : data(i,o)
  • Variables de coordonnées obligatoires : x(i,o), y(i,o), z(i,o) et t(i,o)

Comme des données de profil de géométrie d’échantillonnage discret ou de série chronologique, un fichier de données de trajectoires de géométrie d’échantillonnage discret peut également contenir une seule ou plusieurs entités de trajectoire. Au moins une variable d’instance doit être présente (quel que soit son type de données) avec l’attribut cf_role défini sur trajectory_id.

Explorer une trajectoire dans un fichier netCF

Prenons comme exemple la trajectoire d’un ballon-sonde. NO3(i,o) et O3(i,o) sont des variables d’observation associées aux variables de coordonnées obligatoires time(i,o), lat(i,o), lon(i,o) et z(i,o) à travers la dimension d’instance (trajectoire) et d’élément (obs). La variable trajectory est la variable d’instance avec l’attribut cf_role défini sur trajectory_id. La dimension d’instance (trajectory) ou d’élément (obs) peut être la dimension illimitée 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" ;

Système de coordonnées de référence

Chaque entité dans un fichier de géométrie d’échantillonnage discret doit être associée à une collection extensible de variables d’instance qui identifient de manière unique l’entité et fournissent d’autres métadonnées pour la décrire. Chaque élément de chaque entité doit être associé à ses coordonnées d’espace et de temps et à l’entité dans lequel il se trouve. L’attribut coordinates doit être attaché à chaque variable d’observation pour indiquer les variables de coordonnées spatio-temporelles nécessaires pour géolocaliser les données. L’attribut grid_mapping attaché aux variables d’observation est également utilisé dans de nombreux cas pour spécifier les valeurs de coordonnées spatiales dans les fichiers de géométrie d’échantillonnage discret.

Pour déclarer explicitement un système de coordonnées de référence, vous pouvez définir une variable d’appariement de grille via un seul ou plusieurs attributs. L’attribut epsg_code dans la variable d’appariement de grille peut servir à spécifier un système de référentiel de coordonnées. Par exemple, le système World Geodetic System 1984 (WGS84), qui est généralement utilisé dans le système de navigation par satellite GPS, peut être spécifié comme suit :


int crs ; 
    crs:epsg_code = "EPSG:4326" ;

Les attributs de la variable d’appariement de grille esri_pe_string, crs_wkt et spatial_ref permettent tous de définir une chaîne WKT 1 (Well-known Text 1) ou WKT 2 (Well-known Text 2). Les produits ArcGIS utilisent généralement WKT 1. Cependant, comme les outils prennent en charge les deux, vous pouvez utiliser l’une ou l’autre variante pour la valeur de cet attribut. Vous trouverez plus d’informations sur les différences de format dans le document PDF des événements de l’atelier technique Esri Coordinate System Standards: A Primer to Understanding the Standards and Their Implementation in the ArcGIS Platform.

Lorsque plusieurs attributs sont présents dans une variable d’appariement de grille, une référence spatiale est construite en respectant l’ordre de priorité suivant :

  1. Code EPSG
  2. Système de coordonnées projetées nommé
  3. Système de coordonnées géographiques nommé et paramètres de projection
  4. Rayon du sphéroïde ou de la sphère et paramètres de projection
  5. Datum horizontal et paramètres de projection
  6. Système de coordonnées géographiques nommé et paramètres de projection
  7. Rayon du sphéroïde ou de la sphère et paramètres de projection
  8. Datum horizontal et paramètres de projection

Lorsque le système de coordonnées est spécifié à l’aide des options 1 et 2, tous les autres attributs d’appariement de grille sont ignorés. Les options 3, 4 et 5 sont utilisées pour construire un système de coordonnées géographiques et les options 6, 7 et 8 servent à construire un système de coordonnées projetées.

Même si l’appariement de grille peut servir à spécifier à la fois le système de coordonnées projetées et le système de coordonnées géographiques, les détails nécessaires sont différents entre les deux. Si vous spécifiez un système de coordonnées géographiques, une variable d’appariement de grille est généralement utilisée pour définir la figure de la Terre (datum) (ellipsoïde WGS84, sphère, etc). Si vous spécifiez un système de coordonnées projetées (les coordonnées spatiales horizontales sont l’abscisse et l’ordonnée dans une projection cartographique), une variable d’appariement de grille doit clairement déclarer plus de détails d’une projection cartographique donnée.

La table suivante montre comment un grid_mapping_name est apparié à une projection souvent utilisée par les produits ArcGIS.

Nom d’appariement de grilleEsri (et 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 (facteur d’échelle et méridien central) Ou 43004 Mercator (parallèle de référence et méridien central)

oblique_mercator

43037 Hotine_Oblique_Mercator_Azimuth_Center

Orthographic

43058 Local

polar_stereographic

43066 Polar_Stereographic_Variant_A (scale_factor_at_projection_origin) Ou 43067 Polar_Stereographic_Variant_B (parallèle de référence)

Sinusoidal

43008 Sinusoidal

transverse_mercator

43006 Transverse_Mercator

Chacun des noms d’appariement de grille répertoriés dans la table ci-dessus comporte un ensemble unique d’attributs qui sont utilisés pour attribuer des valeurs aux paramètres d’appariement. Comme un grand nombre des attributs sont partagés entre plusieurs appariements, la façon dont ils sont appariés aux paramètres de projection Esri est indiquée dans la table suivante.

Nom de l’attribut d’appariement de grilleNom du paramètre de projection et index

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 Parallèle de référence 1, Latitude du premier point

4 Parallèle de référence 2, Latitude du deuxième point

straight_vertical_longitude_from_pole

2 Central_Meridian

scale_factor_at_central_meridian

5 Scale_Factor

En plus d’un système de coordonnées horizontales, vous devez également spécifier un système de coordonnées verticales car des classes d’entités 2D ou 3D peuvent être générées. En règle générale, un système de coordonnées verticales est une combinaison d’un datum vertical, d’une unité linéaire de mesure et de la direction (haut ou bas) dans laquelle les coordonnées verticales augmentent. Les produits ArcGIS utilisent les unités et la direction d’axe pour rendre les données correctement dans une vue de la scène. Un système de coordonnées verticales est nécessaire lorsque l’une des variables de coordonnées en cours de conversion est verticale et qu’elle indique une unité linéaire (ce qui n’est pas le cas, par exemple, d’une unité de pression).

Vous pouvez spécifier un système de coordonnées verticales de plusieurs manières.

Vous pouvez utiliser un nom standard qui désigne un datum de marée de référence. Dans ce cas, aucune autre spécification d’un datum vertical n’est requise. Les datums de marée sont des métadonnées descriptives. Un jeu de données avec un datum ne peut pas être transformé en un autre datum vertical. Les noms standard qui sélectionnent les datums de marée sont les suivants :

  • 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

Vous pouvez également utiliser les attributs esri_pe_string, crs_wkt et spatial_ref avec une valeur WKT composée pour spécifier un système de coordonnées verticales.

La troisième méthode consiste à utiliser l’attribut geoid_name ou geopotential_datum_name dans la variable grid_mapping. La liste actuelle des noms de datum vertical pris en charge est disponible dans lefichier PDF de transformations géographiques et verticales.

Instantaneous_Water_Level_Height (WKID 5829) ou Instantaneous_Water_Level_ Depth (WKID 5831) sera utilisé comme datum vertical par défaut si aucun n’est précisé. Comme avec les datums de marée, il s’agit de métadonnées descriptives qui ne prennent pas directement en charge les conversions automatiques vers d’autres datums verticaux. Ils sont utiles pour conserver l’unité verticale et la direction verticale des coordonnées croissantes.

Remarque :

L’attribut standard_name de la variable de coordonnées verticales doit être compatible avec le datum spécifié. Par exemple, comme ils sont contradictoires, une erreur de validation de l’outil se produit si le nom standard height_above_reference_ellipsoid est utilisé avec un attribut geoid_name dont la valeur est EGM2008_Geoid.

Dans certains cas, les coordonnées verticales dimensionnelles sont une fonction de la localisation horizontale ainsi que des paramètres qui dépendent de la localisation verticale. Ces coordonnées verticales paramétriques ne sont actuellement pas prises en charge par les outils de géométrie d’échantillonnage discret. Vous trouverez plus d’informations à ce sujet dans la section 4.3.3 Parametric Vertical Coordinate du site de la convention des métadonnées des données de climat et de prévision.

Métadonnées des données de climat et de prévision supplémentaires

La convention des métadonnées des données de climat et de prévision permet de définir les métadonnées qui fournissent une description définitive des données de chaque variable, ainsi que leurs propriétés spatiales et temporelles. Cette convention peut vous aider à déterminer les quantités qui sont comparables à partir de différentes sources.

En savoir plus sur les conventions netCDF

Le nom de la convention est présenté en tant qu'attribut global dans un fichier netCDF. Pour être lues par les outils de géométrie d’échantillonnage discret, les données de géométrie d’échantillonnage discret en entrée doivent suivre la convention des métadonnées des données de climat et de prévision 1.6 ou une version ultérieure.

De nombreux fichiers netCDF contiennent des variables d’instance et d’observation de géométrie d’échantillonnage discret qui reposent sur une convention des métadonnées des données de climat et de prévision antérieure ou qui ne disposent pas des attributs nécessaires. Pour utiliser ces fichiers netCDF non compatibles avec la convention des métadonnées des données de climat et de prévision en entrée dans les outils de géométrie d’échantillonnage discret ArcGIS Pro, spécifiez un fichier XML de métadonnées supplémentaire à l’aide du paramètre Métadonnées des données de climat et de prévision en entrée. Le fichier de métadonnées doit être écrit avec NetCDF Markup Language (NcML).

NetCDF Markup Language

NcML est une représentation XML des métadonnées netCDF qui vous permet de définir ou de redéfinir les métadonnées manquantes ou incorrectes dans le fichier netCDF en entrée. Vous pouvez utiliser un fichier NcML pour modifier, supprimer et restructurer les variables.

Le paramètre Métadonnées des données de climat et de prévision en entrée vous permet d’utiliser des fichiers netCDF non compatibles avec la convention des métadonnées des données de climat et de prévision sans avoir à modifier les fichiers netCDF en entrée ou à les rendre compatibles. Il n’est pas nécessaire de créer un NcML individuel pour chaque fichier netCDF non compatible en entrée. Le même NcML sera appliqué à toutes les entrées.

En savoir plus sur NcML

Les sections suivantes expliquent comment résoudre les scénarios courants avec NcML.

Exemple de coordonnées manquantes

Prenons la variable d’observation suivante Tmax (température journalière maximale) dans un fichier de géométrie d’échantillonnage discret d’une série chronologique d’une station météorologique. Aucun attribut de coordonnées n’y est attaché.


float Tmax(stn_num, time) ;
    Tmax:units = "C" ;
    Tmax:long_name = "daily max temperature" ;
    Tmax:_FillValue = 1.e+20f ;

Pour que les données soient lisibles par l’outil de géométrie d’échantillonnage discret, ajoutez le texte suivant dans le fichier XML Métadonnées des données de climat et de prévision :


<variable name="Tmax">    
   <attribute name="coordinates" type="String" value="time lon lat"/>  
</variable>

Les corrections NcML ci-dessus ne mentionnant pas la variable elev, une classe d’entités 2D est générée. Pour obtenir une classe d’entités 3D, ajoutez la variable elev.


<variable name="Tmax">    
   <attribute name="coordinates" type="String" value="time lon lat elev"/>  
</variable>

Exemple d’appariement de grille manquant

Le fichier de géométrie d’échantillonnage discret suivant représente les données d’une trajectoire de pêche. Aucune variable d’appariement de grille n’est présente.


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" ;

Pour définir le système de coordonnées horizontales de la sortie comme UTM Zone 10N (epsg_code:26910), ajoutez la variable suivante :

  
<variable name="crs" type="char">
   <attribute name="epsg_code" type="String" value="EPSG:26910"/>
</variable>

Modifiez ensuite la variable d’observation (salinité) à associer à cette variable :

  
<variable name="salinity">
   <attribute name="grid_mapping" type="String" value="crs"/>  
</variable>

Exemple d’attribut cf-role incorrectement défini

Un fichier de géométrie d’échantillonnage discret peut comporter un attribut cf_role incorrectement défini. Dans l’exemple des trajectoires de géométrie d’échantillonnage discret suivantes, l’attribut cf_role de la coordonnée d’instance est incorrectement désigné comme profile_id, au lieu de trajectory_id.


int wod_unique_cast(casts) ;
   wod_unique_cast:cf_role = "profile_id" ;

Pour modifier un fichier de géométrie d’échantillonnage discret de profil prédéfini en fichier de géométrie d’échantillonnage discret de trajectoire, ajoutez la variable suivante :

  
<variable name="wod_unique_cast">
   <attribute name="cf_role" type="string" value="trajectory_id"/>
</variable>

Sorties de l’outil de géométrie d’échantillonnage discret

Tous les outils de géométrie d’échantillonnage discret créent une classe d’entités en sortie principale et une ou deux sorties facultatives. Si aucune des variables d’observation ou des variables d’instance n’est sélectionnée, une seule classe d’entités en sortie est créée. La classe d’entités en sortie aura au moins un champ supplémentaire. Le champ InstanceID, qui est un identifiant unique pour les entités de géométrie d’échantillonnage discret créées par les outils de géométrie d’échantillonnage discret. Pour les trois outils de géométrie d’échantillonnage discret autres que Points NetCDF vers classe d’entités, un autre champ supplémentaire est créé à partir de la variable d’instance dans le fichier netCDF en entrée qui comporte l’attribut cf_role. L’alias de champ sera identique au nom de variable.

Pour illustrer la nature de l’entité générée par les outils de géométrie d’échantillonnage discret, des exemples des premiers enregistrements dans la table attributaire de la classe d’entités en sortie sont affichés ci-dessous. Dans chaque cas, l’outil est identifié et les champs spécifiques mentionnés sont mis en évidence. Ces exemples sont créés avec les paramètres par défaut de chaque outil (par exemple, la structure en sortie par défaut de l’outil Profil NetCDF vers classe d’entités est Observation et instance).

Le premier exemple est issu de la table attributaire de la classe d’entités en sortie de l’outil Séries chronologiques NetCDF vers classe d’entités avec des données de station météorologique. Les champs supplémentaires sont InstanceID et stnID, où le champ stnID est le nom de la variable d’instance dont l’attribut cf_role est timeseries_id.

Champs InstanceID et stnID dans la table attributaire de la classe d’entités en sortie de l’outil Séries chronologiques NetCDF vers classe d’entités

La table attributaire de la classe d’entités en sortie de l’outil Profil NetCDF vers classe d’entités aura un autre champ, Time (UTC), qui indique l’heure de création des données dans chaque instance de profil.

Champ Time (UTC) dans la table attributaire de la classe d’entités en sortie de l’outil Profils NetCDF vers classe d’entités

La table attributaire de la classe d’entités en sortie de l’outil Trajectoires NetCDF vers classe d’entités aura deux champs supplémentaires, From Time (UTC) et To Time (UTC), qui indiquent l’heure de début et de fin de chaque trajectoire. Ces champs temporels sont créés à partir de la variable de coordonnée temporelle des fichiers netCDF en entrée. Comme indiqué dans l’alias de champ, ces champs temporels sont au format Temps universel coordonné (UTC).

Champs From Time (UTC) et To Time (UTC) dans la table attributaire de la classe d’entités en sortie de l’outil Trajectoires NetCDF vers classe d’entités

Pour chaque variable d’instance spécifiée dans l’outil, un champ supplémentaire portant le nom de la variable est ajouté dans la table attributaire de la classe d’entités en sortie. L’alias de champ est le nom standard ou le nom long, suivi du nom de la variable entre parenthèses. Dans le cas où ni le nom standard ni le nom long ne sont définis, l’alias de champ est le nom de la variable. La table attributaire de la classe d’entités en sortie de l’outil Séries chronologiques NetCDF vers classe d’entités avec des données de station météorologique comporte le champ stnName supplémentaire. Il utilise l’alias Station Name, qui est le nom long de la variable d’instance sélectionnée.

Variable d’instance sélectionnée stnName ajoutée comme champ Nom de station dans la table attributaire de la classe d’entités en sortie de l’outil Séries chronologiques NetCDF vers classe d’entités

Pour spécifier une variable d’observation, vous devez indiquer le nom de la table en sortie et, éventuellement, le nom d’une couche d’entités. Sortie de la couche d’entités facultative pour les outils Profil NetCDF vers classe d’entités et Séries chronologiques NetCDF vers classe d’entités.

La table en sortie aura au moins deux champs supplémentaires : Le premier est le champ ObservationID créé par l’outil de géométrie d’échantillonnage discret pour attribuer un ID unique à chaque enregistrement d’observation. Le second champ est InstanceID, qui est identique à la sortie de la classe d’entités et qui sert de clé étrangère pour joindre la classe d’entités d’instance à la table d’observation.

Selon l’outil, la sortie de la table aura différents champs supplémentaires. Les variables de coordonnées associées aux dimensions d’élément deviennent de nouveaux champs dans la table en sortie. Comme pour illustrer la nature de l’entité générée par les outils de géométrie d’échantillonnage discret, des exemples des premiers enregistrements dans la table en sortie sont également affichés. Dans chaque cas, l’outil est identifié et les champs spécifiques mentionnés sont mis en évidence.

Un champ Time (UTC) créé à partir des coordonnées temporelles est ajouté pour l’outil Séries chronologiques NetCDF vers classe d’entités. Il indique l’heure d’intégration de chaque donnée dans une série chronologique. L’exemple suivant est une table en sortie créée à partir de cet outil avec des données de station météorologique. Les champs supplémentaires sont ObservationID, InstanceID, Time (UTC) et daily max temperature (le nom standard de la variable d’observation sélectionnée Tmax).

Exemple de table en sortie de l’outil Séries chronologiques NetCDF vers classe d’entités

Pour la table en sortie Trajectoires NetCDF vers classe d’entités, les champs Time (UTC), From Time (UTC) et To Time (UTC) sont ajoutés, ainsi que les variables d’observation sélectionnées. Les champs From Time (UTC) et To Time (UTC) sont les milieux temporels entre les observations.

Exemple de table en sortie de l’outil Trajectoires NetCDF vers classe d’entités

Un champ Z est ajouté pour l’outil Profil NetCDF vers classe d’entités. Il indique la profondeur ou la hauteur d’intégration de chaque donnée dans un profil. Les variables d’observation sélectionnées seront également ajoutées comme de nouveaux champs.

Exemple de table en sortie de l’outil Profils NetCDF vers classe d’entités

Si le paramètre Couche de jointure en sortie est spécifié, les outils Séries chronologiques NetCDF vers classe d’entités et Profil NetCDF vers classe d’entités créent une couche d’entités facultative avec le nom spécifié dans ce paramètre. La couche d’entités en sortie sera la classe d’entités en sortie jointe à la table en sortie avec le champ InstanceID comme clé. Voici une portion de la table attributaire de la couche d’entités en sortie de l’outil Profils NetCDF vers classe d’entités :

Exemple de la table attributaire de la couche d’entités en sortie de l’outil Profils NetCDF vers classe d’entités

Pour l’outil Points NetCDF vers classe d’entités, un fichier InstanceID supplémentaire est créé dans la table de classes d’entités en sortie, ainsi que dans toutes les valeurs du paramètre Variables d’instance sélectionnées.

Spécifier une structure en sortie appropriée

Les outils de géométrie d’échantillonnage discret peuvent produire différents types de structure en sortie en fonction de l’application souhaitée. L’outil Séries chronologiques NetCDF vers classe d’entités ne produit qu’un seul type de structure. Les outils Profil NetCDF vers classe d’entités et Trajectoires NetCDF vers classe d’entités incluent un paramètre qui permet de sélectionner un type de structure.

Structure en sortie de l’outil Profils NetCDF vers classe d’entités

Dans l’outil Profil NetCDF vers classe d’entités, vous pouvez choisir la structure en sortie avec le paramètre Structure en sortie : Instance et observation, Itinéraire et événement ou Point 3D. L’option Instance et observation est le type de structure par défaut. Les sorties de ce paramètre sont décrites dans la section ci-dessus sur les sorties de l’outil de géométrie d’échantillonnage discret.

Si le paramètre Structure en sortie est défini sur Itinéraire et événement, l’outil crée une classe d’entités en sortie et une table d’événements en sortie avec différentes structures. Aucune sortie facultative n’est disponible. La classe d’entités en sortie sera une polyligne verticale 3D, avec une profondeur (valeurs z) comme valeur de mesure aux sommets. Les champs ajoutés à la classe d’entités en sortie sont les mêmes que ceux ajoutés par l’option Instance et observation.

La table en sortie aura deux nouveaux champs, FromZ et ToZ, qui peuvent être utilisés pour les événements linéaires le long des profils. Les valeurs des champs FromZ et ToZ correspondent aux milieux entre des valeurs z d’observation, sauf la première valeur FromZ et la dernière valeur ToZ, qui sont identiques aux valeurs z. La table en sortie de cette structure peut également être utilisée avec les outils de référencement linéaire pour créer des entités d’événements linéaires.

En savoir plus sur le référencement linéaire

L’image ci-dessous représente une portion d’une table attributaire en sortie :

Champs supplémentaires FromZ et ToZ dans la table en sortie de l’outil Profils NetCDF vers classe d’entités avec Itinéraire et événement comme structure en sortie

Lorsque le paramètre Structure en sortie est défini sur Point 3D, une classe d’entités ponctuelles 3D est créée (aucune sortie de table ou de couche de jointure facultative n’est disponible). La table attributaire de la classe d’entités en sortie aura des champs supplémentaires créés à partir des variables d’observation sélectionnées par rapport à l’option Instance et observation. Bien que la table attributaire de la classe d’entités en sortie comporte également le champ InstanceID, les valeurs ne seront pas toutes uniques.

Exemple de la table attributaire d’une classe d’entités en sortie de l’outil Profils NetCDF vers classe d’entités avec Point 3D comme structure en sortie

Certaines indications vous aideront à définir la structure à utiliser.

L’option Instance et observation fournit souvent la solution la plus efficace. La classe d’entités en sortie conserve la localisation de chaque profil et les données d’observation sont stockées dans une table distincte. Toutefois, même si les données d’observation dans la table en sortie peuvent être jointes à la classe d’entités en sortie, l’absence d’ID d’objet unique dans la couche d’entités en sortie bloque son utilisation dans les outils qui nécessitent un ID unique.

Si les sorties de cet outil doivent être utilisées dans un autre outil qui exige l’unicité des valeurs dans le champ d’ID, utilisez l’option Point 3D. La classe d’entités en sortie obtenue peut être de taille supérieure aux résultats si l’option Instance et observation est utilisée et peut entraîner des temps de traitement supérieurs.

Si une sortie de type polyligne est attendue, utilisez l’option Itinéraire et événement. Les lignes verticales 3D peuvent mieux illustrer les propriétés verticales de chaque profil.

Structure en sortie de l’outil Trajectoires NetCDF vers classe d’entités

Dans l’outil Trajectoires NetCDF vers classe d’entités, deux types de structures en sortie sont disponibles avec le paramètre Structure en sortie : Itinéraire et événement et Point. L’option Itinéraire et événement est le type de structure par défaut. Les sorties de cette option sont décrites dans la section ci-dessus sur les sorties de l’outil de géométrie d’échantillonnage discret.

Si le paramètre Structure en sortie est défini sur Point, l’outil crée une classe d’entités ponctuelles 2D ou 3D qui illustre les localisations le long de chaque trajectoire où des observations sont réalisées. Dans la table attributaire de la classe d’entités en sortie donnée en exemple ci-dessous, un champ Time (UTC) est créé à partir de la variable de coordonnée temporelle au lieu des champs From Time (UTC) et To Time (UTC) qui sont créés avec l’option Itinéraire et événement. Les champs créés à partir des variables d’observation sélectionnées seront également inclus.

Champs supplémentaires Time (UTC) et sea_temperature dans la table attributaire d’une classe d’entités en sortie de l’outil Trajectoires NetCDF vers classe d’entités avec Point comme structure en sortie

Pour utiliser le chemin complet de la trajectoire, définissez le paramètre Structure en sortie sur Itinéraire et événement. Utilisez cette option afin d’utiliser la sortie avec les outils de référencement linéaire pour créer des entités d’événements linéaires. Si des points individuels de chaque localisation le long de la trace sont nécessaires, utilisez l’option Point.

Bibliographie

  • CF Metadata Conventions. Dernier accès le 18 avril 2022 sur https://cfconventions.org/.
  • NetCDF Conventions. Dernier accès le 18 avril 2022 sur https://www.unidata.ucar.edu/software/netcdf/conventions.html.
  • Annotated Schema for NcML. Dernier accès le 18 avril 2022 sur https://docs.unidata.ucar.edu/netcdf-java/current/userguide/annotated_ncml_schema.html.
  • Basic NcML Tutorial. Dernier accès le 18 avril 2022 sur https://docs.unidata.ucar.edu/netcdf-java/current/userguide/basic_ncml_tutorial.html.

Rubriques connexes