Skip to content

Examples: Contiguous Ragged Arrays

David Blodgett edited this page Nov 11, 2016 · 16 revisions

Examples - Contiguous Ragged Arrays

Created 2016-11-10 19:58:26

Point (2D)

Well Known Text (WKT): POINT (30 10)
Common Data Language (CDL):

netcdf sample_point {
dimensions:
	station = 1 ;
	name_strlen = 1 ;
variables:
	double lat(station) ;
		lat:units = "degrees_north" ;
		lat:_FillValue = -999. ;
		lat:long_name = "latitude of the observation" ;
		lat:standard_name = "latitude" ;
	double lon(station) ;
		lon:units = "degrees_east" ;
		lon:_FillValue = -999. ;
		lon:long_name = "longitude of the observation" ;
		lon:standard_name = "longitude" ;
	char station_name(station, name_strlen) ;
		station_name:long_name = "Station Names" ;
		station_name:cf_role = "timeseries_id" ;
		station_name:standard_name = "station_id" ;

// global attributes:
		:Conventions = "CF-1.7" ;
		:featureType = "timeSeries" ;
		:cdm_data_type = "Station" ;
		:standard_name_vocabulary = "CF-1.7" ;
data:

 lat = 10 ;

 lon = 30 ;

 station_name =
  "1" ;
}
  

LineString (2D)

Well Known Text (WKT): LINESTRING (30 10, 10 30, 40 40)
Common Data Language (CDL):

netcdf sample_linestring {
dimensions:
	coordinate_index = 3 ;
	instance = 1 ;
	name_strlen = 1 ;
	coordinates = 3 ;
variables:
	float coordinate_index(coordinate_index) ;
		coordinate_index:long_name = "index for coordinates and geometry break values" ;
		coordinate_index:coordinates = "x y" ;
		coordinate_index:multipart_break_value = -1. ;
		coordinate_index:geom_type = "multiline" ;
	float coordinate_index_stop(instance) ;
		coordinate_index_stop:long_name = "index for last coordinate in each instance geometry" ;
		coordinate_index_stop:contiguous_ragged_dimension = "coordinate_index" ;
	char instance_name(instance, name_strlen) ;
		instance_name:long_name = "Instance Names" ;
		instance_name:cf_role = "timeseries_id" ;
		instance_name:standard_name = "instance_id" ;
	double x(coordinates) ;
		x:units = "degrees_east" ;
		x:standard_name = "geometry x node" ;
	double y(coordinates) ;
		y:units = "degrees_north" ;
		y:standard_name = "geometry y node" ;

// global attributes:
		:cdm_data_type = "line" ;
		:Conventions = "CF-1.8" ;
		:featureType = "timeSeries" ;
		:standard_name_vocabulary = "CF-1.8" ;
data:

 coordinate_index = 1, 2, 3 ;

 coordinate_index_stop = 3 ;

 instance_name =
  "1" ;

 x = 30, 10, 40 ;

 y = 10, 30, 40 ;
}
  

Polygon (2D)

Well Known Text (WKT): POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))
Common Data Language (CDL):

netcdf sample_polygon {
dimensions:
	coordinate_index = 5 ;
	instance = 1 ;
	name_strlen = 1 ;
	coordinates = 5 ;
variables:
	float coordinate_index(coordinate_index) ;
		coordinate_index:long_name = "index for coordinates and geometry break values" ;
		coordinate_index:coordinates = "x y" ;
		coordinate_index:multipart_break_value = -1. ;
		coordinate_index:hole_break_value = -2. ;
		coordinate_index:outer_ring_order = "anticlockwise" ;
		coordinate_index:closure_convention = "last_node_equals_first" ;
		coordinate_index:geom_type = "multipolygon" ;
	float coordinate_index_stop(instance) ;
		coordinate_index_stop:long_name = "index for last coordinate in each instance geometry" ;
		coordinate_index_stop:contiguous_ragged_dimension = "coordinate_index" ;
	char instance_name(instance, name_strlen) ;
		instance_name:long_name = "Instance Names" ;
		instance_name:cf_role = "timeseries_id" ;
		instance_name:standard_name = "instance_id" ;
	double x(coordinates) ;
		x:units = "degrees_east" ;
		x:standard_name = "geometry x node" ;
	double y(coordinates) ;
		y:units = "degrees_north" ;
		y:standard_name = "geometry y node" ;

// global attributes:
		:cdm_data_type = "polygon" ;
		:Conventions = "CF-1.8" ;
		:featureType = "timeSeries" ;
		:standard_name_vocabulary = "CF-1.8" ;
data:

 coordinate_index = 1, 2, 3, 4, 5 ;

 coordinate_index_stop = 5 ;

 instance_name =
  "1" ;

 x = 30, 10, 20, 40, 30 ;

 y = 10, 20, 40, 40, 10 ;
}
  

