blob: 6d56b9904aa66b230a4016cf2dcc0fae21d3e395 [file] [log] [blame]
// Licensed to the Apache Software Foundation (ASF) under one or more
// contributor license agreements. See the NOTICE file distributed with
// this work for additional information regarding copyright ownership.
// The ASF licenses this file to You under the Apache License, Version 2.0
// (the "License"); you may not use this file except in compliance with
// the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package org.apache.sdap.nexusproto;
option java_package = "org.apache.sdap.nexusproto";
option java_multiple_files = true;
message GridTile{
ShapedArray latitude = 1;
ShapedArray longitude = 2;
int64 time = 3;
ShapedArray variable_data = 4;
repeated MetaData meta_data = 5;
}
message SwathTile{
ShapedArray latitude = 1;
ShapedArray longitude = 2;
ShapedArray time = 3;
ShapedArray variable_data = 4;
repeated MetaData meta_data = 5;
}
message TimeSeriesTile{
ShapedArray latitude = 1;
ShapedArray longitude = 2;
ShapedArray time = 3;
ShapedArray variable_data = 4;
repeated MetaData meta_data = 5;
}
message MetaData{
string name = 1;
ShapedArray meta_data = 2;
}
message ShapedArray{
repeated int32 shape = 1 [packed=true];
string dtype = 2;
bytes array_data = 3;
}
message Attribute{
string name = 1;
repeated string values = 2;
}
message TileSummary{
string tile_id = 1;
string section_spec = 2;
string dataset_name = 3;
string granule = 4;
string dataset_uuid = 5;
string data_var_name = 6;
repeated Attribute global_attributes = 7;
message BBox{
float lat_min = 1;
float lat_max = 2;
float lon_min = 3;
float lon_max = 4;
}
BBox bbox = 8;
message DataStats{
float min = 1;
float max = 2;
float mean = 3;
int64 count = 4;
int64 min_time = 5;
int64 max_time = 6;
float std_dev = 7;
float sum = 8;
float median = 9;
float variance = 10;
float skewness = 11;
float kurtosis = 12;
}
DataStats stats = 9;
}
message NexusTile{
TileSummary summary = 1;
TileData tile = 2;
}
message TileData{
string tile_id = 1;
oneof tile_type{
GridTile grid_tile = 2;
SwathTile swath_tile = 3;
TimeSeriesTile time_series_tile = 4;
}
}