EarthLocation#

class astropy.coordinates.EarthLocation(*args, **kwargs)[源代码]#

基类:Quantity

地球上的位置。

假设给定了地心坐标(x,y,z),则首先尝试初始化;如果失败,则假设大地坐标(参考椭球体上方的经度、纬度、高度)进行另一次尝试。当使用大地测量形式时,经度向东增加,因此西经度为负。在内部,坐标存储为地心坐标。

要确保使用特定类型的坐标,请使用相应的类方法 (from_geocentricfrom_geodetic )或者用名称初始化参数 (xyz 以地心为中心; lonlatheight 用于大地测量)。有关详细信息,请参见类方法。

笔记

这个类适合于坐标转换框架,因为它对 ITRS 框架。为了得到一个合适的 ITRS 对象,使用 itrs 财产。

属性摘要

ellipsoid 

用于转换为大地坐标的默认椭球体。

geocentric 

转换为以X、Y和Z为量的元组。

geodetic 

转换为默认椭球体的大地坐标。

height 

默认椭球体的位置高度。

info 

用于存储诸如名称、描述、格式等元信息的容器。

itrs 

一个 ITRS 对象获取此对象的默认位置。 obstime

lat 

默认椭球体的位置纬度。

lon 

默认椭球体的位置经度。

x 

地心坐标的X分量。

y 

地心坐标的Y分量。

z 

地心坐标的Z分量。

方法总结

from_geocentric(x, y, z[, unit])

地球上的位置,从地心坐标初始化。

from_geodetic(lon, lat[, height, ellipsoid])

地球上的位置,从大地坐标初始化。

get_gcrs \(BUBTIME)

GCRS位置,速度为 obstime 作为GCRS坐标。

get_gcrs_posvel \(BUBTIME)

计算GCRS在请求位置的位置和速度 obstime .

get_itrs([obstime, location])

生成一个 ITRS 使用此对象在请求的 obstime ,地心的或相对于给定的地心的 location

get_site_names(*[, refresh_cache])

获取用于的观测站名称列表 of_site .

gravitational_redshift(obstime[, bodies, masses])

返回地球位置的引力红移。

of_address(address[, get_height, google_api_key])

通过查询OpenStreetMap提名工具为给定地址返回此类的对象 [1] (默认)或Google地理编码API [2], 它需要指定的API密钥。

of_site(site_name, *[, refresh_cache])

按名称返回已知天文台/站点的此类对象。

to_geocentric \()

转换为以X、Y和Z为量的元组。

to_geodetic([ellipsoid])

转换为大地坐标。

属性文档

ellipsoid#

用于转换为大地坐标的默认椭球体。

geocentric#

转换为以X、Y和Z为量的元组。

geodetic#

转换为默认椭球体的大地坐标。

height#

默认椭球体的位置高度。

info#

用于存储诸如名称、描述、格式等元信息的容器。当对象用作表中的mixin列时,这是必需的,但也可以作为存储元信息的通用方法。

itrs#

一个 ITRS 对象获取此对象的默认位置。 obstime

lat#

默认椭球体的位置纬度。

lon#

默认椭球体的位置经度。

x#

地心坐标的X分量。

y#

地心坐标的Y分量。

z#

地心坐标的Z分量。

方法文件

classmethod from_geocentric(x, y, z, unit=None)[源代码]#

地球上的位置,从地心坐标初始化。

参数:
x, y, z : Quantity or array_like数量或数量:类似数组

笛卡尔坐标。如果不是数量, unit 应该给。

unit : astropy:unit-likeNoneAstPy:类单位或 Python :无

坐标值的物理单位。如果 xy 和/或 z 是数量,它们将转换成这个单位。

加薪:
astropy.units.UnitsError

如果装置打开 xyz 不匹配或给定的单位无效。

ValueError

如果 xyz 不匹配。

TypeError

如果 x 不是一个 Quantity 没有单位。

classmethod from_geodetic(lon, lat, height=0.0, ellipsoid=None)[源代码]#

地球上的位置,从大地坐标初始化。

参数:
lon : Longitude or float经度或 Python :浮点