MultiPoint (2D)

Well Known Text (WKT): MULTIPOINT ((10 40), (40 30), (20 20), (30 10))
Common Data Language (CDL):

netcdf sample_multipoint {
dimensions:
	station = 4 ;
	name_strlen = 1 ;
variables:
	double lat(station) ;
		lat:units = "degrees_north" ;
		lat:_FillValue = -999. ;
		lat:long_name = "latitude of the observation" ;
		lat:standard_name = "latitude" ;
	double lon(station) ;
		lon:units = "degrees_east" ;
		lon:_FillValue = -999. ;
		lon:long_name = "longitude of the observation" ;
		lon:standard_name = "longitude" ;
	char station_name(station, name_strlen) ;
		station_name:long_name = "Station Names" ;
		station_name:cf_role = "timeseries_id" ;
		station_name:standard_name = "station_id" ;

// global attributes:
		:Conventions = "CF-1.7" ;
		:featureType = "timeSeries" ;
		:cdm_data_type = "Station" ;
		:standard_name_vocabulary = "CF-1.7" ;
data:

 lat = 40, 30, 20, 10 ;

 lon = 10, 40, 20, 30 ;

 station_name =
  "1",
  "2",
  "3",
  "4" ;
}
  

MultiLineString (2D)

Well Known Text (WKT): MULTILINESTRING ((10 10, 20 20, 10 40), (40 40, 30 30, 40 20, 30 10))
Common Data Language (CDL):

netcdf sample_multilinestring {
dimensions:
	coordinate_index = 8 ;
	instance = 1 ;
	name_strlen = 1 ;
	coordinates = 7 ;
variables:
	float coordinate_index(coordinate_index) ;
		coordinate_index:long_name = "index for coordinates and geometry break values" ;
		coordinate_index:coordinates = "x y" ;
		coordinate_index:multipart_break_value = -1. ;
		coordinate_index:geom_type = "multiline" ;
	float coordinate_index_stop(instance) ;
		coordinate_index_stop:long_name = "index for last coordinate in each instance geometry" ;
		coordinate_index_stop:contiguous_ragged_dimension = "coordinate_index" ;
	char instance_name(instance, name_strlen) ;
		instance_name:long_name = "Instance Names" ;
		instance_name:cf_role = "timeseries_id" ;
		instance_name:standard_name = "instance_id" ;
	double x(coordinates) ;
		x:units = "degrees_east" ;
		x:standard_name = "geometry x node" ;
	double y(coordinates) ;
		y:units = "degrees_north" ;
		y:standard_name = "geometry y node" ;

// global attributes:
		:cdm_data_type = "line" ;
		:Conventions = "CF-1.8" ;
		:featureType = "timeSeries" ;
		:standard_name_vocabulary = "CF-1.8" ;
data:

 coordinate_index = 1, 2, 3, -1, 4, 5, 6, 7 ;

 coordinate_index_stop = 7 ;

 instance_name =
  "1" ;

 x = 10, 20, 10, 40, 30, 40, 30 ;

 y = 10, 20, 40, 40, 30, 20, 10 ;
}
  

MultiPolygon (2D)

Well Known Text (WKT): MULTIPOLYGON (((30 20, 45 40, 10 40, 30 20)), ((15 5, 40 10, 10 20, 5 10, 15 5)))
Common Data Language (CDL):

