Skip to content

Commit

Permalink
Magics: Fixing NetcdfXYpoints to better deal with missing data.
Browse files Browse the repository at this point in the history
  • Loading branch information
sylvielamythepaut committed Sep 16, 2022
1 parent a88381b commit 3a144a0
Showing 1 changed file with 16 additions and 3 deletions.
19 changes: 16 additions & 3 deletions src/decoders/NetcdfGeopointsInterpretor.cc
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,14 @@ bool NetcdfGeopointsInterpretor::interpretAsPoints(PointsList& list, const Trans
netcdf.get(field_, values, first, last);
setDim(netcdf, longitude_, longitudes, first, last);
setDim(netcdf, latitude_, latitudes, first, last);
double missing = numeric_limits<double>::max();

double missing = netcdf.getMissing(field_, missing_attribute_);
if (field_.empty() == false) {
netcdf.get(field_, values, first, last);
missing = netcdf.getMissing(field_, missing_attribute_);
}


vector<double>::iterator lat = latitudes.begin();
vector<double>::iterator lon = longitudes.begin();
vector<double>::const_iterator val = values.begin();
Expand Down Expand Up @@ -251,16 +256,20 @@ bool NetcdfXYpointsInterpretor::interpretAsPoints(PointsList& list, const Transf
vector<double> values;
map<string, string> first, last;
setDimensions(dimension_, first, last);
double missing = numeric_limits<double>::max();

if (field_.empty() == false) {
netcdf.get(field_, values, first, last);
missing = netcdf.getMissing(field_, missing_attribute_);
}
setDim(netcdf, x_, xs, first, last);
setDim(netcdf, y_, ys, first, last);

double xmissing = netcdf.getMissing(x_, missing_attribute_);
double ymissing = netcdf.getMissing(y_, missing_attribute_);
double missing = netcdf.getMissing(field_, missing_attribute_);



vector<double>::iterator x = xs.begin();
vector<double>::iterator y = ys.begin();
vector<double>::const_iterator val = values.begin();
Expand Down Expand Up @@ -305,16 +314,20 @@ bool NetcdfXYpointsInterpretor::interpretAsPoints(PointsList& list, const std::s
vector<double> values;
map<string, string> first, last;
setDimensions(dimension_, first, last);
double missing = numeric_limits<double>::max();

if (field_.empty() == false) {
netcdf.get(field_, values, first, last);
missing = netcdf.getMissing(field_, missing_attribute_);
}


setDim(netcdf, x_, xs, first, last);
setDim(netcdf, y_, ys, first, last);

double xmissing = netcdf.getMissing(x_, missing_attribute_);
double ymissing = netcdf.getMissing(y_, missing_attribute_);
double missing = netcdf.getMissing(field_, missing_attribute_);



baseDateX_ = "";
Expand Down

0 comments on commit 3a144a0

Please sign in to comment.