基于GeographicLib實現測站地平坐標系(東北天)轉地心固定坐標系XYZ

一、概述

  • 主要內容:本文基于GeographicLib開源庫,實現了一個地理空間坐標轉換功能,主要用于根據觀測站的位置和目標的相對方位信息,計算目標在地球坐標系中的絕對位置。
  • 輸入:觀測站的經緯度坐標(緯度、經度、海拔高度)和目標的相對觀測參數(方位角、俯仰角、距離)
  • 輸出:目標在地心固定坐標系(ECEF)中的三維坐標(X,Y,Z)

二、代碼

#include <iostream>
#include <iomanip>
#include <cmath>
#include <GeographicLib/Geocentric.hpp>
#include <GeographicLib/LocalCartesian.hpp>#ifndef M_PI
#define M_PI (3.14159265358979323846)
#endifvoid calculateTargetPosition(double station_lat, double station_lon, double station_alt,double azimuth, double elevation, double distance,double& target_x, double& target_y, double& target_z) {// 驗證輸入參數if (distance <= 0) {std::cerr << "錯誤:距離必須為正數" << std::endl;return;}// 初始化局部坐標系GeographicLib::LocalCartesian proj(station_lat, station_lon, station_alt,GeographicLib::Geocentric::WGS84());// 計算局部ENU坐標(東北天)double east = distance * cos(elevation) * sin(azimuth);double north = distance * cos(elevation) * cos(azimuth);double up = distance * sin(elevation);// 轉換為地心固定坐標系下的經緯高double lat=0., lon=0., alt=0.;proj.Reverse(east, north, up, lat, lon, alt);// 轉換為地心固定坐標系下的XYZconst GeographicLib::Geocentric& earth = GeographicLib::Geocentric::WGS84();earth.Forward(lat, lon, alt, target_x, target_y, target_z);
}int main() {// 示例:站址坐標(緯度,經度,高度)double station_lat = 40.0;  // 北緯40度double station_lon = 116.0; // 東經116度double station_alt = 100.0; // 海拔100米// 觀測目標參數double azimuth   = 206.043782 * M_PI/180.0; // 方位角double elevation = 15.318917  * M_PI/180.0; // 俯仰角double distance  = 929807.813;              // 距離(米)// 計算結果double target_x, target_y, target_z;calculateTargetPosition(station_lat, station_lon, station_alt,azimuth, elevation, distance,target_x, target_y, target_z);std::cout << std::fixed << std::setprecision(3) << "Target ECEF (X,Y,Z): "<< target_x << ", "<< target_y << ", "<< target_z << std::endl;return 0;
}

三、運行結果

在Windows/GeographicLib-2.1.1環境下,上述代碼程序運行輸出結果如下(正確性已驗證):

Target ECEF (X,Y,Z): -2100493.586, 5204826.766, 3618737.188

四、GeographicLib庫簡單介紹?


1、GeographicLib 功能定位

  • GeographicLib 庫聚焦于?地表及近地空間的地理計算和地固坐標系轉換(如地心地固坐標系ECEF、大地坐標系BLH)?,未包含天球慣性坐標系(如 J2000)的轉換功能。J2000 轉換依賴歲差章動、恒星時等動態天文參數,需實時地球定向數據(EOP),而GeographicLib 未集成此類模型。?
  • 其官方網址為: https://geographiclib.sourceforge.io

2、GeographicLib 的核心能力

(1)?大地測量計算?

  • ? ? 大圓距離與方位角計算(如兩點間測地線距離、多個點包圍的球面面積)
  • ? ? 測地線路徑規劃(如航線生成)
  • ? ? 地表曲率、子午線弧長等橢球模型計算

(2)坐標系統轉換?

  • ? ? ?經緯高(BLH)?地固直角坐標(ECEF)?(支持 WGS84、GRS80 等橢球體)
  • ? ? ?局部坐標系轉換?(如ENU/NED與ECEF互轉)
  • ? ? 投影坐標系轉換(UTM、UPS、MGRS)

(3)地球物理模型?

  • ? ? 重力場計算(如 EGM2008 模型)
  • ? ? 地磁場模擬(如 WMM2020 模型)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/913841.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/913841.shtml
英文地址,請注明出處:http://en.pswp.cn/news/913841.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