netcdf sample_multipolygon {
dimensions:
	coordinate_index = 10 ;
	instance = 1 ;
	name_strlen = 1 ;
	coordinates = 9 ;
variables:
	float coordinate_index(coordinate_index) ;
		coordinate_index:long_name = "index for coordinates and geometry break values" ;
		coordinate_index:coordinates = "x y" ;
		coordinate_index:multipart_break_value = -1. ;
		coordinate_index:hole_break_value = -2. ;
		coordinate_index:outer_ring_order = "anticlockwise" ;
		coordinate_index:closure_convention = "last_node_equals_first" ;
		coordinate_index:geom_type = "multipolygon" ;
	float coordinate_index_stop(instance) ;
		coordinate_index_stop:long_name = "index for last coordinate in each instance geometry" ;
		coordinate_index_stop:contiguous_ragged_dimension = "coordinate_index" ;
	char instance_name(instance, name_strlen) ;
		instance_name:long_name = "Instance Names" ;
		instance_name:cf_role = "timeseries_id" ;
		instance_name:standard_name = "instance_id" ;
	double x(coordinates) ;
		x:units = "degrees_east" ;
		x:standard_name = "geometry x node" ;
	double y(coordinates) ;
		y:units = "degrees_north" ;
		y:standard_name = "geometry y node" ;

// global attributes:
		:cdm_data_type = "polygon" ;
		:Conventions = "CF-1.8" ;
		:featureType = "timeSeries" ;
		:standard_name_vocabulary = "CF-1.8" ;
data:

 coordinate_index = 1, 2, 3, 4, -1, 5, 6, 7, 8, 9 ;

 coordinate_index_stop = 9 ;

 instance_name =
  "1" ;

 x = 30, 10, 45, 30, 15, 5, 10, 40, 15 ;

 y = 20, 40, 40, 20, 5, 10, 20, 10, 5 ;
}
  

Polygon with One Interior Ring (2D)

Well Known Text (WKT): POLYGON ((35 10, 45 45, 15 40, 10 20, 35 10), (20 30, 35 35, 30 20, 20 30))
Common Data Language (CDL):

netcdf sample_polygon_hole {
dimensions:
	coordinate_index = 10 ;
	instance = 1 ;
	name_strlen = 1 ;
	coordinates = 9 ;
variables:
	float coordinate_index(coordinate_index) ;
		coordinate_index:long_name = "index for coordinates and geometry break values" ;
		coordinate_index:coordinates = "x y" ;
		coordinate_index:multipart_break_value = -1. ;
		coordinate_index:hole_break_value = -2. ;
		coordinate_index:outer_ring_order = "anticlockwise" ;
		coordinate_index:closure_convention = "last_node_equals_first" ;
		coordinate_index:geom_type = "multipolygon" ;
	float coordinate_index_stop(instance) ;
		coordinate_index_stop:long_name = "index for last coordinate in each instance geometry" ;
		coordinate_index_stop:contiguous_ragged_dimension = "coordinate_index" ;
	char instance_name(instance, name_strlen) ;
		instance_name:long_name = "Instance Names" ;
		instance_name:cf_role = "timeseries_id" ;
		instance_name:standard_name = "instance_id" ;
	double x(coordinates) ;
		x:units = "degrees_east" ;
		x:standard_name = "geometry x node" ;
	double y(coordinates) ;
		y:units = "degrees_north" ;
		y:standard_name = "geometry y node" ;

// global attributes:
		:cdm_data_type = "polygon" ;
		:Conventions = "CF-1.8" ;
		:featureType = "timeSeries" ;
		:standard_name_vocabulary = "CF-1.8" ;
data:

 coordinate_index = 1, 2, 3, 4, 5, -2, 6, 7, 8, 9 ;

 coordinate_index_stop = 9 ;

 instance_name =
  "1" ;

 x = 35, 10, 15, 45, 35, 20, 30, 35, 20 ;

 y = 10, 20, 40, 45, 10, 30, 20, 35, 30 ;
}
  

MultiPolygon with One Interior Ring (2D)

Well Known Text (WKT): MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)), ((20 35, 10 30, 10 10, 30 5, 45 20, 20 35), (30 20, 20 15, 20 25, 30 20)))
Common Data Language (CDL):

