На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Высота из модели геоида с противоположным знаком

Поиск  Пользователи  Правила  Войти
Форум » Linux » Средства разработки ГИС-приложений для Linux
Страницы: 1
RSS
Высота из модели геоида с противоположным знаком
 
ГИС Конструктор 14.0.1.21 Free (AstraLinux)
Получаю значение нормальной высоты по координатам WGS84:
Код
HANDLE egmHandle = 0;
egmHandle = mapOpenEgmPro(0,0);
...
double egmH = 0.0;
mapGeoHeightToNormalHeightWGS84(B, L, &egmH, egmHandle);

Матрицу EGM2008 брал с сайта "gisinfo" из раздела "Скачать". egm2008_1min.mtw

В итоге, цифры значения высоты совпадают, а знак противоположный. Проверял в ГИС Оператор на участках с положительными высотами и отрицательными.

В чем смысл этой "операции" смены знака?

 
Цитата
Александр Р. написал:
Матрицу EGM2008 брал с сайта "gisinfo" из раздела "Скачать". egm2008_1min.mtwВ итоге, цифры значения высоты совпадают, а знак противоположный. Проверял в ГИС Оператор на участках с положительными высотами и отрицательными.В чем смысл этой "операции" смены знака?
Добрый день!
Рекомендуем ознакомиться с описанием задачи про преобразование системы высот по ссылке https://help14.gisserver.ru/russian/mtwhsys/index.html. Это Help задачи "Преобразование высот"

Описание функции, которую используете:

// Преобразование геодезической (WGS84) высоты к нормальной (MSL)

// B,L - геодезические координаты (WGS84) в радианах для точки, в которой пересчитывается высота

// hegm - идентификатор модели геоида, открытой mapOpenEgmPro
// H - высота в метрах
// При ошибке возвращает ноль
_MAPIMP long int _MAPAPI mapGeoHeightToNormalHeightWGS84(double B, double L, double *H, HANDLE hegm);

Изменено: Елена Кузнецова - 15.11.2022 12:19:23
 
Дополнительный пример по теме EGM2008
Код
#define TESTNAME "test_Egm2008"
#define PANASSERT(condition, testname) ASSERT_TRUE(condition)
#define PANASSERTCOMPLETED(testname) return 1

int test_Egm2008()
{
  HANDLE hegm = mapOpenEgm2008Un(0);
  PANASSERT(hegm, "test_Egm2008:egm2008_1min.mtw/egm2008_2.5min.mtw - not found");

  double b, l, h;
  double dh = 0;

  b = 60. * M_PI / 180.;
  l = -100. * M_PI / 180.;
  PANASSERT(mapReadEgm2008(hegm, 2, b, l, &dh), TESTNAME);       // Запрашиваем значение поправки для перехода от нормальной высоты (MSL) к геодезической на WGS-84
  PANASSERT(Compare(dh, -41.9, 0.5) == 0, TESTNAME);

  h = 0;
  PANASSERT(mapGeoHeightToNormalHeightWGS84(b, l, &h, hegm), TESTNAME);  // Пересчитываем геодезическую высоту к нормальной, поскольку высоту приравняли нулю, то результат совпадет с поправкой с другим знаком
  PANASSERT(Compare(h, -dh, 0.1) == 0, TESTNAME);

  PANASSERT(mapNormalHeightToGeoHeightWGS84(b, l, &h, hegm), TESTNAME);   
  PANASSERT(Compare(h, 0, 0.1) == 0, TESTNAME);

  b = 60. * M_PI / 180.;
  l = 100. * M_PI / 180.;
  PANASSERT(mapReadEgm2008(hegm, 2, b, l, &dh), TESTNAME);      // Запрашиваем значение поправки для перехода от нормальной высоты (MSL) к геодезической на WGS-84
  PANASSERT(Compare(dh, -33.96, 0.5) == 0, TESTNAME);

  h = 0;
  PANASSERT(mapGeoHeightToNormalHeightWGS84(b, l, &h, hegm), TESTNAME);  // Пересчитываем геодезическую высоту к нормальной, поскольку высоту приравняли нулю, то результат совпадет с поправкой с другим знаком
  PANASSERT(Compare(h, -dh, 0.1) == 0, TESTNAME);

  b = -25. * M_PI / 180.;
  l = 120. * M_PI / 180.;
  PANASSERT(mapReadEgm2008(hegm, 2, b, l, &dh), TESTNAME);
  PANASSERT(Compare(dh, -9.02, 0.5) == 0, TESTNAME);

  h = 0;
  PANASSERT(mapGeoHeightToNormalHeightWGS84(b, l, &h, hegm), TESTNAME);
  PANASSERT(Compare(h, -dh, 0.1) == 0, TESTNAME);

  b = -30. * M_PI / 180.;
  l = 20. * M_PI / 180.;
  PANASSERT(mapReadEgm2008(hegm, 2, b, l, &dh), TESTNAME);
  PANASSERT(Compare(dh, 33.32, 0.5) == 0, TESTNAME);

  h = 0;
  PANASSERT(mapGeoHeightToNormalHeightWGS84(b, l, &h, hegm), TESTNAME);
  PANASSERT(Compare(h, -dh, 0.1) == 0, TESTNAME);

  mapCloseEgm(hegm);

  PANASSERTCOMPLETED(TESTNAME);
}

Между матрицами 1 min и 2_5 min может быть отличие порядка 0.3 - 0.6 м
 
Спасибо за развернутый ответ.
Не сразу разобрался с входными данными. В описании функции не указано, что в качестве высоты необходимо отдавать "свою" геодезическую высоту WGS84. Хотя, это, видимо, очевидно из названия...  
Страницы: 1
Читают тему (гостей: 1)



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности