首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >全息图与geoviews.tile_sources相结合导致轴尺误差

全息图与geoviews.tile_sources相结合导致轴尺误差
EN

Stack Overflow用户
提问于 2018-11-15 18:38:26
回答 2查看 658关注 0票数 1

我正在尝试将geoviews.tile_sources层与datashade层结合起来。这两个层各自产生正确的轴(见图像),但当组合(使用*)时,比例会发生扭曲。

代码语言:javascript
复制
import numpy as np
import pandas as pd
import holoviews as hv
from geoviews.tile_sources import EsriImagery
from holoviews.operation.datashader import datashade

hv.extension('bokeh')

lats = np.random.uniform(51.111, 51.222, 10000)
longs = np.random.uniform(1.31, 1.33, 10000)

df = pd.DataFrame({"latitude": lats, "longitude": longs})

points = hv.Points(df, ['longitude', 'latitude'])
shader = datashade(points)

EsriImagery * shader

然而,这两个情节都是正确的:

代码语言:javascript
复制
shader + EsriImagery

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-15 19:08:37

HoloViews元素不知道数据的坐标系统,而瓷砖源是在Mercator坐标系中定义的。因此,当您在瓷砖源上覆盖hv.Points时,它假设您的坐标已经在Mercator坐标中。因此,为了覆盖位于不同坐标系统中的数据,您应该使用GeoViews元素,例如,在您的例子中,gv.Points,如所描述的在本用户指南中。这将确保您的点被正确地解释为lat/lon对,并且可以自动投影到与瓷砖源相同的坐标系中。

票数 3
EN

Stack Overflow用户

发布于 2018-11-15 19:12:14

您正在尝试将HoloViews对象在PlateCarree坐标中与Web坐标中的GeoViews对象组合起来,两者相差几百万倍。您可以通过将hv.Points()更改为gv.Points()来修复它,该对象将是PlateCaree坐标中的GeoViews对象,在显示时GeoViews将投影到与平铺层相同的坐标系中。您还可以考虑在开始时使用gv.project_points()进行一次投影,而不是每次显示时重新投影它的默认情况。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53325947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档