橢球面上梯形面積的通用公式和圖幅公式

import numpy as np

def ellipsoidal_trapezoid_area(a, b, phi1_deg, phi2_deg, delta_L_deg, is_map_sheet=False):
??? """
??? 計算橢球面上梯形面積的通用公式和圖幅公式
?? ?
??? 參數:
??????? a: 橢球長半軸(米)
??????? b: 橢球短半軸(米)
??????? phi1_deg: 起始緯度(度)
??????? phi2_deg: 終止緯度(度)
??????? delta_L_deg: 經差(度)
??????? is_map_sheet: 是否使用圖幅公式(默認False,使用通用公式)
?? ?
??? 返回:
??????? 梯形面積(平方米)
??? """
??? # 轉換為弧度
??? phi1 = np.radians(phi1_deg)
??? phi2 = np.radians(phi2_deg)
?? ?
??? # 計算第一偏心率平方 e2
??? e_sq = 1 - (b**2 / a**2)
??? e = np.sqrt(e_sq)
?? ?
??? # 定義被積函數的兩部分
??? def term1(phi):
??????? return (np.sin(phi) * np.cos(phi)) / (1 - e_sq * np.sin(phi)**2)
?? ?
??? def term2(phi):
??????? return (1 / (2 * e)) * np.log((1 + e * np.sin(phi)) / (1 - e * np.sin(phi)))
?? ?
??? # 計算積分結果
??? integral = (term1(phi2) + term2(phi2)) - (term1(phi1) + term2(phi1))
?? ?
??? # 選擇公式
??? if is_map_sheet:
??????? # 圖幅公式:經差需以“分”為單位,系數為 4πb2/(360*60)
??????? delta_L_min = delta_L_deg * 60? # 度轉分
??????? area = (4 * np.pi * b**2 / (360 * 60)) * delta_L_min * integral
??? else:
??????? # 通用公式:經差以弧度為單位
??????? delta_L_rad = np.radians(delta_L_deg)
??????? area = (b**2) * delta_L_rad * integral
?? ?
??? return area


# 示例:WGS84 橢球參數
a = 6378137.0?????? # 長半軸(米)
b = 6356752.314245? # 短半軸(米)

# 案例1:計算緯度 20°-25°、經差 1° 的梯形面積
phi1_deg = 20.0
phi2_deg = 25.0
delta_L_deg = 1.0

# 通用公式計算
area_general = ellipsoidal_trapezoid_area(a, b, phi1_deg, phi2_deg, delta_L_deg)
# 圖幅公式計算(經差需為分數,此處1°=60')
area_map_sheet = ellipsoidal_trapezoid_area(a, b, phi1_deg, phi2_deg, delta_L_deg, is_map_sheet=True)

print("通用公式結果:")
print(f"面積 = {area_general:.2f} 平方米 | {area_general / 1e6:.2f} 平方公里")
print("\n圖幅公式結果 (經差1°=60'):")
print(f"面積 = {area_map_sheet:.2f} 平方米 | {area_map_sheet / 1e6:.2f} 平方公里")
print(f"\n差值 = {abs(area_general - area_map_sheet):.2f} 平方米")

# 案例2:標準1:1萬圖幅(經差3.75',緯差2.5')
delta_L_deg_map = 3.75 / 60? # 3.75分轉度
delta_phi_deg_map = 2.5 / 60? # 2.5分轉度
phi_start = 30.0? # 起始緯度30°
phi_end = phi_start + delta_phi_deg_map

area_1_10000 = ellipsoidal_trapezoid_area(a, b, phi_start, phi_end, delta_L_deg_map, is_map_sheet=True)
print("\n1:1萬標準圖幅面積 (30°N, 經差3.75', 緯差2.5'):")
print(f"面積 = {area_1_10000:.2f} 平方米 | {area_1_10000 / 1e6:.4f} 平方公里")

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

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

相關文章

Pytest 入門:測試函數與測試類詳解

