首页 > 编程语言 >python 探空数据根据“纬度”“经度”“纬度偏移量”“经度偏移量”列,纬度、经度、偏移量为浮点数,计算具体的经纬度

python 探空数据根据“纬度”“经度”“纬度偏移量”“经度偏移量”列,纬度、经度、偏移量为浮点数,计算具体的经纬度

时间:2025-01-20 22:34:35浏览次数:1  
标签:纬度 经纬度 经度 lon 偏移量 lat row

在Python中,如果您有包含“纬度”、“经度”、“纬度偏移量”和“经度偏移量”的DataFrame,并且这些值都是浮点数,可以使用这些值来计算新的、具体的经纬度。通常,这些偏移量是基于某种单位(如米、公里等)在地球表面上的距离转换而来的。由于地球是一个近似椭球体,计算精确的偏移后的经纬度需要考虑地球的曲率。

然而,对于小范围的偏移(例如几公里内),可以使用一种简化的方法,即“Haversine公式”的逆运算的一个近似版本,但这种方法通常用于从经纬度计算距离,而不是从距离反推经纬度。对于小偏移量,一个简单的线性近似(基于地球在某个点的切线平面)可能是足够的,但请注意这种方法的精度有限。

下面是一个使用线性近似的示例代码,但请注意这种方法并不精确,特别是在接近极点或偏移量较大时:

#!/usr/bin/python3
# -*- coding: utf-8 -*-
"""
@Time : 2025/1/20 22:24
@Author : Suyue
@Email : 1493117872@qq.com
@File : cloud_area.py
@Project : untitled4
"""
import pandas as pd
import numpy as np

# 读取CSV文件到DataFrame
df = pd.read_csv('D:/探空数据计算/tankong-2020-50527_with_final_times.csv')


# 并且这些偏移量是以某种单位(例如米)表示的在地球表面上的距离。
# 注意:这里的偏移量单位需要转换为度或弧度之前进行适当的转换,但这里我们假设是小偏移量并使用线性近似。

# 定义一个函数来计算新的经纬度
def calculate_new_coordinates(row, earth_radius=6371e3):  # 地球半径,单位:米
    # 注意:这里的偏移量转换是非常简化的,并不准确!
    # 正确的做法是使用更复杂的地理库(如geopy、pyproj)来进行精确的转换。
    # 但为了示例,我们假设偏移量很小,并且单位已经是度(这不是实际情况,仅用于演示)。

    # 获取原始经纬度
    lat = row['Lat']
    lon = row['Lon']

    # 获取偏移量(这里假设已经是度,实际上需要先从米转换为度)
    lat_dev = row['Lat_Dev']  # 实际上需要转换:offset_meters / (earth_radius * pi / 180) * cos(lat)
    lon_dev = row['Lon_Dev']  # 实际上需要转换:offset_meters / (earth_radius * cos(lat) * pi / 180)

    # 计算新的经纬度(这里直接使用加法,实际上应该使用更复杂的公式)
    new_lat = lat + lat_dev
    new_lon = lon + lon_dev

    return new_lat, new_lon


# 应用函数并添加新列
df[['New_Latitude', 'New_Longitude']] = df.apply(lambda row: pd.Series(calculate_new_coordinates(row)), axis=1)

# 将结果写入Excel文件
output_file_path = 'D:/探空数据计算/tankong-2020-50527_with_final_times_lat_lon.csv'
df.to_csv(output_file_path, index=False)  # index=False表示不写入行索引

# 打印成功消息
print(f"结果已成功写入Excel文件: {output_file_path}")

 

标签:纬度,经纬度,经度,lon,偏移量,lat,row
From: https://www.cnblogs.com/shirleysu90/p/18682609

