بنقرة واحدة
transbigdata-coordinates
使用 TransBigData 进行坐标系转换和距离计算。适用于 WGS84、GCJ02、BD09 坐标系互转,以及两点间距离计算。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
使用 TransBigData 进行坐标系转换和距离计算。适用于 WGS84、GCJ02、BD09 坐标系互转,以及两点间距离计算。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
TransBigData 交通时空大数据分析工具集。适用于轨迹数据栅格化、轨迹清洗处理、出租车OD提取、公交地铁网络分析、坐标转换、数据可视化等交通大数据分析任务。
使用 TransBigData 获取公共交通和地理数据。适用于获取公交线路站点、行政区划边界、等时圈分析等任务。
使用 TransBigData 库进行地理数据栅格化处理。适用于将GPS轨迹数据映射到栅格、生成矩形/三角形/六边形栅格、Geohash编码、栅格参数优化等空间数据分析任务。
使用 TransBigData 构建公交地铁网络拓扑和路径分析。适用于地铁网络建模、最短路径查询、换乘分析、公交 GPS 到站识别等任务。
使用 TransBigData 进行数据预处理与质量评估。适用于数据质量检查、采样间隔分析、边界过滤、ID重编号等任务。
使用 TransBigData 处理出租车 GPS 数据。适用于出租车状态清洗、OD 提取、载客/空驶轨迹分离等任务。
| name | transbigdata-coordinates |
| description | 使用 TransBigData 进行坐标系转换和距离计算。适用于 WGS84、GCJ02、BD09 坐标系互转,以及两点间距离计算。 |
pip install transbigdata
| 坐标系 | 说明 | 常见来源 |
|---|---|---|
| WGS84 | GPS原始坐标,国际标准 | GPS设备、OpenStreetMap |
| GCJ02 | 国测局坐标(火星坐标) | 高德地图、腾讯地图 |
| BD09 | 百度坐标 | 百度地图 |
| BD09MC | 百度墨卡托坐标 | 百度地图API |
import transbigdata as tbd
# WGS84 → GCJ02
data['Lng_gcj'], data['Lat_gcj'] = tbd.wgs84togcj02(data['Lng'], data['Lat'])
# WGS84 → BD09
data['Lng_bd'], data['Lat_bd'] = tbd.wgs84tobd09(data['Lng'], data['Lat'])
# GCJ02 → WGS84
data['Lng_wgs'], data['Lat_wgs'] = tbd.gcj02towgs84(data['Lng'], data['Lat'])
# GCJ02 → BD09
data['Lng_bd'], data['Lat_bd'] = tbd.gcj02tobd09(data['Lng'], data['Lat'])
# BD09 → WGS84
data['Lng_wgs'], data['Lat_wgs'] = tbd.bd09towgs84(data['Lng'], data['Lat'])
# BD09 → GCJ02
data['Lng_gcj'], data['Lat_gcj'] = tbd.bd09togcj02(data['Lng'], data['Lat'])
# BD09MC → BD09
data['Lng_bd'], data['Lat_bd'] = tbd.bd09mctobd09(data['x'], data['y'])
transform_shape() - 批量转换几何对象import geopandas as gpd
# 加载 GCJ02 坐标的数据
gdf = gpd.read_file('data_gcj02.shp')
# 转换为 WGS84
gdf_wgs84 = tbd.transform_shape(gdf, method=tbd.gcj02towgs84)
getdistance() - 两点间距离计算 WGS84 坐标系下两点间的球面距离。
# 单点距离
distance = tbd.getdistance(lon1, lat1, lon2, lat2) # 返回米
# 向量化计算
data['distance'] = tbd.getdistance(
data['slon'], data['slat'],
data['elon'], data['elat']
)
import pandas as pd
import transbigdata as tbd
# 加载高德地图采集的数据(GCJ02坐标)
data = pd.read_csv('amap_data.csv')
# 转换为 WGS84
data['Lng_wgs'], data['Lat_wgs'] = tbd.gcj02towgs84(data['Lng'], data['Lat'])
# 保存
data.to_csv('data_wgs84.csv', index=False)
import pandas as pd
import transbigdata as tbd
# 加载百度地图数据(BD09坐标)
data = pd.read_csv('baidu_data.csv')
# 转换为 WGS84
data['Lng_wgs'], data['Lat_wgs'] = tbd.bd09towgs84(data['Lng'], data['Lat'])
import pandas as pd
import transbigdata as tbd
# OD 数据
od_data = pd.DataFrame({
'slon': [114.0, 114.1],
'slat': [22.5, 22.6],
'elon': [114.2, 114.3],
'elat': [22.7, 22.8]
})
# 计算直线距离
od_data['distance_m'] = tbd.getdistance(
od_data['slon'], od_data['slat'],
od_data['elon'], od_data['elat']
)
od_data['distance_km'] = od_data['distance_m'] / 1000
print(od_data)
import geopandas as gpd
import transbigdata as tbd
# 加载 GCJ02 坐标的行政区划
districts = gpd.read_file('districts_gcj02.shp')
# 转换为 WGS84
districts_wgs84 = tbd.transform_shape(districts, method=tbd.gcj02towgs84)
# 保存
districts_wgs84.to_file('districts_wgs84.shp')
不确定数据坐标系时,可以:
常见偏移特征:
完整文档: https://transbigdata.readthedocs.io/en/latest/CoordinatesConverter.html