地球东经。可以是任何初始化 Angle 对象(如果是浮动的,以度为单位)。

lat : Latitude or float纬度或 Python :浮点

地球纬度。可以是任何初始化 Latitude 对象(如果是浮动的,以度为单位)。

height : Quantity [:ref: 'length' ]或 float ,可选数量 [:ref: 'length'] 或python:Float,可选

默认情况下,在椭圆体上浮动(如果高度在0米以上,则为浮动)。

ellipsoid : str ,可选Python:字符串,可选

要使用的参考椭球体的名称(默认值:“WGS84”)。可用的椭球体有:“WGS84”、“GRS80”、“WGS72”。

加薪:
astropy.units.UnitsError

如果装置打开 lonlat 与有角的不一致,或者说 height 有长度。

ValueError

如果 lonlatheight 不具有相同的形状,或者如果 ellipsoid 不被认为是实施的措施之一。

笔记

对于地心坐标的转换,ERFA例程 gd2gc 被使用。看到了吗https://github.com/liberfa/erfa

get_gcrs(obstime)[源代码]#

GCRS位置,速度为 obstime 作为GCRS坐标。

参数:
观察时间Time时间

这个 obstime 计算GCRS的位置/速度。

返回:
gcrsGCRS 实例GCRS实例

包括速度。

get_gcrs_posvel(obstime)[源代码]#

计算GCRS在请求位置的位置和速度 obstime .

参数:
观察时间Time时间

这个 obstime 计算GCRS的位置/速度。

返回:
阻塞CartesianRepresentationCartesianRepresentation

对象的GCRS位置

观察层CartesianRepresentationCartesianRepresentation

物体的GCRS速度

get_itrs(obstime=None, location=None)[源代码]#

生成一个 ITRS 使用此对象在请求的 obstime ,地心的或相对于给定的地心的 location

参数:
obstime : Time or None时间或 Python :无

这个 obstime 适用于新的 ITRS ,如果没有,则为默认值 obstime 将被使用。

location : EarthLocation or NoneEarthLocation或 Python :无

一个可能的观察者的位置,一个地心的ITRS位置。如果未指定(默认),将创建以地心为中心的ITRS对象。

返回:
itrsITRSITRS

ITRS框架中的新对象,相对于给定的地心或地心 location

classmethod get_site_names(*, refresh_cache=False)[源代码]#

获取用于的观测站名称列表 of_site .

备注

此函数用于从AstPy数据服务器访问站点注册表,该数据服务器保存在用户的本地缓存中。如果您希望在其中添加站点,请向 astropy-data repository 。如果缓存已经存在,该函数将使用它,即使Astery数据存储库中的版本已经更新,除非 refresh_cache=True 选项被使用。如果没有缓存并且无法访问在线版本,则此函数依赖于内置列表,该列表目前仅包含格林威治皇家天文台作为示例。

参数:
refresh_cache : bool ,可选可选的布尔

如果 True ,则强制使用新下载的版本替换缓存的注册表。(默认: False )

在 5.3 版本加入.

返回:
names : liststrPYTHON:PYTHON列表:字符串

有效天文台名称一览表

参见

of_site

获取此返回的其中一个站点名称的实际位置对象。

gravitational_redshift(obstime, bodies=['sun', 'jupiter', 'moon'], masses={})[源代码]#

返回地球位置的引力红移。

计算由于所请求的太阳系天体引起的3米/秒的重力红移。

参数:
观察时间Time时间

这个 obstime 计算红移。

bodies : iterable ,可选Python:可迭代,可选

要包括在红移计算中的实体(地球除外)。列表元素应该是任何主体名称 get_body_barycentric 接受。默认为木星、太阳和月亮。地球总是包含在其中(因为类代表 地球 位置)。

masses : dict [str, Quantity] ,可选Python :词典 [python:str, Quantity] ,可选

为要求的物体假设的质量或重力参数(G*质量) bodies . 可用于覆盖太阳、木星、月球和地球的默认值,或传递其他物体的质量。

返回:
红移Quantity数量

