【问题标题】:Dividing the world in a thousand or so locations将世界划分为一千个左右的位置
【发布时间】:2013-03-30 22:40:23
【问题描述】:

背景:我想创建一个天气服务,由于大多数可用的 API 限制了每日调用的数量,我想将地球划分为一千个左右的区域。

显然,互联网用户不是均匀分布的,因此在人口稠密地区的采样应该更精细。

我应该如何实现这个?

  • 在哪里可以找到有关地理互联网用户密度的数据?
  • 该算法可能类似于 k-means。然而,在一个有海洋的球体上实现它可能有点棘手。有什么见解吗?
  • 最后,也许有办法避免我做这一切?

【问题讨论】:

  • 这有可能非常不准确。考虑一个一侧有山,另一侧有湖的区域。它们可能在地理上很接近,但山顶的天气与湖边的天气会有很大的不同。至于“避免做这一切”,请查看aviation weather,它覆盖了全球数千个地点(免费,提供大量数据源)。
  • 层次聚类呢?
  • @TimMedora :我很清楚准确性问题,但我还没有找到更好的解决方案。我发现的所有免费提要的问题是它们没有预测信息,而我确实需要这些信息。
  • FWIW,TAF 是一个 24-36 小时的各种天气点预报。 Example
  • 奇怪的是,温度只能用于观测 (METAR),不能用于预测。不知道为什么会这样。但是,一个可用于温度预测的网络服务:graphical.weather.gov/xml/SOAP_server/ndfdXMLserver.php?wsdl。我在商业产品中使用了大约一年。唯一的缺点是它比批量提要慢得多。

标签: algorithm geometry geography


【解决方案1】:

与k-means非常相似的是centroidal Voronoi diagram(它是k-means的连续版本)。但是,这会产生一个统一的球体细分,而不会像您希望的那样考虑用户密度。

因此,类似的解决方案是相同的技术,但与 a Power Diagram 一起使用:幂图是一个考虑密度的 Voronoi 图(通过为每个 Voronoi 种子分配权重)。这样的图可以使用 3D 空间(而不是 2D)中的嵌入来计算,该空间由前两个 (x,y) 坐标加上第三个坐标组成,第三个坐标是 [任何大的正常数减去给定的权重的平方根点]。

使用它,您可以获得关于用户密度的域的细分。

【讨论】:

    【解决方案2】:

    一般而言,您并不关心互联网用户密度。你关心使用你的服务的用户的密度——你不关心这些用户在哪里,你关心他们询问的地方。因此,一旦您的网站运行了一天以上,您就可以使用人们在前一天询问的位置来计算出第二天的区域。

    在树上进行动态编程很容易。我会为算法做的是构建一个连续更精细划分的单元格的树。更多的细胞意味着更小的误差,因为人们会得到更接近它们的点的预测,你可以计算出误差,或者至少是更多细胞和更少细胞之间的相对误差。从下往上计算每个子树贡献的最小可能总误差,允许它被划分为最多 1,2,3,..N。方法。您可以通过查看您已经为其每个后代计算的最小可能误差,并计算出如何最好地共享可用它们之间的 k 个分区。

    我会尝试通过考虑不同的想法来避免这样做。根据您看待生活的方式,这至少有两个缺点:

    1) 你似乎没有在派对上添加任何东西。看起来您正在将自己置于实际进行天气预报的组织及其客户之间。组织失去与客户的直接联系,这可能会失去他们的广告收入。客户的天气预报更差。

    2) 大多数网站都有合法的服务条款,客户可以忽略而不必担心。我的猜测是,您将违反这些服务条款,如果您的服务变得足够受欢迎以引起注意,它们将被强制执行。

    【讨论】:

    • this 是您的想法吗?如果是这样,那么虽然树中的节点数量仍然很少,但您对天气预报位置的选择会很遥远,不是吗?
    • 更像en.wikipedia.org/wiki/Quadtree,但即使这样也有点误导。与 k-d 树的主要区别在于,选择的预测位置可能不会与查询中使用的任何预测位置重合,因为它们将是网格大小的网格点,这取决于您拥有的连续更细网格树的深度结束了。如果您确实得到了预测者的合作,并且可以使用预测网格作为数据存储网格的基础,这将是最好的。
    • 互联网用户密度代表我的用户密度。动态编程很酷,但我不明白为什么当连续 k-means 更准确且更容易实现时我会使用离散设置。最后,你不知道我在想什么,你怎么判断我服务的附加值?一些 API 专门允许商业用途。
    猜你喜欢
    • 2011-03-06
    • 2021-09-18
    • 2012-12-11
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 2021-08-09
    • 2022-01-07
    • 1970-01-01
    相关资源
    最近更新 更多