В зданиях без свободного обмена с атмосферой вполне может быть инверсия температурного градиента, т.е. выше теплее.
В метро ещё хуже, может быть и увеличение градиента (ниже сильно теплее расчётного), и значимый ветер (на эскалаторах уж точно), т.е. завышение или занижение давления от высотного.
Зависимость от абсолютной температуры в обоих формулах линейна, значит температуру надо знать/измерять не хуже погрешности высоты, для высот до 300м с погрешностью метр не хуже 1°. В то же время расчётный градиент температуры в атмосфере на 300м составит
°, вдвое больше. Т.е. если температура известна с погрешностью в полградуса, то не стоит ожидать точности выше 0.2м для высот более сотни метров.
Температуру на какой высоте вводить это дело вкуса, я бы вводил на обеих и проверял бы укладывается ли разность (со знаком) в расчётный градиент (
). Если укладывается или просто меньше погрешности, то пользоваться средней. Если не укладывается, то расчёт некорректный и пользоваться самым грубым приближением (
для давления в мм.рт.ст.), уведомляя об этом пользователя.
Вопрос откуда вообще брать реальную температуру кажется обсуждался на первых страницах темы, лучше всего конечно её измерять вместе с давлением, но с этим куча проблем (начиная от тепловой инерции корпуса датчика до влияния ветра). Вводить же данные гисметео или других смысла вообще нет, она может на несколько градусов отличаться от реальной в данной точке (а в зданиях или станциях метро и на десятки градусов). И кстати вверху при входе в метро может быть зимняя температура, ну или скажем +5°С вверху эскалатора, а внизу запросто при этом +17°С, что ну никакого отношения к глубине залегания не имеет.
Если вопрос именно про глубину залегания станций метро, то я бы посоветовал съездить по нескольким и записать сырые данные о давлении и температуре (и влажности если сможете измерить), лучше при разной погоде снаружи, потом посчитать и сравнить с известными глубинами залегания станций. Подозреваю затея с разностью атмосферных давлений для метро изначально дохлая.
Для закрытых зданий вторая формула неприменима и остаётся или первая (в предположении постоянства температуры с высотой), или, если есть заметное изменение температуры, то честный расчёт по формуле плотности воздуха от давления, температуры, влажности если она доступна и высоты (её можно оттуда выразить наложив условие статичности столба воздуха).
В интерфейсе придётся предусматривать галку на открытом воздухе производятся измерения или в закрытом здании. Ну или сравнивать расчёт по двум формулам и увеличивать погрешность результата до разности между ними. Или делать автовыбор формул по знаку градиента температуры (в закрытых зданиях выше теплее, в атмосфере холоднее), но тогда вопрос откуда берётся температура (насколько ей можно доверять и какова её точность). Ну или тупо ограничиться точностью высоты в процент-два (да, порядка метра(-ов) на интересующих Вас высотах), что должно перекрыть все эти неточности.