for some reason computing the mean in python and netcdfc++ gives two slightly different values

This commit is contained in:
Robin 2024-12-20 12:36:04 +01:00
parent 1c2ab4af76
commit e1d11e84ce
4 changed files with 20 additions and 5 deletions

Binary file not shown.

Binary file not shown.

View File

@ -7,16 +7,22 @@
int main() {
std::string path = "data/MERRA2_400.inst6_3d_ana_Np.20120101.nc4";
std::string variable = "U";
std::string variable = "T";
auto x = readData(path, variable);
// Print some values from the file to see that it worked
int num = 0;
float sum = 0;
int n = 0;
int skipped = 0;
for(int i = 0; i < x.size(); i++) {
if (x[i] < 1E14) std::cout << x[i] << "\n";
if(num > 10000) break;
num++;
if (x[i] < 1E14) {
sum += x[i];
n++;
} else {
skipped++;
}
}
std::cout << "Mean = " << sum/n << " and sum = " << sum << " using " << n << " values in computation and skipped " << skipped << " values.\n";
return 0;
}

View File

@ -15,9 +15,18 @@ print("Shape of U:", U.shape)
# Compute the mean of the variable across all axes (for all elements in U)
U_mean = np.mean(U)
U_sum = np.sum(U)
# Print the mean
print("Mean of U:", U_mean)
print("Sum of U:", U_sum)
masked_count = np.ma.count_masked(U)
print("Number of masked values in U:", masked_count)
nan_count = np.isnan(U).sum()
print("Number of NaN values in U:", nan_count)
# Close the NetCDF file
ncfile.close()