NetCDF multiple profiles: Difference between revisions
From BAWiki
imported>Lang Guenther (Discrete Sampling Geometry added) |
imported>Lang Guenther (layout improved) |
||
Line 5: | Line 5: | ||
The location of different longitudinal as well as cross-sectional profiles is described. | The location of different longitudinal as well as cross-sectional profiles is described. | ||
=Version ''Discrete Sampling Geometry'' '''trajectoryProfile'''= | |||
Data for multiple locations along one or several profiles (trajectories) are stored in a netCDF file in accordance with the concept of a ''Discrete Sampling Geometry'' with '''featureType=trajectoryProfile'''. An example (output from NCDUMP) for geometry as well as data is shown in [[File:P_synop_ncdump_2D.pdf]]. | Data for multiple locations along one or several profiles (trajectories) are stored in a netCDF file in accordance with the concept of a ''Discrete Sampling Geometry'' with '''featureType=trajectoryProfile'''. An example (output from NCDUMP) for geometry as well as data is shown in [[File:P_synop_ncdump_2D.pdf]]. | ||
=Version [[DATACONVERT]]= | |||
The basic concept follows the ideas described in [http://ugrid-conventions.github.io/ugrid-conventions/#1d-network-topology ''1D network topolgy''] | The basic concept follows the ideas described in [http://ugrid-conventions.github.io/ugrid-conventions/#1d-network-topology ''1D network topolgy''] | ||
Line 16: | Line 16: | ||
All deviations from the ''UGRID conventions'' are highlighted in <font color=darkorange>''darkorange''</font> color. | All deviations from the ''UGRID conventions'' are highlighted in <font color=darkorange>''darkorange''</font> color. | ||
==Dimensions== | |||
# '''nMesh1_node''' : number of nodes | # '''nMesh1_node''' : number of nodes | ||
Line 25: | Line 25: | ||
# '''Two''' : constant ( = 2 ). | # '''Two''' : constant ( = 2 ). | ||
==Local coordinates== | |||
===Nodes=== | |||
double Mesh1_node_x(nMesh1_node) ; | double Mesh1_node_x(nMesh1_node) ; | ||
: Mesh1_node_x:long_name = "x-coordinate of nodes ; | : Mesh1_node_x:long_name = "x-coordinate of nodes ; | ||
Line 41: | Line 41: | ||
# "name_id" corresponds to the so-called PHYDEF-Code of variables which is used internally at BAW. | # "name_id" corresponds to the so-called PHYDEF-Code of variables which is used internally at BAW. | ||
===Edges=== | |||
double Mesh1_edge_x(nMesh1_edge) ; | double Mesh1_edge_x(nMesh1_edge) ; | ||
: Mesh1_edge_x:long_name = "x-coordinate of edges (center)" ; | : Mesh1_edge_x:long_name = "x-coordinate of edges (center)" ; | ||
Line 57: | Line 57: | ||
# "name_id" corresponds to the so-called PHYDEF-Code of variables which is used internally at BAW. | # "name_id" corresponds to the so-called PHYDEF-Code of variables which is used internally at BAW. | ||
===(optional) Bounds for edges=== | |||
double Mesh1_edge_x_bnd(nMesh1_edge,Two) ; \\ no metadata required | double Mesh1_edge_x_bnd(nMesh1_edge,Two) ; \\ no metadata required | ||
double Mesh1_edge_y_bnd(nMesh1_edge,Two) ; \\ no metadata required | double Mesh1_edge_y_bnd(nMesh1_edge,Two) ; \\ no metadata required | ||
==Geographic coordinates== | |||
===Nodes=== | |||
double Mesh1_node_lon(nMesh1_node) ; | double Mesh1_node_lon(nMesh1_node) ; | ||
: Mesh1_node_lon:long_name = "geographic longitude of nodes" ; | : Mesh1_node_lon:long_name = "geographic longitude of nodes" ; | ||
Line 78: | Line 78: | ||
# "name_id" corresponds to the so-called PHYDEF-Code of variables which is used internally at BAW. | # "name_id" corresponds to the so-called PHYDEF-Code of variables which is used internally at BAW. | ||
===Edges=== | |||
double Mesh1_edge_lon(nMesh1_edge) ; | double Mesh1_edge_lon(nMesh1_edge) ; | ||
: Mesh1_edge_lon:long_name = "geographic longitude of edges (center)" ; | : Mesh1_edge_lon:long_name = "geographic longitude of edges (center)" ; | ||
Line 94: | Line 94: | ||
# "name_id" corresponds to the so-called PHYDEF-Code of variables which is used internally at BAW. | # "name_id" corresponds to the so-called PHYDEF-Code of variables which is used internally at BAW. | ||
===(optional) Bounds for edges=== | |||
double Mesh1_edge_lon_bnd(nMesh1_edge,Two) ; \\ no metadata required | double Mesh1_edge_lon_bnd(nMesh1_edge,Two) ; \\ no metadata required | ||
double Mesh1_edge_lat_bnd(nMesh1_edge,Two) ; \\ no metadata required | double Mesh1_edge_lat_bnd(nMesh1_edge,Two) ; \\ no metadata required | ||
==Connectivities== | |||
===Edge-node connectivity=== | |||
int Mesh1_edge_nodes(nMesh1_edge, two) ; | int Mesh1_edge_nodes(nMesh1_edge, two) ; | ||
: Mesh1_edge_nodes:long_name = "edge-node connectivity of edges, start and end point" ; | : Mesh1_edge_nodes:long_name = "edge-node connectivity of edges, start and end point" ; | ||
Line 107: | Line 107: | ||
: Mesh1_edge_nodes:start_index = 0 ; | : Mesh1_edge_nodes:start_index = 0 ; | ||
===Names of profiles=== | |||
char Mesh1_prof_long_name(nMesh1_prof, nMesh1_strlen1) ; | char Mesh1_prof_long_name(nMesh1_prof, nMesh1_strlen1) ; | ||
: Mesh1_prof_long_name:long_name = "name of profile" ; | : Mesh1_prof_long_name:long_name = "name of profile" ; | ||
Line 113: | Line 113: | ||
# Can be used as ''label coordinate variable'' to access individual profiles. | # Can be used as ''label coordinate variable'' to access individual profiles. | ||
===Profile-edge connectivity=== | |||
int Mesh1_prof_edges(nMesh1_prof, nMaxMesh1_prof_edges) ; | int Mesh1_prof_edges(nMesh1_prof, nMaxMesh1_prof_edges) ; | ||
: Mesh1_prof_edges:long_name = "profile-edge connectivity, sorted from start to end of profile" ; | : Mesh1_prof_edges:long_name = "profile-edge connectivity, sorted from start to end of profile" ; | ||
Line 123: | Line 123: | ||
# Individual edges may belong to more than one profile. | # Individual edges may belong to more than one profile. | ||
===Profile-node connectivity=== | |||
int Mesh1_prof_nodes(nMesh1_prof, nMaxMesh1_prof_nodes) ; | int Mesh1_prof_nodes(nMesh1_prof, nMaxMesh1_prof_nodes) ; | ||
: Mesh1_prof_nodes:long_name = "profile-node connectivity, sorted from start to end of profile" ; | : Mesh1_prof_nodes:long_name = "profile-node connectivity, sorted from start to end of profile" ; | ||
Line 132: | Line 132: | ||
# Can be used to describe several profiles. | # Can be used to describe several profiles. | ||
==Topology== | |||
int Mesh1 ; | int Mesh1 ; | ||
Line 145: | Line 145: | ||
: Mesh1:edge_node_connectivity = "Mesh1_edge_nodes" ; | : Mesh1:edge_node_connectivity = "Mesh1_edge_nodes" ; | ||
==Coordinate transformation== | |||
See [[NetCDF grid mapping variable]]. | See [[NetCDF grid mapping variable]]. |
Revision as of 15:56, 14 October 2016
Introduction
The location of different longitudinal as well as cross-sectional profiles is described.
Version Discrete Sampling Geometry trajectoryProfile
Data for multiple locations along one or several profiles (trajectories) are stored in a netCDF file in accordance with the concept of a Discrete Sampling Geometry with featureType=trajectoryProfile. An example (output from NCDUMP) for geometry as well as data is shown in .
Version DATACONVERT
The basic concept follows the ideas described in 1D network topolgy which is part of the UGRID Conventions. But use of object profile is beyond what is covered by the UGRID conventions. All deviations from the UGRID conventions are highlighted in darkorange color.
Dimensions
- nMesh1_node : number of nodes
- nMesh1_edge : number of edges
- nMesh1_prof : number of profiles (longitudinal and cross-section)
- nMaxMesh1_prof_edges : maximum number of edges along a single profile
- nMaxMesh1_prof_nodes : maximum number of nodes along a single profile
- Two : constant ( = 2 ).
Local coordinates
Nodes
double Mesh1_node_x(nMesh1_node) ;
- Mesh1_node_x:long_name = "x-coordinate of nodes ;
- Mesh1_node_x:units = "m" ;
- Mesh1_node_x:name_id = 1650 ;
- Mesh1_node_x:standard_name = "projection_x_coordinate" ;
double Mesh1_node_y(nMesh1_node) ;
- Mesh1_node_y:long_name = "y-coordinate of nodes" ;
- Mesh1_node_y:units = "m" ;
- Mesh1_node_y:name_id = 1651 ;
- Mesh1_node_y:standard_name = "projection_y_coordinate" ;
Comment:
- "name_id" corresponds to the so-called PHYDEF-Code of variables which is used internally at BAW.
Edges
double Mesh1_edge_x(nMesh1_edge) ;
- Mesh1_edge_x:long_name = "x-coordinate of edges (center)" ;
- Mesh1_edge_x:units = "m" ;
- Mesh1_edge_x:name_id = 1650 ;
- Mesh1_edge_x:bounds = "Mesh1_edge_x_bnd" ;
- Mesh1_edge_x:standard_name = "projection_x_coordinate" ;
double Mesh1_edge_y(nMesh1_edge) ;
- Mesh1_edge_y:long_name = "y-coordinate of edges (center)" ;
- Mesh1_edge_y:units = "m" ;
- Mesh1_edge_y:name_id = 1651 ;
- Mesh1_edge_y:bounds = "Mesh1_edge_y_bnd" ;
- Mesh1_edge_y:standard_name = "projection_y_coordinate" ;
Comment:
- "name_id" corresponds to the so-called PHYDEF-Code of variables which is used internally at BAW.
(optional) Bounds for edges
double Mesh1_edge_x_bnd(nMesh1_edge,Two) ; \\ no metadata required
double Mesh1_edge_y_bnd(nMesh1_edge,Two) ; \\ no metadata required
Geographic coordinates
Nodes
double Mesh1_node_lon(nMesh1_node) ;
- Mesh1_node_lon:long_name = "geographic longitude of nodes" ;
- Mesh1_node_lon:units = "degrees_east" ;
- Mesh1_node_lon:name_id = 1653 ;
- Mesh1_node_lon:standard_name = "longitude" ;
double Mesh1_node_lat(nMesh1_node) ;
- Mesh1_node_lat:long_name = "geographic latitude of nodes" ;
- Mesh1_node_lat:units = "degrees_north" ;
- Mesh1_node_lat:name_id = 1652 ;
- Mesh1_node_lat:standard_name = "latitude" ;
Comment:
- "name_id" corresponds to the so-called PHYDEF-Code of variables which is used internally at BAW.
Edges
double Mesh1_edge_lon(nMesh1_edge) ;
- Mesh1_edge_lon:long_name = "geographic longitude of edges (center)" ;
- Mesh1_edge_lon:units = "degrees_east" ;
- Mesh1_edge_lon:name_id = 1653 ;
- Mesh1_edge_lon:bounds = "Mesh1_edge_lon_bnd" ;
- Mesh1_edge_lon:standard_name = "longitude" ;
double Mesh1_edge_lat(nMesh1_edge) ;
- Mesh1_edge_lat:long_name = "geographic latitude of edges (center)" ;
- Mesh1_edge_lat:units = "degrees_north" ;
- Mesh1_edge_lat:name_id = 1652 ;
- Mesh1_edge_lat:bounds = "Mesh1_edge_lat_bnd" ;
- Mesh1_edge_lat:standard_name = "latitude" ;
Comment:
- "name_id" corresponds to the so-called PHYDEF-Code of variables which is used internally at BAW.
(optional) Bounds for edges
double Mesh1_edge_lon_bnd(nMesh1_edge,Two) ; \\ no metadata required
double Mesh1_edge_lat_bnd(nMesh1_edge,Two) ; \\ no metadata required
Connectivities
Edge-node connectivity
int Mesh1_edge_nodes(nMesh1_edge, two) ;
- Mesh1_edge_nodes:long_name = "edge-node connectivity of edges, start and end point" ;
- Mesh1_edge_nodes:cf_role = "edge_node_connectivity" ;
- Mesh1_edge_nodes:start_index = 0 ;
Names of profiles
char Mesh1_prof_long_name(nMesh1_prof, nMesh1_strlen1) ;
- Mesh1_prof_long_name:long_name = "name of profile" ;
Comment:
- Can be used as label coordinate variable to access individual profiles.
Profile-edge connectivity
int Mesh1_prof_edges(nMesh1_prof, nMaxMesh1_prof_edges) ;
- Mesh1_prof_edges:long_name = "profile-edge connectivity, sorted from start to end of profile" ;
- Mesh1_prof_edges:cf_role = "prof_edge_connectivity" ;
- Mesh1_prof_edges:_FillValue = -999 ;
- Mesh1_prof_edges:start_index = 0 ;
Comment:
- Can be used to describe several profiles.
- Individual edges may belong to more than one profile.
Profile-node connectivity
int Mesh1_prof_nodes(nMesh1_prof, nMaxMesh1_prof_nodes) ;
- Mesh1_prof_nodes:long_name = "profile-node connectivity, sorted from start to end of profile" ;
- Mesh1_prof_nodes:cf_role = "prof_node_connectivity" ;
- Mesh1_prof_nodes:_FillValue = -999 ;
- Mesh1_prof_nodes:start_index = 0 ;
Comment:
- Can be used to describe several profiles.
Topology
int Mesh1 ;
- Mesh1:long_name = "several 1D profiles, no sub-grid" ;
- Mesh1:topology_dimension = 1 ;
- Mesh1:cf_role = "mesh_topology" ;
- Mesh1:node_coordinates = "Mesh1_node_x Mesh1_node_y Mesh1_node_lon Mesh1_node_lat" ;
- Mesh1:edge_coordinates = "Mesh1_edge_x Mesh1_edge_y Mesh1_edge_lon Mesh1_edge_lat" ;
- Mesh1:prof_coordinates = "Mesh1_prof_long_name" ;
- Mesh1:prof_node_connectivity = "Mesh1_prof_nodes" ;
- Mesh1:prof_edge_connectivity = "Mesh1_prof_edges" ;
- Mesh1:edge_node_connectivity = "Mesh1_edge_nodes" ;
Coordinate transformation
See NetCDF grid mapping variable.
back to NetCDF