在给定的观测时间内速度单位的重力红移。

classmethod of_address(address, get_height=False, google_api_key=None)[源代码]#

通过查询OpenStreetMap提名工具为给定地址返回此类的对象 [1] (默认)或Google地理编码API [2], 它需要指定的API密钥。

这是一个快速方便的功能,可以方便地访问各个位置。如果需要指定精确的位置,则应直接使用初始值设定项并传入经度、纬度和高程。

在后台,它只向上面提到的任何一个api发出一个web查询。这不是故意的!OpenStreetMap和Google都使用基于IP的查询限制,如果你每小时发送超过几千个查询,就会禁止你的IP [2].

警告

如果查询返回多个位置(例如,搜索 address='springfield' ),此函数将使用 第一 返回的位置。

参数:
address : strPython :字符串

要获取其位置的地址。根据googlemapsapi,它可以是完全指定的街道地址(例如,123 Main St.,New York,NY)或城市名称(例如,Danbury,CT)或其他。

get_height : bool ,可选可选的布尔

这只在使用googleapi时有效!见 google_api_key 在下面拦住。使用检索到的位置对googlemaps高程API执行第二次查询,以检索输入地址的高度 [3].

google_api_key : str ,可选Python:字符串,可选

启用了地理编码API和(可选)elevation API的Google API密钥。看到了吗 [4] 更多信息。

返回:
位置EarthLocation (或子类)实例EarthLocation(或子类)实例

输入地址的位置。将为type(此类)

工具书类

classmethod of_site(site_name, *, refresh_cache=False)[源代码]#

按名称返回已知天文台/站点的此类对象。

这是一个快速方便的功能,以获取基本的站点信息,而不是一个功能齐全的详尽的天文台及其所有属性的登记册。

有关站点的其他信息存储在 .info.meta 使用此方法获得的站点字典(参见下面的示例)。

备注

此函数用于从AstPy数据服务器访问站点注册表,该数据服务器保存在用户的本地缓存中。如果您希望在其中添加站点,请向 astropy-data repository 。如果缓存已经存在,该函数将使用它,即使Astery数据存储库中的版本已经更新,除非 refresh_cache=True 选项被使用。如果没有缓存并且无法访问在线版本,则此函数依赖于内置列表,该列表目前仅包含格林威治皇家天文台作为示例。

参数:
site_name : strPython :字符串

天文台的名称(不区分大小写)。

refresh_cache : bool ,可选可选的布尔

如果 True ,则强制使用新下载的版本替换缓存的注册表。(默认: False )

在 5.3 版本加入.

返回:
siteEarthLocation (或子类)实例EarthLocation(或子类)实例

天文台的位置。返回的类将与此类相同。

参见

get_site_names

此函数可以访问的站点列表

实例

>>> from astropy.coordinates import EarthLocation
>>> keck = EarthLocation.of_site('Keck Observatory')  
>>> keck.geodetic  
GeodeticLocation(lon=<Longitude -155.47833333 deg>, lat=<Latitude 19.82833333 deg>, height=<Quantity 4160. m>)
>>> keck.info  
name = W. M. Keck Observatory
dtype = (float64, float64, float64)
unit = m
class = EarthLocation
n_bad = 0
>>> keck.info.meta  
{'source': 'IRAF Observatory Database', 'timezone': 'US/Hawaii'}
to_geocentric()[源代码]#

转换为以X、Y和Z为量的元组。

to_geodetic(ellipsoid=None)[源代码]#

转换为大地坐标。

参数:
ellipsoid : str ,可选Python:字符串,可选

要使用的参考椭球体。默认值是初始化坐标时使用的坐标。可提供:“WGS84”、“GRS80”、“WGS72”

返回:
经度、经度、高度Quantity数量

元组是一个 GeodeticLocation 命名元组,并由以下实例组成 LongitudeLatitude ,以及 Quantity

加薪:
ValueError

如果 ellipsoid 不被认为是实施的措施之一。

笔记

对于大地坐标的转换,ERFA例程 gc2gd 被使用。看到了吗https://github.com/liberfa/erfa