【问题标题】:how can you set the geographical projection with datashader?如何使用数据着色器设置地理投影?
【发布时间】:2022-01-17 16:40:17
【问题描述】:

我用数据着色器绘制了一张地理地图。一切正常,但地理投影似乎不正确。长度和纵横比不匹配,可能是因为没有设置地理投影? 我的代码如下所示:

agg = ds.Canvas().points(df, 'lon',"lat")
karte=ds.tf.set_background(ds.tf.shade(agg, cmap=cc.fire,how="log"), "black")
utils.export_image(img=karte,filename='output', fmt=".png", background=None)

【问题讨论】:

    标签: python mapping geospatial datashader


    【解决方案1】:

    这是一个好看的变形虫! :-)

    Datashader 是一种通用工具,与地理数据无关。特别是,如果你想将数据投影到其他坐标系中,你需要在调用Datashader之前进行投影; Datashader 所做的就是渲染它所提供的内容。

    Datashader 确实包含一个实用功能,用于将经纬度数据投影到 Web 墨卡托 (datashader.utils.lnglat_to_meters) 的特殊情况,以方便使用 Web 墨卡托映射图块的绘图库,但如果您在它自己的(不覆盖在地图上)你甚至不需要那个实用程序;裸露的 lon/lat 值应该没问题。

    如果你想要一些特定的纵横比,你可以通过 Canvas 构造函数的参数来确定它。具体来说,将plot_heightplot_width 设置为您想要的任何图像大小,然后将x_range 和y_range 设置为您想要在该图像大小中的数据空间范围(例如,经度和纬度范围,如xrange=(270, 290), yrange=(30,40))。

    或者您可以使用 hvplot.holoviz.org 或 holoviews.org 上的高级界面叠加到地图上,这将强制地理纵横比。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-09
      • 2011-09-25
      • 1970-01-01
      • 2014-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多