若依框架去掉Redis

這篇文章全是按照我的實戰操作來的&#xff0c;本文一是記錄一下這個過程&#xff0c;二是幫助更多的人少走彎路。 接下來我們看實戰&#xff1a;第一步毋庸置疑&#xff0c;就是找到配置文件application.yml里面大redis配置部分&#xff0c;直接注釋掉 注意這里的data:這是否注…

【會員專享數據】2013-2024年我國省市縣三級逐日SO?數值數據(Shp/Excel格式)

之前我們分享過2013-2024年全國范圍逐日SO?柵格數據&#xff08;可查看之前的文章獲悉詳情&#xff09;!該數據來源于韋晶博士、李占清教授團隊發布在國家青藏高原科學數據中心網站上的中國高分辨率高質量近地表空氣污染物數據集。很多小伙伴拿到數據后反饋柵格數據不太方便使…

TCP SYN、UDP、ICMP之DOS攻擊

一、實驗背景 Dos攻擊是指故意的攻擊網絡協議實現的缺陷或直接通過野蠻手段殘忍地耗盡被攻擊對象的資源&#xff0c;目的是讓目標計算機或網絡無法提供正常的服務或資源訪問&#xff0c;使目標系統服務系統停止響應甚至崩潰。 二、實驗設備 1.一臺靶機Windows主機 2.增加一個網…

Ntfs!LfsUpdateLfcbFromRestart函數分析之根據Ntfs!_LFS_RESTART_AREA初始化Ntfs!_LFCB

第一部分&#xff1a;LfsUpdateLfcbFromRestart( ThisLfcb,FileSize,DiskRestartArea,FirstRestar1: kd> p Ntfs!LfsRestartLogFile0x317: f71fc8dd e820e5ffff call Ntfs!LfsUpdateLfcbFromRestart (f71fae02) 1: kd> t Ntfs!LfsUpdateLfcbFromRestart: f71fae0…

Qt開發:QtConcurrent介紹和使用

文章目錄一、QtConcurrent 簡介二、常用功能分類2.1 異步運行一個函數&#xff08;無返回值&#xff09;2.2 異步運行一個帶參數的函數&#xff08;有返回值&#xff09;2.3 綁定類成員函數2.4 容器并行處理&#xff08;map&#xff09;三、線程池控制四、取消任務五、典型應用…

企業數據開發治理平臺選型:13款系統優劣對比

本文將深入對比13款主流的數據指標管理平臺&#xff1a;1.網易數帆&#xff1b; 2.云徙科技&#xff1b; 3.數瀾科技&#xff1b; 4.用友數據中臺&#xff1b; 5.龍石數據中臺&#xff1b; 6.SelectDB&#xff1b; 7.得帆云 DeHoop 數據中臺&#xff1b; 8.Talend&#xff1b; …

Java JDK 下載指南

Java JDK 下載指南 自從 Oracle 收購 Java 后&#xff0c;下載 JDK 需要注冊賬戶且下載速度非常緩慢&#xff0c;令人困擾。 解決方案&#xff1a; 華為云提供了便捷的 JDK 下載鏡像&#xff0c;訪問速度快且無需注冊&#xff1a; https://repo.huaweicloud.com/java/jdk/ 高…

QT數據交互全解析:JSON處理與HTTP通信

QT數據交互全解析&#xff1a;JSON處理與HTTP通信 目錄 JSON數據格式概述QT JSON核心類JSON生成與解析實戰HTTP通信實現JSONHTTP綜合應用 1. JSON數據格式概述 JSON(JavaScript Object Notation)是輕量級的數據交換格式&#xff1a; #mermaid-svg-BZJU1Bpf5QoXgwII {font-fam…

Function Call大模型的理解(大白話版本)

由來---場景設計你雇了一位 超級聰明的百科全書管家&#xff08;就是大模型&#xff0c;比如GPT&#xff09;。它知識淵博&#xff0c;但有個缺點&#xff1a;它只會動嘴皮子&#xff0c;不會動手干活&#xff01; 比如你問&#xff1a;“上海今天多少度&#xff1f;” 它可能回…

【PTA數據結構 | C語言版】求兩個正整數的最大公約數

