45 HE5Checker::check_grids_missing_projcode(
HE5Parser* p)
48 for (
unsigned int i = 0; i <p->grid_list.size(); i++) {
50 if (HE5_GCTP_MISSING == g.projection) {
59 HE5Checker::check_grids_unknown_parameters(
HE5Parser* p)
63 for (
unsigned int i = 0; i <p->grid_list.size(); i++) {
64 g = p->grid_list.at(i);
65 if (HE5_GCTP_UNKNOWN == g.projection ||
66 HE5_HDFE_UNKNOWN == g.pixelregistration ||
67 HE5_HDFE_GD_UNKNOWN == g.gridorigin) {
76 HE5Checker::set_grids_missing_pixreg_orig(
HE5Parser* p)
79 BESDEBUG(
"h5",
"HE5Checker::set_missing_values(Grid Size="
80 << p->grid_list.size() <<
")" << endl);
81 for(i=0; i < p->grid_list.size(); i++) {
85 for(j=0; j < g.dim_list.size(); j++) {
86 HE5Dim d = g.dim_list.at(j);
87 cout <<
"Grid Dim Name=" << d.name;
88 cout <<
" Size=" << d.size << endl;
90 for(j=0; j < g.data_var_list.size(); j++) {
91 HE5Var v = g.data_var_list.at(j);
93 for(k=0; k < v.dim_list.size(); k++) {
94 HE5Dim d = v.dim_list.at(k);
95 cout <<
"Grid Var Dim Name=" << d.name << endl;
98 if(g.projection == -1){
100 "h5",
"Grid projection is not set or the projection code is wrong. Name=" << g.name
105 if (HE5_HDFE_MISSING == (p->grid_list)[i].pixelregistration)
106 (p->grid_list)[i].pixelregistration = HE5_HDFE_CENTER;
108 if (HE5_HDFE_GD_MISSING == (p->grid_list)[i].gridorigin)
109 (p->grid_list)[i].gridorigin = HE5_HDFE_GD_UL;
115 HE5Checker::check_grids_multi_latlon_coord_vars(
HE5Parser* p)
119 if (1 == p->grid_list.size() ||
120 0 == p->grid_list.size() )
return false;
124 typedef map<string, int> Dimmap;
130 for(i=0; i < p->grid_list.size(); i++) {
131 HE5Grid g = p->grid_list.at(i);
133 for(j=0; j < g.dim_list.size(); j++) {
134 HE5Dim d = g.dim_list.at(j);
135 Dimmap::iterator iter = dim_map.find(d.name);
136 if(iter != dim_map.end()){
137 if(d.size != iter->second){
143 dim_map[d.name] = d.size;
146 if (
true == flag)
break;
155 HE5Grid g = p->grid_list.at(0);
156 EOS5GridPCType projcode = g.projection;
157 EOS5GridPRType pixelreg = g.pixelregistration;
158 EOS5GridOriginType pixelorig = g.gridorigin;
165 for(i=1; i < p->grid_list.size(); i++) {
166 g = p->grid_list.at(i);
167 if (projcode != g.projection ||
168 pixelreg != g.pixelregistration ||
169 pixelorig!= g.gridorigin ||
183 bool HE5Checker::check_grids_support_projcode(
HE5Parser*p) {
186 for (
unsigned int i = 0; i <p->grid_list.size(); i++) {
187 HE5Grid g = p->grid_list.at(i);
188 if (g.projection != HE5_GCTP_GEO && g.projection != HE5_GCTP_SNSOID
189 && g.projection != HE5_GCTP_LAMAZ && g.projection != HE5_GCTP_PS) {