根据应用,高度可能是此坐标转换中的重要变量,因为地磁坐标是地球偶极磁场的映射.

在Python中,您可以使用SpacePy(http://sourceforge.net/projects/spacepy/)轻松将地理坐标转换为地磁坐标(反之亦然).

由于您正在寻找转换为Java的源代码,因此SpacePy正在实施Fortran国际辐射带环境建模(IRBEM)库,其源代码可用(http://irbem.svn.sourceforge.net/viewvc/irbem/web/index.html)

在Python中,以防其他人正在寻找快速解决方案:

import spacepy.coordinates as coord

from spacepy.time import Ticktock

import numpy as np

def geotomag(alt,lat,lon):

#call with altitude in kilometers and lat/lon in degrees

Re=6371.0 #mean Earth radius in kilometers

#setup the geographic coordinate object with altitude in earth radii

cvals = coord.Coords([np.float((alt/Re+Re))/Re,np.float(lat),np.float(lon)], 'GEO', 'sph',['Re','deg','deg'])

#set time epoch for coordinates:

cvals.ticks=Ticktock(['2012-01-01T12:00:00'], 'ISO')

#return the magnetic coords in the same units as the geographic:

return cvals.convert('MAG','sph')

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