All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ucar.nc2.ft2.coverage.remote.cdmrfeature.proto Maven / Gradle / Ivy

The newest version!
syntax = "proto3";

import "ucar/nc2/stream/ncStream.proto";

option java_package = "ucar.nc2.ft2.coverage.remote";
option java_outer_classname = "CdmrFeatureProto";

message CoordTransform {
  bool isHoriz = 1;
  string name = 2;          // short name, unique within dataset
  repeated Attribute params = 3;
}

enum AxisType {  // same as ucar.nc2.constants.AxisType
  RunTime=0;
  Ensemble=1;
  Time=2;
  GeoX=3;
  GeoY=4;
  GeoZ=5;
  Lat=6;
  Lon=7;
  Height=8;
  Pressure=9;
  RadialAzimuth=10;
  RadialDistance=11;
  RadialElevation=12;
  Spectral=13;
  TimeOffset=14;
}

enum AxisSpacing {  // same as CoverageCoordAxis.Spacing
  regularPoint=0;
  irregularPoint=1;
  contiguousInterval=2;
  discontiguousInterval=3;
  regularInterval=4;
}

enum DependenceType {  // same as CoverageCoordAxis.DependenceType
  independent=0;     // has its own dimension, is a coordinate variable, eg x(x)
  dependent=1;       // aux coordinate, reftime(time) or time_bounds(time);
  scalar=2;          // reftime
  twoD=3;            // lat(x,y)
  fmrcReg=4;         // time(reftime, hourOfDay)
}

message CoordAxis {
  string name = 1;          // short name, unique within dataset
  DataType dataType = 2;
  repeated Attribute atts = 3;       // find calendar attribute here?
  AxisType axisType = 4;
  string units = 5;
  string description = 6;

  DependenceType depend = 7;
  repeated string dependsOn = 8;    // depends on these axes, only for non-independent axes
  repeated uint32 shape = 9;        // the shape of the axis (>1D only)

  int64 nvalues = 10;
  AxisSpacing spacing = 11;
  double startValue = 12;
  double endValue = 13;
  double resolution = 14;     // resolution = (end-start) / (nvalues-1)
  bytes values = 15;          // big endian doubles; not used for regular, may be deferred
}

message CoordSys {
  string name = 1;               // must be unique in dataset's CoordSys
  repeated string axisNames = 2;
  repeated string transformNames = 3;
  CoverageType coverageType = 5;
}

enum Calendar {  // same as ucar.nc2.time.Calendar
  proleptic_gregorian=0;
  gregorian=1;
  noleap=2;
  all_leap=3;
  uniform30day=4;
  julian=5;
  none=6;
}

message CalendarDateRange {
  int64 start = 1;
  int64 end = 2;
  Calendar calendar = 3;
}

message Rectangle {
  double startx = 1;
  double starty = 2;
  double incx = 3;
  double incy = 4;
}

//////////////////////////////////////////////////////
// Coverage

enum CoverageType {
  General=0;
  Curvilinear=1;
  Grid=2;
  Swath=3;
  Fmrc=4;
}

message Coverage {
  string name = 1;               // short name, unique within dataset
  DataType dataType = 2;
  repeated Attribute atts = 4;
  string coordSys = 5;
  string units = 6;
  string description = 7;
}

message CoverageDataset {
  string name = 1;
  repeated Attribute atts = 2;
  Rectangle latlonRect = 3;
  Rectangle projRect = 4;
  CalendarDateRange dateRange = 5;

  repeated CoordSys coordSys = 6;
  repeated CoordTransform coordTransforms = 7;
  repeated CoordAxis coordAxes = 8;
  repeated Coverage grids = 9;
  CoverageType coverageType = 10;
}

message GeoReferencedArray {
  string coverageName = 1;          // full escaped name.
  DataType dataType = 2;
  bool bigend = 3;
  uint32 version = 4;               // set to >= 3 for proto3
  Compress compress = 5;
  uint64 uncompressedSize = 6;

  repeated uint32 shape = 7;            // the shape of the returned array
  repeated string axisName = 8;         // each dimension corresponds to this axis
  string coordSysName = 9;              // must have coordAxes corresponding to shape

  bytes primdata = 10;              // rectangular, primitive array
}

message CoverageDataResponse {
  repeated CoordAxis coordAxes = 1;              // may be shared if asking for multiple grids
  repeated CoordSys coordSys = 2;                //    "
  repeated CoordTransform coordTransforms = 3;   //    "

  repeated GeoReferencedArray geoArray = 4;
}

//  cd c:/dev/github/thredds/cdm/src/main/java
//  protoc --proto_path=. --java_out=. ucar/nc2/ft2/coverage/remote/cdmrfeature.proto




© 2015 - 2024 Weber Informatics LLC | Privacy Policy