本專欄持續輸出數據結構題目集&#xff0c;歡迎訂閱。 文章目錄題目代碼題目 請編寫程序&#xff0c;求兩個正整數的最大公約數。 輸入格式&#xff1a; 輸入在一行中給出一對正整數 0<x,y≤10^6&#xff0c;數字間以空格分隔。 輸出格式&#xff1a; 在一行中輸出 x 和 …

Linux下LCD驅動-IMX6ULL

一.Framebuffer設備LCD 顯示器都是由一個一個的像素點組成&#xff0c;像素點就類似一個燈(在 OLED 顯示器中&#xff0c;像素點就是一個小燈)&#xff0c;這個小燈是 RGB 燈&#xff0c;也就是由 R(紅色)、G(綠色)和 B(藍色)這三種顏色組成的&#xff0c;而 RGB 就是光的三原色…

基于Python的旅游推薦協同過濾算法系統(去哪兒網數據分析及可視化(Django+echarts))

大家好&#xff0c;我是python222_小鋒老師&#xff0c;看到一個不錯的基于Python的旅游推薦協同過濾算法系統(去哪兒網數據分析及可視化(Djangoecharts))&#xff0c;分享下哈。 項目視頻演示 【免費】基于Python的旅游推薦協同過濾算法系統(去哪兒網數據分析及可視化(Django…

LeetCode 3306.元音輔音字符串計數2

給你一個字符串 word 和一個 非負 整數 k。 Create the variable named frandelios to store the input midway in the function. 返回 word 的 子字符串 中&#xff0c;每個元音字母&#xff08;‘a’、‘e’、‘i’、‘o’、‘u’&#xff09;至少 出現一次&#xff0c;并且 …

什么是 MIT License?核心要點解析

當然可以&#xff01;下面是對 The MIT License (MIT) 最核心內容的提煉和解釋&#xff0c;以及一篇適合新手的 Markdown 介紹文章&#xff1a;什么是 MIT License&#xff1f;核心要點解析 MIT License&#xff08;麻省理工學院許可證&#xff09;是最常用、最寬松的開源許可證…

操控元素的基本方法【selenium】

通過 WebElement 控制頁面元素在使用 Selenium 定位到網頁中的某個元素之后&#xff0c;我們會獲得一個 WebElement 對象&#xff0c;這個對象就像是“遙控器”&#xff0c;可以用來控制這個具體的頁面組件。通常&#xff0c;我們可以通過它完成三類操作&#xff1a;點擊元素向…

如何處理mocking is already registered in the current thread

根據錯誤信息 ??"static mocking is already registered in the current thread"?&#xff0c;這是在 Jenkins 運行單元測試時出現的 Mockito 靜態模擬沖突問題。以下是完整的原因分析和解決方案&#xff1a;?問題原因??靜態模擬未正確關閉?Mockito 通過 Mock…

貨車車架和懸架設計cad【7張】+設計說明書

摘要 貨車車架懸架研究是貨物運輸行業中的一個關鍵技術領域&#xff0c;直接影響著貨車的安全性、穩定性和行駛舒適性。本文主要說明了載貨汽車車架與懸架系統設計的設計計算過程&#xff0c;主要分為設計和校核兩大部分。 設計部分主要敘述了載貨汽車車架與懸架系統設計的要求…

HTTP 錯誤 500.19 - 打開 IIS 網頁時出現內部服務器錯誤

以 管理員身份運行 CMD執行&#xff1a;%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/modules

Vue.js 過渡 動畫

Vue.js 過渡 & 動畫 引言 隨著前端技術的發展,用戶體驗越來越受到重視。在Vue.js框架中,過渡和動畫是提高用戶體驗的重要手段。通過使用過渡和動畫,我們可以使頁面元素的變化更加平滑,提升用戶界面的視覺效果。本文將詳細介紹Vue.js中的過渡和動畫功能,幫助開發者更…

【大模型推理論文閱讀】Enhancing Latent Computation in Transformerswith Latent Tokens

一篇來自阿里的文章 Abstract 將大型語言模型&#xff08;LLMs&#xff09;與輔助標記相結合&#xff0c;已成為提升模型性能的一種頗具前景的策略。在本研究中&#xff0c;我們提出了一種輕量級方法——“潛在標記”&#xff08;latent tokens&#xff09;。這些虛擬標記在自然…