netcdf sample_multipolygon_hole {
dimensions:
	coordinate_index = 16 ;
	instance = 1 ;
	name_strlen = 1 ;
	coordinates = 14 ;
variables:
	float coordinate_index(coordinate_index) ;
		coordinate_index:long_name = "index for coordinates and geometry break values" ;
		coordinate_index:coordinates = "x y" ;
		coordinate_index:multipart_break_value = -1. ;
		coordinate_index:hole_break_value = -2. ;
		coordinate_index:outer_ring_order = "anticlockwise" ;
		coordinate_index:closure_convention = "last_node_equals_first" ;
		coordinate_index:geom_type = "multipolygon" ;
	float coordinate_index_stop(instance) ;
		coordinate_index_stop:long_name = "index for last coordinate in each instance geometry" ;
		coordinate_index_stop:contiguous_ragged_dimension = "coordinate_index" ;
	char instance_name(instance, name_strlen) ;
		instance_name:long_name = "Instance Names" ;
		instance_name:cf_role = "timeseries_id" ;
		instance_name:standard_name = "instance_id" ;
	double x(coordinates) ;
		x:units = "degrees_east" ;
		x:standard_name = "geometry x node" ;
	double y(coordinates) ;
		y:units = "degrees_north" ;
		y:standard_name = "geometry y node" ;

// global attributes:
		:cdm_data_type = "polygon" ;
		:Conventions = "CF-1.8" ;
		:featureType = "timeSeries" ;
		:standard_name_vocabulary = "CF-1.8" ;
data:

 coordinate_index = 1, 2, 3, 4, 5, 6, -1, 7, 8, 9, 10, -2, 11, 12, 13, 14 ;

 coordinate_index_stop = 14 ;

 instance_name =
  "1" ;

 x = 20, 45, 30, 10, 10, 20, 40, 45, 20, 40, 30, 20, 20, 30 ;

 y = 35, 20, 5, 10, 30, 35, 40, 30, 45, 40, 20, 25, 15, 20 ;
}
  

Multiple MultiPolygons with Interior Rings (2D)

Well Known Text (WKT): MULTIPOLYGON(((0 0, 20 0, 20 20, 0 20, 0 0), (1 1, 10 5, 19 1, 1 1), (5 15, 7 19, 9 15, 5 15), (11 15, 13 19, 15 15, 11 15)), ((5 25, 9 25, 7 29, 5 25)), ((11 25, 15 25, 13 29, 11 25)))
Common Data Language (CDL):

netcdf sample_multipolygons_holes {
dimensions:
	coordinate_index = 30 ;
	instance = 1 ;
	name_strlen = 1 ;
	coordinates = 25 ;
variables:
	float coordinate_index(coordinate_index) ;
		coordinate_index:long_name = "index for coordinates and geometry break values" ;
		coordinate_index:coordinates = "x y" ;
		coordinate_index:multipart_break_value = -1. ;
		coordinate_index:hole_break_value = -2. ;
		coordinate_index:outer_ring_order = "anticlockwise" ;
		coordinate_index:closure_convention = "last_node_equals_first" ;
		coordinate_index:geom_type = "multipolygon" ;
	float coordinate_index_stop(instance) ;
		coordinate_index_stop:long_name = "index for last coordinate in each instance geometry" ;
		coordinate_index_stop:contiguous_ragged_dimension = "coordinate_index" ;
	char instance_name(instance, name_strlen) ;
		instance_name:long_name = "Instance Names" ;
		instance_name:cf_role = "timeseries_id" ;
		instance_name:standard_name = "instance_id" ;
	double x(coordinates) ;
		x:units = "degrees_east" ;
		x:standard_name = "geometry x node" ;
	double y(coordinates) ;
		y:units = "degrees_north" ;
		y:standard_name = "geometry y node" ;

// global attributes:
		:cdm_data_type = "polygon" ;
		:Conventions = "CF-1.8" ;
		:featureType = "timeSeries" ;
		:standard_name_vocabulary = "CF-1.8" ;
data:

 coordinate_index = 1, 2, 3, 4, 5, -2, 6, 7, 8, 9, -2, 10, 11, 12, 13, -1, 
    14, 15, 16, 17, -1, 18, 19, 20, 21, -2, 22, 23, 24, 25 ;

 coordinate_index_stop = 25 ;

 instance_name =
  "1" ;

 x = 0, 0, 20, 20, 0, 1, 19, 10, 1, 5, 9, 7, 5, 5, 7, 9, 5, 11, 13, 15, 11, 
    11, 15, 13, 11 ;

 y = 0, 20, 20, 0, 0, 1, 1, 5, 1, 15, 15, 19, 15, 25, 29, 25, 25, 25, 29, 25, 
    25, 15, 15, 19, 15 ;
}
  

Clone this wiki locally