The altitude computation uses the general knowledge that with increasing altitude the atmospheric pressure drops. There is even equation (or several equations) describing what the drop in pressure is.

Now, there exists something call SSL – standard sea level – (https://en.wikipedia.org/wiki/Standard_sea_level) which is essentially a set of physical constants taken as boundary conditions during calculations. These values, or constants to be exact, are just what they are – constants, providing some reasonable and widely accepted *standard* set of values. This is because the pressure field is variable and depends not only on the altitude, but also on many external factors. In those cases, physicists and people in the national institutes of standards and measures just define some abstract reference point, which is exactly what SSL is.

The sensor obviously does not know what is the current pressure and temperature at the 0 m level (which in real-life is fairly variable and in some sense, because of tidal flow and other things, does not even exist) so it takes the necessary values from the SSL set.

So when you look at the altitude output from the sensor, you have to interpret it in way that takes these things into account, i.e. something like this: "assuming the 0-level is now the same as SSL and assuming the pressure field is homogeneous (and perhaps assuming some other things), then the pressure the sensor indicates is equivalent to me having X meters altitude, relative to the ideal reference abstract location, i.e. the SSL.

You would need GPS to get something independent on the atmospheric pressure.

ad the calibration – that you can do easily manually, I think. There is an offset input on the sensor, but I don’t think it’s exported via the bigclown api. But you should figure out which sensor is more precise – what if the other ones are the bad accuracy sensors? What makes you believe it’s the bigclown sensor that is not measuring right? IIRC, the data sheet specs are quite good.