相关文章

  • JAVA:根据经纬度获取夏令时以及偏移(免费)
    注:国内根据经纬度来获取夏令时区以及时区偏移量的api的服务有百度和谷歌,但是谷歌的获取夏令时和时区的api在国内服务其上部署时访问不了的(看过有在服务器上安装代理的,但是操作有点复杂。好吧,其实是我看着步骤太多,感觉太麻烦所以直接pass了)。所以目前在我获取到的信息中,只有百......
  • python脚本实现经纬度和大地高与ECEF坐标互转
    importmath#地心地固坐标系(ECEF)转经纬度和大地高defecef2lla(x,y,z):#初始近似d=0for_inrange(32):#最大迭代次数设为32,可根据实际情况调整#计算临时变量R_prime=math.sqrt(x**2+y**2+(z-d)**2)......
  • SQL 实战:基于经纬度的距离计算与位置查询
    在位置服务(LBS)系统中,基于地理位置查询和距离计算是核心功能之一。例如:查找附近的商铺、加油站或医院。计算两点之间的实际直线距离。筛选出指定范围内的用户或设备位置。MySQL提供了多种方式实现地理位置查询,包括ST_Distance_Sphere()和经典的Haversine公式。本文将......
  • 【杂谈】Kafka 消息偏移量:如何高效地定位和管理消息?
    前言在Kafka中,消息偏移量是什么?是文件中的索引吗?又是如何通过偏移量快速定位消息的?本文将深入探讨这些问题,帮助你更好地理解Kafka的偏移量机制。Kafka的偏移量是什么?Kafka中的偏移量实际上是每条消息的序号。它为每条消息提供了一个唯一的标识。通过偏移量,消费者可以......
  • 鸿蒙NEXT开发案例:经纬度距离计算
     【引言】在鸿蒙NEXT平台上,我们可以轻松地开发出一个经纬度距离计算器,帮助用户快速计算两点之间的距离。本文将详细介绍如何在鸿蒙NEXT中实现这一功能,通过简单的用户界面和高效的计算逻辑,为用户提供便捷的服务。【环境准备】•操作系统:Windows10•开发工具:DevEcoStudio......
  • 自定义typeHandler将包含经纬度对象插入到mysql的point类型的字段中
    博客:https://www.emanjusaka.top公众号:emanjusaka的编程栈下面给出关键部分代码,完整代码请访问原文地址mysql中的point类型在java中没有对应的类型匹配,需要我们自定义typeHandler去处理。环境参数SpringBootMybatisPlusmysql代码实现typeHandlerGeomPointTyp......
  • 调用高德API 进行对接钉钉的签到的经纬度计算行程轨迹
    调用高德API进行对接钉钉的签到的经纬度计算行程轨迹importjsonimportrequestskey_amap='1c807c7b070eac7b6ffa7cd894bb112a49'#生产环境中,可以根据钉钉签到中获取到的经纬度进行构造这个origin和destinationorigin='28.856221,120.741824'destination='28.91......
  • Qt/C++离线读取全国任意经纬度高程海拔值/无任何依赖/纯原创代码解析
    一、前言说明做地图开发会遇到一个常规需求,就是获取当前经纬度对应的海拔高度,也叫做高程值,很遗憾各大地图厂商都未提供接口获取,可能是有明文规定,不能地图中提供对应的海拔高度值,于是需要另想他法,尽管谷歌地图在线的api接口是提供了海拔高度值,但是懂得都懂,国内哪里还能用谷歌地图?......
  • 获取结构体成员中每个字段的偏移量
    获取结构体成员中每个字段的偏移量使用Marshal.OffsetOf来查看结构体中每个字段的偏移量:usingSystem;usingSystem.Runtime.InteropServices;publicstructExampleStruct{publicbyteb;//1bytepublicshorts;//2bytespublicinti;//4bytes......
  • 经纬度格式转换-(互转 度转度分秒 度分秒转度……)
    经纬度格式分为三种:度:             (ddd.ddddd°)                十进制小数部分(5位)               百度地图,谷歌地图,手机自带gps经纬度输出度.分:      (ddd°mm.mmm’)            十进制小数部分(3位)  ......