概述 在編寫自動化測試時,了解如何組織和管理測試用例是至關重要的。Pytest 提供了靈活的方式來定義測試函數和測試類,并支持多層次的設置(setup)和清理(teardown)機制,幫助你更高效地進行代碼驗證。本文將詳細介紹 測試函數 和 測試類 的概念、定義、注意點以及實際操…

大模型的部署簡單搭建

大模型的部署搭建 真的好久沒有進行博客的寫作了,原因,最近的自己生活有點小波動, 最近想想還是有空寫一篇文章,這篇文章的描述是學習的當下熱門AI 本期,介紹的也是AI相關的LLM(大語言模型) 這個好多人應該都是模糊的,包括我一開始沒有學習,就感覺牛逼的不行,今天我們親自部署實…

基于ssm英語學習交流平臺微信小程序源碼數據庫文檔

摘要 隨著信息技術在管理上越來越深入而廣泛的應用,管理信息系統的實施在技術上已逐步成熟。本文介紹了英語學習交流平臺小程序的開發全過程。通過分析英語學習交流平臺小程序管理的不足,創建了一個計算機管理英語學習交流平臺小程序的方案。文章介紹了英…

華為云Flexus+DeepSeek征文|在Dify-LLM平臺中開發童話故事精靈工作流AI Agent

華為云FlexusDeepSeek征文|在Dify-LLM平臺中開發童話故事精靈工作流AI Agent 🌟嗨,我是LucianaiB! 🌍 總有人間一兩風,填我十萬八千夢。 🚀 路漫漫其修遠兮,吾將上下而求索。 目錄…

從實踐出發談如何開發一款好用的RTMP播放器

近幾年,RTMP 播放器市場涌現出大量“宣傳型”產品。各種“低延遲”“不卡頓”“跨平臺”幾乎成為標配口號,宣傳文案看起來精彩紛呈,實際項目落地時卻屢屢暴露問題:啟動緩慢、黑屏、音畫不同步,甚至連基本的穩定播放都無…

STM32F1\F4\H7 CubeMx 定時器配置

目錄 1 定時器使用 1.1 CubeMX 配置 1.1.1 創建工程 1.1.2 時鐘配置 1.1.3 定時器配置 1.1.4 GPIO 配置 1.1.5 工程管理 1.2 keil5 配置 1.2.1 添加代碼 1.2.2 修改配置 1.2.3 下載程序 2 PWM使用 2.1 CubeMX 配置 2.1.1 PWM 配置 2.1.2 周期\頻率計算方法 2.2…

2025中科院2區SCI-狀態優化算法Status-based Optimization-附Matlab免費代碼

近年來,現實世界的優化問題變得越來越復雜,挑戰了傳統確定性方法的有效性。本文介紹了基于狀態的優化(SBO),這是一種受人類對地位提升的渴望啟發的高效算法。通過模擬個人如何接近、學習或從高地位人物那里獲得資源&am…

MySQL 啟動報錯 “The server quit without updating PID file“ 的全面解決方案(適用于 5.7/8.0 全版本)

摘要 在 MySQL 數據庫運維中,"The server quit without updating PID file" 是常見且棘手的啟動錯誤。本文結合 MySQL 官方文檔及實戰經驗,系統梳理該錯誤的 10 大核心成因與解決方案,覆蓋權限、配置、磁盤、SELinux 等多維度&…

運行時安全引擎RSE

安全之安全(security)博客目錄導讀 目錄 一、RSE 通信層 1.1 消息結構 1.2 源代碼文件 1.3 MHU 通信的 API 二、RSE 提供的運行時服務 2.1 運行時服務 API 2.2 軟件與 API 層次結構 三、基于 RSE 的 Measured Boot(度量啟動) 3.1 Measured Boo…

Elasticsearch、Faiss、Milvus在向量索引實現上的核心差

Faiss、Elasticsearch(ES)和Milvus在向量索引實現上的核心差異主要體現在架構定位、索引技術、擴展性及適用場景上,具體對比如下: 一、架構設計與定位? ?維度??Faiss??Elasticsearch??Milvus??核心定位?單機向量索引…

