- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 Geoviews 和 Datashader 绘制带有 Bokeh 的 Zillow 数据集,但我正忙着让它工作。我能够很好地在笛卡尔平面上绘制数据,但是当我尝试用 map 覆盖数据时,我遇到了错误。
我使用的代码改编自数据着色器 github 上的 census-hv 示例。我相信我的问题是它正在寻找 UTM 中的坐标而不是纬度/经度。因为当我的坐标乘以几千时,代码就可以工作了。然后将这些点放在 map 上方的空白处。如果我尝试绘制正确的纬度/经度坐标,我会收到以下错误。
谁能给我指出一张使用纬度/经度的 map 的方向
>>>props.head()
longitude latitude
0 -118.654084 34.144442
1 -118.625364 34.140430
2 -118.394633 33.989359
3 -118.437206 34.148863
4 -118.385816 34.194168
import pandas as pd
import holoviews as hv
import geoviews as gv
import datashader as ds
from bokeh.models import WMTSTileSource
from holoviews.operation.datashader import datashade, dynspread
hv.notebook_ex
tension('bokeh')
%%opts Overlay [width=900 height=525 xaxis=None yaxis=None]
geomap = gv.WMTS(WMTSTileSource(url=\
'https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{Z}/{Y}/{X}.jpg'))
points = hv.Points(gv.Dataset(props, kdims=['longitude', 'latitude']))
# color_key = {'w':'aqua', 'b':'lime', 'a':'red', 'h':'fuchsia', 'o':'yellow' }
race = datashade(points, x_sampling=50, y_sampling=50,
element_type=gv.Image)
geomap * race
RETURNS ERROR:
WARNING:root:dynamic_operation: Exception raised in callable
'dynamic_operation' of type 'function'.
Invoked as dynamic_operation(height=400, scale=1.0, width=400, x_range=None, y_range=None)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
/home/mcamp/anaconda3/envs/py3.6/lib/python3.6/site-packages/IPython/core/formatters.py in __call__(self, obj)
305 pass
306 else:
--> 307 return printer(obj)
308 # Finally look for special method names
309 method = get_real_method(obj, self.print_method)
/home/mcamp/anaconda3/envs/py3.6/lib/python3.6/site-packages/holoviews/ipython/display_hooks.py in pprint_display(obj)
255 if not ip.display_formatter.formatters['text/plain'].pprint:
256 return None
--> 257 return display(obj, raw=True)
258
259
/home/mcamp/anaconda3/envs/py3.6/lib/python3.6/site-packages/holoviews/ipython/display_hooks.py in display(obj, raw, **kwargs)
241 elif isinstance(obj, (HoloMap, DynamicMap)):
242 with option_state(obj):
--> 243 html = map_display(obj)
244 else:
245 return repr(obj) if raw else IPython.display.display(obj, **kwargs)
/home/mcamp/anaconda3/envs/py3.6/lib/python3.6/site-packages/holoviews/ipython/display_hooks.py in wrapped(element)
127 try:
128 html = fn(element,
--> 129 max_frames=OutputMagic.options['max_frames'])
130
131 # Only want to add to the archive for one display hook...
/home/mcamp/anaconda3/envs/py3.6/lib/python3.6/site-packages/holoviews/ipython/display_hooks.py in map_display(vmap, max_frames)
196 return None
197
--> 198 return render(vmap)
199
200
/home/mcamp/anaconda3/envs/py3.6/lib/python3.6/site-packages/holoviews/ipython/display_hooks.py in render(obj, **kwargs)
57 if renderer.fig == 'pdf':
58 renderer = renderer.instance(fig='png')
---> 59 return renderer.html(obj, **kwargs)
60
61
/home/mcamp/anaconda3/envs/py3.6/lib/python3.6/site-packages/holoviews/plotting/renderer.py in html(self, obj, fmt, css, comm, **kwargs)
253 code to initialize a Comm, if the plot supplies one.
254 """
--> 255 plot, fmt = self._validate(obj, fmt)
256 figdata, _ = self(plot, fmt, **kwargs)
257 if css is None: css = self.css
/home/mcamp/anaconda3/envs/py3.6/lib/python3.6/site-packages/holoviews/plotting/renderer.py in _validate(self, obj, fmt)
189 if isinstance(obj, tuple(self.widgets.values())):
190 return obj, 'html'
--> 191 plot = self.get_plot(obj, renderer=self)
192
193 fig_formats = self.mode_formats['fig'][self.mode]
/home/mcamp/anaconda3/envs/py3.6/lib/python3.6/site-packages/holoviews/plotting/renderer.py in get_plot(self_or_cls, obj, renderer)
164 """
165 # Initialize DynamicMaps with first data item
--> 166 initialize_dynamic(obj)
167
168 if not isinstance(obj, Plot) and not displayable(obj):
/home/mcamp/anaconda3/envs/py3.6/lib/python3.6/site-packages/holoviews/plotting/util.py in initialize_dynamic(obj)
173 continue
174 if not len(dmap):
--> 175 dmap[dmap._initial_key()]
176
177
/home/mcamp/anaconda3/envs/py3.6/lib/python3.6/site-packages/holoviews/core/spaces.py in __getitem__(self, key)
942 # Not a cross product and nothing cached so compute element.
943 if cache is not None: return cache
--> 944 val = self._execute_callback(*tuple_key)
945 if data_slice:
946 val = self._dataslice(val, data_slice)
/home/mcamp/anaconda3/envs/py3.6/lib/python3.6/site-packages/holoviews/core/spaces.py in _execute_callback(self, *args)
791
792 with dynamicmap_memoization(self.callback, self.streams):
--> 793 retval = self.callback(*args, **kwargs)
794 return self._style(retval)
795
/home/mcamp/anaconda3/envs/py3.6/lib/python3.6/site-packages/holoviews/core/spaces.py in __call__(self, *args, **kwargs)
489 # Nothing to do for callbacks that accept no arguments
490 (inargs, inkwargs) = (args, kwargs)
--> 491 if not args and not kwargs: return self.callable()
492 inputs = [i for i in self.inputs if isinstance(i, DynamicMap)]
493 streams = []
/home/mcamp/anaconda3/envs/py3.6/lib/python3.6/site-packages/holoviews/core/overlay.py in dynamic_mul(*args, **kwargs)
27 from .spaces import Callable
28 def dynamic_mul(*args, **kwargs):
---> 29 element = other[args]
30 return self * element
31 callback = Callable(dynamic_mul, inputs=[self, other])
/home/mcamp/anaconda3/envs/py3.6/lib/python3.6/site-packages/holoviews/core/spaces.py in __getitem__(self, key)
942 # Not a cross product and nothing cached so compute element.
943 if cache is not None: return cache
--> 944 val = self._execute_callback(*tuple_key)
945 if data_slice:
946 val = self._dataslice(val, data_slice)
/home/mcamp/anaconda3/envs/py3.6/lib/python3.6/site-packages/holoviews/core/spaces.py in _execute_callback(self, *args)
791
792 with dynamicmap_memoization(self.callback, self.streams):
--> 793 retval = self.callback(*args, **kwargs)
794 return self._style(retval)
795
/home/mcamp/anaconda3/envs/py3.6/lib/python3.6/site-packages/holoviews/core/spaces.py in __call__(self, *args, **kwargs)
519
520 try:
--> 521 ret = self.callable(*args, **kwargs)
522 except:
523 posstr = ', '.join(['%r' % el for el in inargs]) if inargs else ''
/home/mcamp/anaconda3/envs/py3.6/lib/python3.6/site-packages/holoviews/util.py in dynamic_operation(*key, **kwargs)
101 self.p.kwargs.update(kwargs)
102 obj = map_obj[key] if isinstance(map_obj, HoloMap) else map_obj
--> 103 return self._process(obj, key)
104 else:
105 def dynamic_operation(*key, **kwargs):
/home/mcamp/anaconda3/envs/py3.6/lib/python3.6/site-packages/holoviews/util.py in _process(self, element, key)
87 kwargs = {k: v for k, v in self.p.kwargs.items()
88 if k in self.p.operation.params()}
---> 89 return self.p.operation.process_element(element, key, **kwargs)
90 else:
91 return self.p.operation(element, **self.p.kwargs)
/home/mcamp/anaconda3/envs/py3.6/lib/python3.6/site-packages/holoviews/core/operation.py in process_element(self, element, key, **params)
133 """
134 self.p = param.ParamOverrides(self, params)
--> 135 return self._process(element, key)
136
137
/home/mcamp/anaconda3/envs/py3.6/lib/python3.6/site-packages/holoviews/operation/datashader.py in _process(self, element, key)
357
358 def _process(self, element, key=None):
--> 359 agg = aggregate._process(self, element, key)
360 shaded = shade._process(self, agg, key)
361 return shaded
/home/mcamp/anaconda3/envs/py3.6/lib/python3.6/site-packages/holoviews/operation/datashader.py in _process(self, element, key)
226 agg = getattr(cvs, glyph)(data, x, y, self.p.aggregator)
227 if agg.ndim == 2:
--> 228 return self.p.element_type(agg, **params)
229 else:
230 return NdOverlay({c: self.p.element_type(agg.sel(**{column: c}),
/home/mcamp/anaconda3/envs/py3.6/lib/python3.6/site-packages/geoviews/element/geo.py in __init__(self, data, **kwargs)
81 elif crs:
82 kwargs['crs'] = crs
---> 83 super(_Element, self).__init__(data, **kwargs)
84
85
/home/mcamp/anaconda3/envs/py3.6/lib/python3.6/site-packages/holoviews/element/raster.py in __init__(self, data, bounds, extents, xdensity, ydensity, **params)
242 if bounds is None:
243 xvals = self.dimension_values(0, False)
--> 244 l, r, xdensity, _ = util.bound_range(xvals, xdensity)
245 yvals = self.dimension_values(1, False)
246 b, t, ydensity, _ = util.bound_range(yvals, ydensity)
/home/mcamp/anaconda3/envs/py3.6/lib/python3.6/site-packages/holoviews/core/util.py in bound_range(vals, density)
1373 using significant digits reported by sys.float_info.dig.
1374 """
-> 1375 low, high = vals.min(), vals.max()
1376 invert = False
1377 if vals[0] > vals[1]:
/home/mcamp/anaconda3/envs/py3.6/lib/python3.6/site-packages/numpy/core/_methods.py in _amin(a, axis, out, keepdims)
27
28 def _amin(a, axis=None, out=None, keepdims=False):
---> 29 return umr_minimum(a, axis, None, out, keepdims)
30
31 def _sum(a, axis=None, dtype=None, out=None, keepdims=False):
ValueError: zero-size array to reduction operation minimum which has no identity
Out[54]:
b':DynamicMap []'
最佳答案
我认为这里的问题有两个方面,首先,因为坐标是纬度和经度,并且您将 xsampling/ysampling 值指定为 50,所以数据着色图像最终形状很小或为零,这会导致此错误。我的建议是先将坐标转换为 Google Mercator。以后this PR将让你通过调用这个非常简单地做到这一点:
import cartopy.crs as ccrs
projected = gv.operation.project(points, projection=ccrs.GOOGLE_MERCATOR)
...
现在要手动执行此操作,您可以直接使用 cartopy 投影:
coords = ccrs.GOOGLE_MERCATOR.transform_points(ccrs.PlateCarree(), lons, lats)
projected = gv.Points(coords, crs=ccrs.GOOGLE_MERCATOR)
...
关于python - Bokeh Geoviews 使用 Lat/Long 还是 UTM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44480186/
我目前正在开展一个项目,我们必须根据两个(用户输入)点的已知位置找出一个点的位置。 现在的问题是用户可以在不同的 UTM 区域中提供两个点,因此我们必须将其中一个点投影到另一个系统(至少我们是这样做的
我找到了一个相当简单的例子来说明如何做到这一点,但我无法让它为我工作。我对 R 很陌生 library(rgdal) xy <- cbind(c(118, 119), c(10, 50)) proje
我想开始跟踪电子邮件访问,为他们提供使用 GA 事件参数的电子邮件媒介 但是我对长 utm 链接参数不满意;它们不美观,也容易被不当分享,因为许多人在查看页面后复制和粘贴链接时不会花时间删除它们。 有
我们运行一个 WP 站点,目前我们的页脚中有一个传递 UTM 参数的脚本。 var querystring = '?utm_source=[utm_source]&utm_medium=[utm_me
有人可以看到这有什么问题吗: library(rgdal) # Make a two-column matrix, col1 = long, col2 = lat xy UTM,我们在Stack O
我们知道 Google Analytics 在所有电子商务导航期间都会跟踪 url 上存在的 UTM 参数。 我在分析文档中找不到的一件事是: 谷歌分析是否会在交易完成后重置 UTM 参数? 以以下用
我正在运行一个自托管的 wordpress 站点,并且我正在尝试根据 utm 代码中的参数来定制用户看到的次要内容。我所做的只是 用于测试 UTM 婴儿车或字符串变量以显示一个小部件与另一个小部件。在
我有谷歌分析帐户,我在我的index.html中添加了分析代码。但谷歌分析中的 Mycampaign 标签没有显示任何数据。我有用户 google URL 生成器来生成事件 URL。可能是什么问题?
Google 似乎不喜欢在查询字符串参数中以纯文本形式传递电子邮件(他们联系了网站所有者,提及不要在查询字符串参数中以纯文本形式传递电子邮件)。 我们询问支持人员以 base64 编码电子邮件 (bt
我们确实有一些营销事件(Google、facebook...),当用户到达登陆页面 (abo.mysite.com) 时,他确实拥有 utm 参数 utm_source=theCampaignSour
我需要使用 python 中的 utm 模块获取一组以米为单位的坐标,给定纬度/经度位置。如果位置跨越不同区域, map 就会变得不正确。在检查了一些讨论后,我还没有找到直接的解决方案。 lat_po
关闭。这个问题需要更多 focused .它目前不接受答案。 想要改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭3年前。 Improve this que
我有一个电子邮件事件,我试图用谷歌分析来跟踪,但由于某种原因,来源、事件等没有被跟踪。 我使用的网址是: https://makemeacocktail.com/list/14911/wimbledo
我发布了许多新闻链接,这些新闻链接都指向外部资源/网站,但我不确定是否有必要在这些链接中添加自定义广告系列参数(谷歌分析; utm)。是否可以在不将人们吸引到我的网站的链接上进行任何形式的跟踪? 最佳
我想知道我是否以正确的方式构建了这个谷歌分析查询。我不确定“utmcc”部分。 0 => string 'http://www.google-analytics.com/__utm.gif?utm
如果用户自带utm值到着陆页 http://example.com/landing.php?utm_source=Facebook&utm_medium=Marketing&utm_term=FbAd
我是谷歌分析和 UTM 参数的新手,我认为这是一个相当简单的问题。 我已经阅读并了解什么是 UTM 参数以及 GA 如何使用它们,但是除了在默认布局页面中包含通用 GA javascript 之外,我
如何使用 UTM 跟踪链接让 Firebase 了解并跟踪应用(iOS 和 Android)的安装(例如,我想通过页脚链接跟踪我网站上应用的安装)?在 GA 中它运行完美。 在 Firebase 中,
一段时间以来,我一直在收集 UTM 参数并使用这些值成功填充表单字段。如果我的 utm_source 为空,我不想默认为空值或空值,而是想为“网站”的 utm_source 提供默认值 这是我的代码:
这个问题在这里已经有了答案: How to convert from UTM to LatLng in python or Javascript (13 个答案) 关闭 6 年前。 有没有办法转换U
我是一名优秀的程序员,十分优秀!