iot-dc3 項目windows本地運行保姆喂奶級教程

一.源碼拉取 當前時間:2025年06月18日12點02分 后臺接口服務:https://gitee.com/pnoker/iot-dc3.git 前端:https://gitee.com/pnoker/iot-dc3-web.git 請自行拉取至本地。 二.本地環境準備 其他基礎環境先不講了,如有需要請留言。 idea + VS Code。 IntelliJ IDEA 2024.2.…

內部網關協議配置實驗

一:靜態路由 簡述:在華為路由器中,使用ip route-static命令配置靜態路由。一條靜態路由主要包含以下要素。 目的地址:數據包要到達的目標IP地址 子網掩碼:用于指定目的地址的網絡部分和主機部分 下一跳地址&#xff08…

大模型應用:如何使用Langchain+Qwen部署一套Rag檢索系統

一、TL;DR 從0-1使用qwen chat model langchain的鏈式架構搭建一套rag系統詳細介紹了Langchain的工具鏈的調用流程簡單介紹了可能會出現什么問題 二、方法 參考開源鏈接:https://github.com/Aphasia0515/self_llm/ 2.1 硬件和軟件依賴 類型需求備注…

決策樹:化繁為簡的智能決策利器

本文來自「大千AI助手」技術實戰系列,專注用真話講技術,拒絕過度包裝。 想象一個相親決策過程: 對方收入 > 30萬? → 是 → 見面否 → 顏值高? → 是 → 先聊聊否 → 放棄 這種層層遞進的判斷結構,正是…

html中的盒子標簽div標簽,有序列表,無序列表

div標簽 div標簽對于分析數據很重要&#xff0c;因為數據在頁面中展示是以區域的形式展示的&#xff0c;而查找數據需要先找到盒子名稱在繼續向下找。前端頁面布局中有兩種布局方式&#xff0c;一種是通過表格布局&#xff0c;一種是通過divcss來布局。 <!DOCTYPE html>…

【Redis】解碼Redis中hash類型:理解基礎命令,以及內部編碼方式和使用場景

&#x1f4da;?前言 &#x1f31f;&#x1f31f;&#x1f31f;精彩讀導 本次我們將全面剖析Redis的核心技術要點&#xff0c;包括其豐富的數據類型體系、高效的編碼方式以及秒級響應的性能奧秘。對于渴望深入理解Redis底層機制的技術愛好者&#xff0c;這是一次難得的學習機會…

AI工具在學術寫作中的倫理邊界與誠信規范的平衡

AI寫作助手的興起與爭議 人工智能技術的飛速發展&#xff0c;學境思源&#xff0c;ChatGPT、Grok、Claude 等AI寫作工具逐漸走入高校師生的視野。一鍵生成論文初稿&#xff01;從課程作業到畢業論文&#xff0c;不少學生已經嘗試讓AI參與寫作過程&#xff0c;希望借此提升效率…

課程專注度分析系統項目

前端代碼: <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>課堂專注度分析系統 - 科技…

區塊鏈是什么

區塊鏈的本質與機制 1. 核心定義 區塊鏈 加密的分布式記賬技術&#xff0c;融合密碼學、網絡學、金融學三大學科。 去中心化&#xff1a;數據存儲于全網節點&#xff08;如百萬臺計算機&#xff09;&#xff0c;而非單一數據庫。不可篡改&#xff1a;修改數據需控制全網51%以…

用可觀測工具高效定位和查找設計中深度隱藏的bug

軟件仿真擁有最佳的信號可見性和調試靈活性,被大多數工程師熟練使用,能夠高效捕獲很多顯而易見的常見錯誤。 然而,由軟件實現的數字仿真過程運行速度有限,很難做到100%代碼覆蓋。導致那些深度隱藏的設計問題,將不可避免的逃逸,只能以FPGA在線調試方式解決。 01 為什么全…